:root{color:#222526;font-synthesis:none;text-rendering:optimizelegibility;--ink:#202324;--panel:#222526;--panel-2:#191c1d;--muted:#9ca3a5;--line:#ffffff26;--cyan:#18e6f5;--cyan-soft:#bff8fb;--shadow:0 14px 28px #14181938, 0 3px 8px #14181938;background:#edf0f0;font-family:Source Han Sans CN,Noto Sans SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html{min-width:320px;min-height:100%}body{min-width:320px;min-height:100vh;margin:0;overflow-x:hidden}button,input{font:inherit}button,label,*,:before,:after{-webkit-tap-highlight-color:transparent}button{border:0}body:before{content:"";z-index:-2;background-color:#f3f5f5;background-image:linear-gradient(45deg,#474f5009 25%,#0000 25%),linear-gradient(-45deg,#474f5009 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#474f5009 75%),linear-gradient(-45deg,#0000 75%,#474f5009 75%);background-position:0 0,0 21px,21px -21px,-21px 0;background-size:42px 42px;position:fixed;inset:0}body:after{content:"";aspect-ratio:1;z-index:-1;filter:blur(28px);pointer-events:none;background:radial-gradient(circle,#27eecc59,#85ff512e 43%,#0000 72%);border-radius:50%;width:34vw;position:fixed;inset:auto auto -16vw -12vw}.app-shell{min-height:100vh}.topbar{color:#fff;z-index:20;background:linear-gradient(100deg,#171a1b,#272b2c 60%,#171a1b);justify-content:space-between;align-items:center;height:72px;padding:0 clamp(20px,3vw,48px);display:flex;position:relative;box-shadow:0 4px 12px #0003}.brand{color:inherit;align-items:center;gap:14px;text-decoration:none;display:flex}.brand img{object-fit:contain;object-position:left center;width:clamp(145px,16vw,220px);max-height:50px;display:block}.brand h1{letter-spacing:.04em;margin:0;font-size:clamp(21px,2vw,30px);font-weight:850;line-height:1}.brand-mark{grid-template-columns:repeat(2,8px);gap:3px;display:grid;transform:rotate(45deg)}.brand-mark i{background:var(--cyan);width:8px;height:8px;box-shadow:0 0 8px #18e6f5cc}.session-actions{align-items:center;gap:14px;display:flex}.session-loading{color:#b7bfc0;font-size:13px}.session-user{color:#f7f9f9;align-items:center;gap:9px;min-width:0;display:flex}.session-avatar{color:#687078;background:#eff7fd;border:1px solid #ffffff59;border-radius:50%;flex:none;place-items:center;width:32px;height:32px;display:grid;position:relative;overflow:hidden}.session-avatar img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.session-user b{text-overflow:ellipsis;white-space:nowrap;max-width:180px;font-size:14px;overflow:hidden}.topbar-button{color:#eef1f1;cursor:pointer;background:#ffffff14;border:1px solid #ffffff38;border-radius:20px;justify-content:center;align-items:center;gap:7px;min-height:38px;padding:0 16px;display:inline-flex}.topbar-button:hover{background:#ffffff26}.topbar-button.is-primary{color:#111718;background:var(--cyan);border-color:var(--cyan);font-weight:800}.auth-notice{color:#173126;background:#c8f7df;border-bottom:1px solid #8cdbb3;justify-content:center;align-items:center;gap:16px;min-height:42px;padding:9px clamp(20px,3vw,48px);font-size:14px;display:flex}.auth-notice.is-error{color:#5a1b20;background:#ffe0e2;border-color:#f1aeb4}.auth-notice button{color:inherit;cursor:pointer;background:0 0;place-items:center;display:inline-grid}.download-button,.primary-button{cursor:pointer;color:#171a1b;letter-spacing:.03em;background:linear-gradient(#01e6fb 0% 30%,#c9e4e7 100%);border-radius:24px;justify-content:center;align-items:center;gap:10px;min-height:48px;padding:0 24px;font-weight:800;transition:transform .2s,box-shadow .2s,filter .2s;display:inline-flex;box-shadow:inset 0 0 12px 10px #ffffff7a,0 7px 8px 3px #00000047}.download-button:hover,.primary-button:hover{filter:brightness(1.05);box-shadow:inset 0 0 12px 14px #ffffffa8,0 8px 10px 3px #00000047}.download-button:active,.primary-button:active{transform:translateY(3px);box-shadow:inset 0 0 12px 12px #ffffff9e,0 3px 6px 2px #00000047}.workspace{grid-template-columns:minmax(220px,270px) minmax(430px,1fr) minmax(280px,330px);align-items:center;gap:clamp(18px,2.2vw,34px);width:min(1700px,100vw - 48px,680px + clamp(430px,100vh - 146px,1020px));min-height:calc(100vh - 72px);margin:0 auto;padding:28px 0 32px;display:grid}.panel{color:#f4f6f6;box-shadow:var(--shadow);background:linear-gradient(145deg,#ffffff0e,#0000 35%),linear-gradient(#282b2c,#191c1d);border:1px solid #ffffff21;border-radius:7px;overflow:hidden}.source-panel{scrollbar-gutter:stable both-edges;flex-direction:column;align-self:stretch;gap:22px;min-height:640px;max-height:calc(100vh - 128px);padding:20px;display:flex;overflow-y:auto}.source-panel>section:first-child{border-bottom:1px solid var(--line);flex:none;padding-bottom:22px}.panel-title,.palette-heading,.section-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.panel-title h2,.palette-heading h2,.section-heading h2{letter-spacing:.04em;margin:0;font-size:17px}.panel-title span,.palette-heading span{color:var(--muted);font-size:12px}.source-thumbnail{aspect-ratio:1;border:2px solid var(--cyan);background:#111;margin:15px 0 12px;overflow:hidden;box-shadow:0 0 12px #18e6f557,inset 0 0 0 1px #fff3}.source-thumbnail img{object-fit:cover;image-rendering:auto;width:100%;height:100%;display:block}.secondary-button,.upload-button{cursor:pointer;color:#f5f6f6;background:linear-gradient(#55595a,#343738);border:1px solid #ffffff38;border-radius:4px;justify-content:center;align-items:center;gap:9px;min-height:44px;padding:0 18px;font-weight:700;transition:background .2s,transform .2s;display:inline-flex;box-shadow:inset 0 1px #ffffff24,0 4px 9px #0003}.secondary-button:hover,.upload-button:hover{background:linear-gradient(#64696a,#3c4041)}.secondary-button:active,.upload-button:active{transform:translateY(2px)}.full-button{width:100%;margin-top:9px}.navigator-section{flex-direction:column;flex:1 0 280px;min-height:280px;display:flex}.section-heading{margin-bottom:17px}.section-heading p{color:#aab0b1;margin:5px 0 0;font-size:12px}.fixed-size{color:#afb5b6;white-space:nowrap;font-size:12px}.fixed-size strong{color:var(--cyan);font-size:14px}.navigator-controls{flex:1;grid-template-columns:minmax(100px,1fr) 62px;align-items:center;gap:15px;min-height:210px;display:grid}.navigator-map{aspect-ratio:1;touch-action:none;cursor:crosshair;background:#111;border:1px solid #fff3;width:100%;position:relative;overflow:hidden}.mini-grid,.bead-board{grid-template-rows:repeat(24,1fr);grid-template-columns:repeat(24,1fr);display:grid}.mini-grid{position:absolute;inset:0}.mini-grid i{display:block}.viewport-box{border:2px solid var(--cyan);pointer-events:none;position:absolute;box-shadow:0 0 9px #18e6f5cc,inset 0 0 8px #18e6f53d}.zoom-control{flex-direction:column;align-items:center;gap:8px;height:210px;display:flex}.zoom-control input{appearance:none;writing-mode:vertical-lr;width:42px;height:170px;accent-color:var(--cyan);cursor:pointer;direction:rtl;margin:0}.zoom-control input::-webkit-slider-runnable-track{background:linear-gradient(#e9fdff,#34eaf6 20%,#19d9ea);border-radius:10px;width:12px;box-shadow:0 0 13px #18e6f5cc,inset 0 0 5px #ffffffe6}.zoom-control input::-webkit-slider-thumb{appearance:none;background:#fff;border:0;border-radius:50%;width:34px;height:34px;margin-left:-11px;box-shadow:0 0 12px 3px #ffffffa8,0 2px 5px #00000059}.zoom-control output{color:#fff;text-align:center;font-variant-numeric:tabular-nums;min-width:54px;font-size:14px;font-weight:800}.canvas-stage{flex-direction:column;justify-content:center;align-self:start;align-items:stretch;min-width:0;height:calc(100vh - 128px);min-height:640px;max-height:calc(100vh - 128px);display:flex}.canvas-meta{color:#4d5455;letter-spacing:.04em;justify-content:space-between;align-items:center;padding:0 3px 11px;font-size:13px;display:flex}.canvas-meta strong{color:#25292a;font-size:14px}.canvas-coordinate-frame{--axis-gutter:22px;aspect-ratio:1;width:min(100%,1020px,100vh - 146px);padding:var(--axis-gutter);align-self:center;position:relative}.canvas-window{-webkit-user-select:none;user-select:none;background:#fff;border:1px solid #777d7e;width:100%;height:100%;position:relative;overflow:hidden;box-shadow:0 19px 34px #262b2c33,0 3px 8px #262b2c33}.canvas-axis{color:#667174;pointer-events:none;-webkit-user-select:none;user-select:none;font-size:9px;font-weight:800;line-height:1;position:absolute}.canvas-axis span{font-variant-numeric:tabular-nums;display:block;position:absolute;transform:translate(-50%,-50%)}.canvas-axis span.is-outside{visibility:hidden}.canvas-axis-horizontal{left:var(--axis-gutter);right:var(--axis-gutter);height:var(--axis-gutter)}.canvas-axis-horizontal.is-top{top:0}.canvas-axis-horizontal.is-bottom{bottom:0}.canvas-axis-horizontal.is-top span{top:76%}.canvas-axis-horizontal.is-bottom span{top:42%}.canvas-axis-vertical{top:var(--axis-gutter);bottom:var(--axis-gutter);width:var(--axis-gutter)}.canvas-axis-vertical.is-left{left:0}.canvas-axis-vertical.is-right{right:0}.canvas-axis-vertical.is-left span{left:58%}.canvas-axis-vertical.is-right span{left:42%}.canvas-window:before,.canvas-window:after{content:"";z-index:5;pointer-events:none;background:#ffffff8c;position:absolute}.canvas-window:before{width:1px;height:100%;left:50%}.canvas-window:after{width:100%;height:1px;top:50%}.board-position{transform:translate(var(--shift-x), var(--shift-y));position:absolute;inset:0}.bead-board{transform-origin:0 0;background:#fff;position:absolute;inset:0}.bead-cell{cursor:pointer;outline:0 solid #0000;min-width:0;min-height:0;padding:0;transition:transform .13s,outline .13s,box-shadow .13s;position:relative}.bead-board.with-grid .bead-cell{box-shadow:inset -1px -1px #1a1e1f47}.bead-cell:hover{z-index:3;box-shadow:inset 0 0 0 1px #ffffffe6}.bead-board .bead-cell.is-selected{z-index:2;box-shadow:inset 0 0 0 2px #fff, inset 0 0 0 4px var(--cyan), 0 0 8px #18e6f5d1}.canvas-note{text-align:center;color:#707778;margin:12px 0 0;font-size:12px}.palette-panel{scrollbar-gutter:stable both-edges;align-self:stretch;min-height:640px;max-height:calc(100vh - 128px);padding:20px;overflow-y:auto}.toggles{border-bottom:1px solid var(--line);padding-bottom:16px}.toggle-row{cursor:pointer;justify-content:space-between;align-items:center;gap:14px;min-height:46px;display:flex}.toggle-label{align-items:center;gap:10px;font-size:14px;font-weight:700;display:inline-flex}.toggle-row input{opacity:0;pointer-events:none;position:absolute}.toggle-track{background:#555b5c;border-radius:14px;flex:none;width:47px;height:25px;padding:3px;transition:background .2s;box-shadow:inset 0 2px 5px #00000059}.toggle-track span{background:#f8ffff;border-radius:50%;width:19px;height:19px;transition:transform .2s;display:block;box-shadow:0 2px 6px #00000059}.toggle-row input:checked+.toggle-track span{transform:translate(22px)}.current-color{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;min-height:94px;padding:17px 0;display:flex}.current-color>div{align-items:center;gap:12px;display:flex}.current-color span{font-size:14px;font-weight:700}.current-color strong{border:2px solid var(--cyan);width:50px;height:50px;display:block;box-shadow:0 0 10px #18e6f566}.current-color p{color:#dfe4e4;white-space:nowrap;margin:0}.current-color b{color:var(--cyan);font-size:22px}.palette-heading{padding:18px 0 13px}.palette-grid{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.palette-grid button{aspect-ratio:1.5;cursor:pointer;border:1px solid #ffffff14;transition:transform .14s,outline .14s,box-shadow .14s;box-shadow:inset 0 1px #ffffff1f}.palette-grid button:hover{transform:translateY(-2px)}.palette-grid button.is-current{z-index:1;box-shadow:0 0 0 5px var(--cyan), 0 0 15px #18e6f5e6;outline:3px solid #fff;transform:scale(.88)}.mobile-upload{display:none}.modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0c0f10c7;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.crop-dialog{color:#fff;background:linear-gradient(145deg,#303536,#181b1c);border:1px solid #ffffff2e;width:min(620px,100%);max-height:calc(100vh - 48px);padding:24px;overflow:auto;box-shadow:0 22px 60px #0000007a}.crop-dialog header{justify-content:space-between;gap:20px;margin-bottom:18px;display:flex}.crop-dialog h2{margin:0 0 6px;font-size:23px}.crop-dialog header p{color:#aeb5b6;margin:0;font-size:13px}.icon-button{cursor:pointer;color:#fff;background:#ffffff14;border:1px solid #ffffff1f;border-radius:50%;place-items:center;width:44px;height:44px;display:grid}.crop-frame{aspect-ratio:1;cursor:move;touch-action:none;border:2px solid var(--cyan);background:#fff;width:min(100%,520px);margin:auto;position:relative;overflow:hidden;box-shadow:0 0 15px #18e6f55c}.crop-frame img{-webkit-user-select:none;user-select:none;pointer-events:none;max-width:none;position:absolute;top:50%;left:50%}.crop-grid{pointer-events:none;background-image:linear-gradient(90deg,#0000 33.2%,#ffffffa6 33.3% 33.55%,#0000 33.65% 66.45%,#ffffffa6 66.55% 66.8%,#0000 66.9%),linear-gradient(#0000 33.2%,#ffffffa6 33.3% 33.55%,#0000 33.65% 66.45%,#ffffffa6 66.55% 66.8%,#0000 66.9%);position:absolute;inset:0;box-shadow:inset 0 0 0 1px #ffffff59}.crop-zoom{grid-template-columns:auto minmax(70px,1fr) auto auto;align-items:center;gap:13px;margin:18px 0;font-size:13px;display:grid}.crop-zoom>input[type=range]{accent-color:var(--cyan)}.crop-zoom-value{min-height:34px;color:var(--cyan);font-variant-numeric:tabular-nums;background:#ffffffd1;border:1px solid #4b5e6133;border-radius:9px;align-items:center;gap:3px;padding:0 7px;display:flex}.crop-zoom-value input{color:#247f87;text-align:right;font-variant-numeric:tabular-nums;background:0 0;border:0;outline:0;width:48px;min-width:0;padding:0}.crop-zoom-value:focus-within{border-color:#55d2dc;box-shadow:0 0 0 2px #14c8d81f}.crop-reset{cursor:pointer;color:#465154;white-space:nowrap;background:#ffffffc7;border:1px solid #4b5e6133;border-radius:9px;justify-content:center;align-items:center;gap:5px;min-height:34px;padding:0 11px;font-size:12px;font-weight:750;display:inline-flex}.crop-reset:hover:not(:disabled){color:#087f89;background:#fff;border-color:#55d2dc}.crop-reset:disabled{cursor:default;opacity:.45}.crop-dialog footer{justify-content:flex-end;gap:12px;display:flex}.crop-dialog footer .secondary-button,.crop-dialog footer .primary-button{min-width:120px}.variant-dialog{color:#fff;background:linear-gradient(145deg,#303536,#181b1c);border:1px solid #ffffff2e;width:min(1120px,100%);max-height:calc(100vh - 48px);padding:24px;overflow:auto;box-shadow:0 22px 60px #0000007a}.variant-dialog>header{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px;display:flex}.variant-dialog h2{margin:0 0 6px;font-size:24px}.variant-dialog header p{color:#aeb5b6;margin:0;font-size:13px}.variant-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:13px;display:grid}.variant-card{cursor:pointer;color:#fff;text-align:left;background:#202425;border:1px solid #ffffff1f;min-width:0;padding:10px;transition:border-color .16s,box-shadow .16s,transform .16s;position:relative;box-shadow:0 7px 16px #00000038}.variant-card:hover{border-color:#ffffff57;transform:translateY(-2px)}.variant-preview{aspect-ratio:1;background:#fff;display:block;overflow:hidden}.variant-preview img{width:100%;height:100%;image-rendering:pixelated;display:block}.variant-copy{flex-direction:column;align-items:flex-start;min-height:98px;padding:11px 2px 2px;display:flex}.variant-name{justify-content:space-between;align-items:center;gap:6px;width:100%;display:flex}.variant-name b{font-size:15px}.variant-name em{color:#101617;background:var(--cyan);padding:2px 5px;font-size:10px;font-style:normal;font-weight:900}.variant-copy small{color:#aeb5b6;min-height:34px;margin-top:6px;font-size:11px;line-height:1.45}.variant-copy i{color:var(--cyan);margin-top:auto;font-size:11px;font-style:normal;font-weight:800}.variant-check{color:#122021;background:var(--cyan);opacity:0;border:2px solid #fff;border-radius:50%;place-items:center;width:26px;height:26px;transition:opacity .16s,transform .16s;display:grid;position:absolute;top:17px;right:17px;transform:scale(.75);box-shadow:0 0 10px #18e6f5cc}.variant-card.is-selected .variant-check{opacity:1;transform:scale(1)}.variant-dialog footer{z-index:3;border-top:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff5;justify-content:flex-end;gap:12px;margin:18px -24px -24px;padding:14px 24px;display:flex;position:sticky;bottom:-24px}.variant-dialog footer .secondary-button,.variant-dialog footer .primary-button{min-width:130px}:root{color:#343b3d;--ink:#303739;--panel:#ffffffd1;--panel-2:#f6f9f9e6;--muted:#778285;--line:#495b5e2e;--cyan:#14c8d8;--cyan-soft:#c6f4f7;--shadow:0 14px 34px #404e5024, 0 2px 7px #404e501a;background:#f4f7f7}body:before{background-color:#f4f7f7;background-image:url(/static/brand/hero-cards/loading-bg.jpg);background-position:50%;background-repeat:no-repeat;background-size:cover}.app-shell{background:#ffffff14}.topbar{color:#303739;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffffd6;border-bottom:1px solid #4b5e6126;box-shadow:0 3px 14px #3f4e501a}.brand-mark i{box-shadow:none}.download-button,.primary-button{color:#263234;background:linear-gradient(#eaffff,#aeeef3);border:1px solid #67d9e2;box-shadow:0 5px 13px #2f97a02e,inset 0 1px #ffffffeb}.download-button:hover,.primary-button:hover{filter:none;background:linear-gradient(#f4ffff,#9ce9ef);box-shadow:0 7px 16px #2f97a038,inset 0 1px #fff}.download-button:disabled{cursor:not-allowed;opacity:.42;filter:grayscale(.35);box-shadow:none}.panel{color:#343b3d;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fffc;border:1px solid #5365682e}.panel-title span,.palette-heading span{color:var(--muted)}.source-panel>section:first-child{border-color:var(--line)}.source-thumbnail{background:#f0f7f7c7;border:1px solid #3cbbc580;box-shadow:inset 0 0 0 1px #fffc}.source-thumbnail.is-empty{color:#697578;text-align:center;border-style:dashed;flex-direction:column;justify-content:center;align-items:center;gap:7px;padding:18px;display:flex}.source-thumbnail.is-empty svg{color:var(--cyan)}.source-thumbnail.is-empty strong{color:#3d484a;font-size:14px}.source-thumbnail.is-empty span{font-size:11px}.source-panel .upload-button{width:100%}.secondary-button,.upload-button{color:#3b4547;background:#ffffffb8;border:1px solid #55696c40;box-shadow:0 3px 9px #3d4e5017,inset 0 1px #fff}.secondary-button:hover,.upload-button:hover{background:#fff;border-color:#14c8d8a6}.download-button,.primary-button,.secondary-button,.upload-button,.edit-mode-button{border-radius:12px}.navigator-map{background:#f8fbfbe6;border-color:#4b5f6238}.zoom-control input{box-shadow:none;border:0;background:0 0!important}.zoom-control input::-webkit-slider-runnable-track{background:linear-gradient(#eefcfd,#39d9e5);width:9px;box-shadow:inset 0 0 0 1px #11aebb4d,0 2px 7px #14c8d82e}.zoom-control input::-webkit-slider-thumb{background:#fff;border:1px solid #4963662e;box-shadow:0 3px 8px #364c4e2e}.canvas-meta{color:#657174}.canvas-meta strong{color:#30383a}.canvas-window{background:#fffffff0;border-color:#55656866;box-shadow:0 18px 36px #3c4c4e21,0 3px 8px #3c4c4e1a}.bead-board.is-empty{pointer-events:none}.bead-board.is-empty .bead-cell{background:#ffffffb8!important}.bead-board.is-editing{cursor:crosshair;touch-action:none}.bead-board.is-editing .bead-cell{cursor:crosshair}.bead-board.is-editing.is-picking-color,.bead-board.is-editing.is-picking-color .bead-cell{cursor:copy}.bead-board.is-editing.needs-color,.bead-board.is-editing.needs-color .bead-cell{cursor:not-allowed}.empty-board-state{z-index:8;color:#788386;text-align:center;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:9px;display:flex;position:absolute;inset:0}.empty-board-state svg{color:var(--cyan)}.empty-board-state strong{color:#374244;font-size:clamp(17px,2vw,24px)}.empty-board-state span{font-size:12px}.empty-board-state .upload-button{color:#263234;pointer-events:auto;background:linear-gradient(azure,#b8eff3);border-color:#68d7df;min-width:150px;margin-top:8px}.canvas-actions{flex-direction:column;align-items:center;gap:10px;margin-top:13px;display:flex}.canvas-note{color:#5f6b6e;background:#ffffffeb;border:1px solid #4d616421;border-radius:999px;justify-content:center;align-items:center;min-height:38px;margin:0;padding:0 20px;font-size:13px;font-weight:700;display:inline-flex;box-shadow:0 5px 15px #394b4d1c}.source-download{border-top:1px solid var(--line);flex:none;padding-top:16px}.source-download .download-button{width:100%;min-height:44px}.palette-panel{background:#ffffffd6}.toggles,.current-color{border-color:var(--line)}.edit-mode-button{cursor:pointer;color:#3f4a4c;background:#ffffffb3;border:1px solid #4b606338;justify-content:center;align-items:center;gap:9px;width:100%;min-height:44px;margin:14px 0 0;font-weight:800;display:flex}.edit-mode-button:hover:not(:disabled){border-color:var(--cyan);background:#fff}.edit-mode-button.is-active{color:#174e53;background:linear-gradient(#efffff,#bceff3);border-color:#55d2dc}.edit-mode-button:disabled{cursor:not-allowed;opacity:.45}.edit-history-toolbar{grid-template-columns:repeat(4,1fr);gap:8px;margin-top:10px;display:grid}.edit-history-toolbar button{cursor:pointer;color:#435053;background:#ffffffc7;border:1px solid #4b606338;border-radius:12px;place-items:center;min-height:42px;transition:border-color .16s,background .16s,transform .16s;display:grid;box-shadow:0 3px 9px #3d4e5014,inset 0 1px #fff}.edit-history-toolbar button:hover:not(:disabled){color:#0b939f;background:#fff;border-color:#55d2dc;transform:translateY(-1px)}.edit-history-toolbar button.is-active{color:#087f89;background:linear-gradient(#efffff,#bceff3);border-color:#55d2dc;box-shadow:0 0 0 2px #14c8d81f,inset 0 1px #fff}.edit-history-toolbar button:disabled{cursor:not-allowed;color:#9ea8aa;opacity:.55;box-shadow:none;background:#f0f4f4a6}.toggle-track{background:#d9dfe0;box-shadow:inset 0 1px 3px #394a4c29}.current-color strong{box-shadow:0 0 0 3px #14c8d81f}.current-color strong.is-empty{box-shadow:none;background-image:linear-gradient(45deg,#eef2f2 25%,#0000 25%),linear-gradient(-45deg,#eef2f2 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#eef2f2 75%),linear-gradient(-45deg,#0000 75%,#eef2f2 75%);background-position:0 0,0 5px,5px -5px,-5px 0;background-size:10px 10px;border-color:#b8c3c5}.palette-grid button{border-color:#38484a1f;box-shadow:inset 0 1px #ffffff8c}.crop-dialog,.variant-dialog{color:#343b3d;background:#fffffff0;border-color:#475a5d33;box-shadow:0 24px 64px #37484a38}.crop-dialog header p,.variant-dialog header p{color:#748083}.icon-button{color:#465154;background:#f2f6f6;border-color:#4b5e6129}.crop-frame{background:#fff;box-shadow:0 0 0 3px #14c8d81f}.variant-card{color:#354042;background:#f8fbfbf0;border-color:#475b5e2b;box-shadow:0 5px 14px #3e4f511a}.variant-card:hover{border-color:#14c8d88c}.variant-copy i{color:#0baebe}.variant-check{color:#fff;border-color:#fff;box-shadow:0 3px 8px #14a0ac40}.confirm-dialog{color:#343b3d;background:#fffffff7;border:1px solid #475a5d33;border-radius:14px;width:min(420px,100%);padding:26px;box-shadow:0 24px 64px #37484a38}.confirm-dialog h2{margin:0 0 10px;font-size:21px}.confirm-dialog p{color:#697578;margin:0;font-size:14px;line-height:1.65}.confirm-dialog footer{justify-content:flex-end;gap:10px;margin-top:22px;display:flex}.confirm-dialog footer button{min-width:120px}@media (width<=1180px){.workspace{grid-template-columns:220px minmax(400px,1fr) 270px;gap:16px;width:min(1120px,100vw - 32px)}.source-panel,.palette-panel{min-height:590px;padding:15px}.palette-grid{gap:8px}.toggle-label{font-size:13px}}@media (width<=860px){body:before{background-position:50%;background-size:cover}.topbar{height:64px;padding:0 16px;position:sticky;top:0}.brand{gap:10px}.brand h1{font-size:clamp(18px,5vw,23px)}.brand-mark{grid-template-columns:repeat(2,6px);gap:2px}.brand-mark i{width:6px;height:6px}.download-button{border-radius:22px;width:46px;min-height:44px;padding:0}.download-button svg{width:20px}.download-button{gap:0;font-size:0}.source-download .download-button{border-radius:12px;gap:8px;width:100%;padding:0 18px;font-size:13px}.workspace{flex-direction:column;gap:14px;width:min(100% - 24px,660px);min-height:0;padding:16px 0 32px;display:flex}.canvas-stage{order:1;width:100%;height:auto;min-height:0;max-height:none;padding:0}.source-panel,.palette-panel{scrollbar-gutter:auto}.source-panel{order:2;grid-template-columns:minmax(130px,.82fr) minmax(170px,1.18fr);align-items:stretch;gap:14px;width:100%;min-height:0;max-height:none;padding:16px;display:grid}.source-panel>section:first-child{border:0;border-right:1px solid var(--line);padding:0 14px 0 0}.navigator-section{min-height:0}.source-download{grid-column:1/-1;padding-top:12px}.palette-panel{order:3;width:100%;min-height:0;max-height:none;padding:16px}.canvas-meta{padding-bottom:8px}.canvas-note{margin:9px 0 0}.source-thumbnail{margin:10px 0 7px}.secondary-button{min-height:40px;padding:0 10px;font-size:12px}.section-heading{align-items:flex-start;margin-bottom:8px}.section-heading h2{font-size:15px}.fixed-size{text-align:right;display:block}.navigator-controls{grid-template-columns:minmax(100px,1fr) 54px;gap:10px;min-height:150px}.zoom-control{height:155px}.zoom-control input{height:118px}.palette-grid{grid-template-columns:repeat(4,1fr);gap:10px}.palette-grid button{aspect-ratio:1.45}.toggles{grid-template-columns:1fr 1.25fr;gap:12px;display:grid}.toggle-row:first-child{border-right:1px solid var(--line);padding-right:12px}.toggles .toggle-row:nth-child(3){border-top:1px solid var(--line);grid-column:1/-1;padding-top:8px}.toggle-row{gap:8px}.current-color{min-height:78px}.current-color strong{width:44px;height:44px}.variant-dialog{padding:18px}.variant-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.edit-history-toolbar button{min-height:44px}}@media (width<=460px){.topbar{gap:8px}.brand img{width:132px}.session-actions{gap:7px}.session-user b{display:none}.topbar-button{padding:0 12px}.workspace{width:calc(100% - 18px);padding-top:10px}.canvas-meta,.canvas-meta strong{font-size:12px}.source-panel{grid-template-columns:minmax(112px,.82fr) minmax(155px,1.18fr);gap:10px;padding:13px}.source-panel>section:first-child{padding-right:10px}.panel-title h2{font-size:14px}.panel-title span{display:none}.navigator-controls{grid-template-columns:minmax(88px,1fr) 48px}.fixed-size{font-size:10px}.fixed-size strong{font-size:12px}.toggle-label{gap:7px;font-size:12px}.toggle-label svg{width:17px}.toggle-track{width:42px;height:23px}.toggle-track span{width:17px;height:17px}.toggle-row input:checked+.toggle-track span{transform:translate(19px)}.canvas-coordinate-frame{--axis-gutter:18px}.canvas-axis{font-size:7px}.current-color,.current-color>div{gap:8px}.current-color p{font-size:13px}.current-color b{font-size:20px}.palette-panel{padding:13px}.palette-grid{gap:8px}.palette-heading{padding:15px 0 11px}.modal-backdrop{padding:10px}.crop-dialog{padding:15px}.crop-dialog h2{font-size:20px}.crop-dialog footer .secondary-button,.crop-dialog footer .primary-button{flex:1;min-width:0;padding:0 10px}.variant-dialog{max-height:calc(100vh - 20px);padding:14px}.variant-dialog h2{font-size:20px}.variant-dialog header p{font-size:12px;line-height:1.45}.variant-grid{gap:9px}.variant-card{padding:7px}.variant-copy{min-height:96px;padding-top:8px}.variant-name b{font-size:13px}.variant-copy small{font-size:10px}.variant-dialog footer{border-top:1px solid var(--line);background:#fffffff5;margin:14px -14px -14px;padding:12px 14px;position:sticky;bottom:-14px}.variant-dialog footer .secondary-button{min-width:72px}.variant-dialog footer .primary-button{flex:1;min-width:0;padding:0 10px}.confirm-dialog{padding:20px}.confirm-dialog footer button{flex:1;min-width:0;padding:0 10px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.auth-modal-backdrop{z-index:80}.login-dialog{color:#eef2f2;background:linear-gradient(150deg,#2a2e2f,#171a1b);border:1px solid #ffffff29;border-radius:12px;width:min(520px,100vw - 28px);overflow:hidden;box-shadow:0 24px 80px #00000085}.login-dialog>header{border-bottom:1px solid var(--line);grid-template-columns:auto 1fr auto;align-items:start;gap:13px;padding:22px 22px 16px;display:grid}.login-dialog-icon{color:#112224;background:var(--cyan);border-radius:50%;place-items:center;width:42px;height:42px;display:grid}.login-dialog h2{margin:1px 0 6px;font-size:20px}.login-dialog header p{color:#b8c0c1;margin:0;font-size:13px;line-height:1.6}.login-dialog .icon-button{color:#eef2f2;cursor:pointer;background:0 0}.login-dialog-body>p{color:#c2c9ca;margin:0 0 18px;font-size:13px;line-height:1.75}.agreement-check{color:#f0f3f3;cursor:pointer;grid-template-columns:auto 1fr;align-items:start;gap:10px;font-size:14px;line-height:1.7;display:grid}.agreement-check input{width:18px;height:18px;accent-color:var(--cyan);margin-top:3px}.login-dialog-body .auth-error{color:#ffd9dc;background:#d33d4a2e;border-radius:5px;margin:13px 0 0;padding:9px 11px}.login-dialog>footer button{min-height:44px}.login-dialog .primary-button:disabled{cursor:not-allowed;filter:grayscale(.65);opacity:.55;box-shadow:none}.platform-shell{color:#202526}.gallery-page,.portrait-detail-page{width:min(1280px,100% - 32px);margin:0 auto;padding:38px 0 72px}.gallery-hero{color:#f6f9f9;min-height:220px;box-shadow:var(--shadow);background:radial-gradient(circle at 80% 15%,#18e6f53d,#0000 34%),linear-gradient(120deg,#171b1c,#303638);border-radius:20px;justify-content:space-between;align-items:center;gap:28px;padding:clamp(28px,5vw,58px);display:flex}.gallery-hero .eyebrow{color:var(--cyan);letter-spacing:.14em;margin:0 0 10px;font-size:12px;font-weight:900}.gallery-hero h1{margin:0;font-size:clamp(30px,5vw,56px);line-height:1.08}.gallery-hero p:last-child{color:#c3cbcc;margin:16px 0 0}.gallery-hero .primary-button{color:#142022;flex:none;text-decoration:none}.gallery-controls{background:#ffffffe0;border:1px solid #232d2e1f;border-radius:14px;gap:12px;margin:28px 0 16px;padding:14px;display:flex;box-shadow:0 8px 24px #2a373914}.gallery-controls form{background:#fff;border:1px solid #ccd5d6;border-radius:9px;flex:1;align-items:center;gap:9px;min-width:240px;padding-left:12px;display:flex}.gallery-controls form input{background:0 0;border:0;outline:0;flex:1;min-width:0;height:42px}.gallery-controls form button,.random-button{cursor:pointer;border-radius:8px;min-height:42px;padding:0 16px}.gallery-controls form button{color:#fff;background:#252b2c}.random-button{color:#14373a;background:#c7f7fa;align-items:center;gap:7px;display:inline-flex}.gallery-tags{flex-wrap:wrap;gap:8px;display:flex}.gallery-tags button,.portrait-card-tags span{color:#526062;background:#ffffffc7;border:1px solid #d1dada;border-radius:999px;padding:6px 11px;font-size:12px}.gallery-tags button{cursor:pointer}.gallery-tags button.is-active{color:#123d41;background:#d6fbfd;border-color:#32c8d5;font-weight:800}.gallery-heading{justify-content:space-between;align-items:end;margin:34px 2px 18px;display:flex}.gallery-heading h2{margin:0;font-size:24px}.gallery-heading span{color:#778183;font-size:13px}.portrait-waterfall{columns:4 250px;column-gap:18px}.portrait-card{break-inside:avoid;background:#ffffffeb;border:1px solid #2834361f;border-radius:14px;margin:0 0 18px;transition:transform .18s,box-shadow .18s;overflow:hidden;box-shadow:0 7px 22px #2b383a1a}.portrait-card:hover{transform:translateY(-3px);box-shadow:0 12px 30px #2b383a29}.portrait-card-preview{color:#6d7779;background:#e7ecec;place-items:center;min-height:180px;text-decoration:none;display:grid}.portrait-card-preview img{width:100%;height:auto;image-rendering:pixelated;display:block}.portrait-invalid{text-align:center;padding:30px}.portrait-card-body{padding:16px}.portrait-card-tags{flex-wrap:wrap;gap:6px;display:flex}.portrait-card-tags span{padding:4px 8px}.portrait-card h2{margin:12px 0 7px;font-size:18px}.portrait-card h2 a{color:#202627;text-decoration:none}.portrait-card-body>p{color:#727d7f;margin:0;font-size:13px}.portrait-card-author,.detail-author{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.portrait-author{color:#35494b;align-items:center;gap:7px;font-weight:750;display:inline-flex}.portrait-author>img,.portrait-author-fallback{border-radius:50%;flex:0 0 25px;width:25px;height:25px}.portrait-author>img{object-fit:cover;background:#e5eef4}.portrait-author-fallback{color:#fff;background:#72b7e8;place-items:center;font-size:12px;font-weight:850;display:inline-grid}.portrait-card footer{color:#6f797b;justify-content:space-between;margin-top:14px;font-size:12px;display:flex}.gallery-state,.detail-state{color:#677274;text-align:center;background:#ffffffa6;border:1px dashed #bcc7c8;border-radius:14px;padding:70px 20px}.gallery-state.is-error{color:#8a3038}.load-more{color:#fff;cursor:pointer;background:#252b2c;border-radius:22px;min-width:170px;min-height:44px;margin:24px auto 0;display:block}.detail-back{color:#394547;cursor:pointer;background:0 0;align-items:center;gap:7px;margin-bottom:20px;text-decoration:none;display:inline-flex}.portrait-detail{box-shadow:var(--shadow);background:#fffffff0;border-radius:18px;grid-template-columns:minmax(420px,1.25fr) minmax(320px,.75fr);display:grid;overflow:hidden}.detail-preview{background:#e5ebeb;place-items:center;min-height:520px;padding:clamp(18px,3vw,42px);display:grid}.detail-preview img{width:100%;max-width:720px;image-rendering:pixelated;box-shadow:0 12px 32px #1e282a2e}.detail-copy h1{margin:18px 0 8px;font-size:clamp(30px,4vw,50px);line-height:1.1}.detail-author{color:#697476}.detail-author .portrait-author>img,.detail-author .portrait-author-fallback{flex-basis:32px;width:32px;height:32px}.detail-counts{gap:20px;margin:24px 0;font-weight:800;display:flex}.detail-source{background:#e6fafb;border-left:3px solid #1ccbd9;padding:14px}.detail-source a{color:#087e88;font-weight:800}.detail-contact{border:1px solid #dbe2e3;border-radius:10px;grid-template-columns:auto 1fr;align-items:center;gap:8px 16px;padding:18px;display:grid}.detail-contact dt{color:#778183}.detail-contact dd{justify-content:space-between;align-items:center;gap:12px;min-width:0;margin:0;font-weight:800;display:flex}.detail-contact dd>span{overflow-wrap:anywhere}.detail-contact button{color:#087e88;cursor:pointer;background:#effcfd;border:1px solid #b8dfe2;border-radius:4px;flex:none;align-items:center;gap:5px;min-height:30px;padding:0 9px;font-size:12px;display:inline-flex}.detail-actions{flex-wrap:wrap;gap:9px;margin-top:28px;display:flex}.detail-actions button{color:#3f4b4d;cursor:pointer;background:#fff;border:1px solid #ccd6d7;border-radius:22px;align-items:center;gap:7px;min-height:42px;padding:0 16px;display:inline-flex}.detail-actions button.is-active{color:#b52245;background:#fff0f4;border-color:#eb9db0}.detail-message{color:#187079;font-size:13px}.report-dialog{width:min(460px,100vw - 28px);box-shadow:var(--shadow);background:#fff;border-radius:14px;padding:26px}.report-dialog h2{margin:0 0 8px}.report-dialog p{color:#687375;line-height:1.65}.report-dialog select{background:#fff;border:1px solid #c8d2d3;border-radius:7px;width:100%;height:44px;padding:0 10px}.report-dialog footer{justify-content:flex-end;gap:10px;margin-top:22px;display:flex}.report-reason-label{color:#273234;gap:7px;font-weight:700;display:grid}.admin-report-target-kind{aspect-ratio:1;background:var(--admin-gray-150);width:54px;color:var(--admin-text-2);border-radius:8px;place-items:center;font-size:12px;font-weight:800;display:grid}.publish-entry-button:disabled{cursor:not-allowed;opacity:.45}.publish-modal-backdrop{z-index:70}.publish-dialog{color:#30383a;background:#fff;border-radius:14px;width:min(620px,100vw - 28px);max-height:calc(100vh - 28px);overflow:auto;box-shadow:0 26px 80px #141e2059}.publish-dialog>header{border-bottom:1px solid #e0e6e7;justify-content:space-between;align-items:flex-start;gap:16px;padding:22px 24px 17px;display:flex}.publish-dialog h2{margin:0 0 6px;font-size:22px}.publish-dialog header p{color:#697476;margin:0;font-size:13px}.publish-dialog form{gap:16px;padding:22px 24px 24px;display:grid}.publish-dialog form>label:not(.publish-check){gap:7px;font-size:13px;font-weight:800;display:grid}.publish-dialog input[type=text],.publish-dialog form>label:not(.publish-check) input{border:1px solid #cbd5d6;border-radius:7px;outline:0;width:100%;height:43px;padding:0 11px}.publish-dialog input:focus{border-color:#1abcca;box-shadow:0 0 0 3px #1abcca1f}.publish-dialog textarea{resize:vertical;width:100%;min-height:84px;font:inherit;border:1px solid #cbd5d6;border-radius:7px;outline:0;padding:10px 11px}.publish-dialog textarea:focus{border-color:#1abcca;box-shadow:0 0 0 3px #1abcca1f}.publish-dialog fieldset{border:1px solid #d7dfe0;border-radius:8px;margin:0;padding:13px}.publish-dialog legend{color:#596466;padding:0 6px;font-size:12px;font-weight:800}.publish-tags{flex-wrap:wrap;gap:8px;display:flex}.publish-tags label{cursor:pointer;background:#eff3f3;border-radius:999px;align-items:center;gap:6px;padding:6px 9px;font-size:12px;display:inline-flex}.publish-check{color:#515d5f;cursor:pointer;grid-template-columns:auto 1fr;align-items:start;gap:9px;font-size:13px;line-height:1.65;display:grid}.publish-check input{width:20px;height:20px}.publish-dialog form>footer{justify-content:flex-end;gap:10px;display:flex}.publish-restored{color:#155b42;background:#e5f8ef;border-left:3px solid #25b77d;margin:18px 24px 0;padding:12px 14px;font-size:13px}.publish-result{text-align:center;padding:38px 24px 42px}.publish-result h3{margin:0 0 10px;font-size:24px}.publish-result p{color:#697476}.publish-result a{color:#087e88;font-weight:800}.publish-author{color:#566164;background:#f6fafc;border:1px solid #dbe4e8;border-radius:6px;margin:0;padding:12px 14px}.publish-author strong{color:#202329}.publish-result .publish-result-button{color:#fff;margin-top:12px;text-decoration:none}.album-publish-result>svg{color:#168e69;margin:0 auto 14px}@media (width<=800px){.gallery-page,.portrait-detail-page{width:min(100% - 22px,680px);padding-top:18px}.gallery-hero{flex-direction:column;align-items:flex-start}.gallery-controls{flex-wrap:wrap}.gallery-controls form{flex-basis:100%}.portrait-detail{grid-template-columns:1fr}.detail-preview{min-height:0}}@media (width<=460px){.gallery-controls{padding:9px}.random-button{flex:1}.portrait-waterfall{columns:1}.detail-copy{padding:24px 18px}.publish-dialog form{padding:18px 15px}.publish-dialog>header{padding:18px 15px 14px}.publish-dialog form>footer button{flex:1;min-width:0;padding:0 9px}}.legal-shell{min-height:100vh;color:var(--ink)}.legal-topbar{color:#fff;background:linear-gradient(100deg,#171a1b,#272b2c 60%,#171a1b);justify-content:space-between;align-items:center;gap:20px;min-height:72px;padding:12px clamp(18px,4vw,56px);display:flex;box-shadow:0 4px 12px #0003}.legal-brand{color:inherit;align-items:center;gap:14px;font-size:22px;font-weight:850;text-decoration:none;display:inline-flex}.legal-topbar nav{align-items:center;gap:20px;display:flex}.legal-topbar nav a{color:var(--cyan-soft);font-weight:700;text-decoration:none}.legal-topbar nav a:hover{color:#fff;text-underline-offset:5px;text-decoration:underline}.legal-home-link{background:var(--cyan);border-radius:999px;padding:9px 16px;color:#151819!important}.legal-document{width:min(860px,100% - 32px);box-shadow:var(--shadow);background:#fffffff0;border:1px solid #181e1f1a;border-radius:12px;margin:42px auto 72px;padding:clamp(28px,5vw,64px)}.legal-eyebrow{color:#087a84;letter-spacing:.14em;margin:0 0 10px;font-size:12px;font-weight:900}.legal-document h1{letter-spacing:-.03em;margin:0;font-size:clamp(30px,5vw,48px);line-height:1.12}.legal-lead{color:#52595b;max-width:680px;margin:20px 0 28px;font-size:17px;line-height:1.8}.legal-notice{color:#123d41;background:#e1f9fb;border-left:4px solid #04b9c8;gap:14px;margin-bottom:34px;padding:16px 18px;display:flex}.legal-notice strong{flex:none}.legal-document section{content-visibility:auto;contain-intrinsic-size:240px;border-top:1px solid #2023241f;padding:28px 0}.legal-document h2{margin:0 0 14px;font-size:21px}.legal-document section p,.legal-document li{color:#434a4c;font-size:15px;line-height:1.85}.legal-document section p{margin:10px 0}.legal-document ul{margin:0;padding-left:1.25em}.legal-document li+li{margin-top:10px}.legal-document footer{border-top:2px solid #202324;margin-top:12px;padding-top:24px}.legal-document footer p{color:#6a7173;font-size:13px;line-height:1.7}.legal-document footer a{color:#087a84;font-weight:800}@media (width<=640px){.legal-topbar{align-items:flex-start}.legal-brand{font-size:18px}.legal-topbar nav{flex-direction:column;align-items:flex-end;gap:8px;font-size:13px}.legal-home-link{padding:7px 12px}.legal-document{margin-top:20px;padding:26px 20px}.legal-notice{flex-direction:column;align-items:flex-start;gap:6px}}.admin-loading{color:#6b7678;place-items:center;min-height:100vh;display:grid}.admin-login{background:radial-gradient(circle at 50% 0,#18e6f526,#0000 34%),#171b1c;place-items:center;min-height:100vh;padding:20px;display:grid}.admin-login form{color:#edf2f2;background:#24292a;border:1px solid #ffffff24;border-radius:15px;gap:17px;width:min(400px,100%);padding:34px;display:grid;box-shadow:0 24px 60px #0006}.admin-login img{object-fit:contain;object-position:left;width:210px;max-height:60px}.admin-login p{color:#aeb8b9;margin:0}.admin-login label{gap:7px;font-size:13px;display:grid}.admin-login input{color:#fff;background:#151819;border:1px solid #515b5c;border-radius:7px;height:44px;padding:0 11px}.admin-login button{color:#102022;background:var(--cyan);cursor:pointer;border-radius:7px;min-height:44px;font-weight:900}.admin-error{color:#8d2833;background:#ffe1e4;border-radius:6px;padding:10px 12px}.admin-shell{color:#273032;background:#eef2f2;grid-template-columns:230px minmax(0,1fr);min-height:100vh;display:grid}.admin-shell>aside{color:#eaf0f0;background:#1c2122;flex-direction:column;height:100vh;padding:20px 14px;display:flex;position:sticky;top:0}.admin-brand{color:#c4cdce;gap:7px;padding:0 8px 22px;text-decoration:none;display:grid}.admin-brand img{object-fit:contain;object-position:left;width:170px;max-height:48px}.admin-brand span{letter-spacing:.16em;font-size:12px}.admin-shell nav{gap:4px;display:grid}.admin-shell nav button{color:#b9c3c4;cursor:pointer;text-align:left;background:0 0;border-radius:7px;align-items:center;gap:10px;min-height:42px;padding:0 13px;display:flex}.admin-shell nav button:hover,.admin-shell nav button.is-active{color:#132426;background:var(--cyan);font-weight:800}.admin-shell>aside>footer{border-top:1px solid #ffffff1f;justify-content:space-between;align-items:center;margin-top:auto;padding:15px 7px 0;font-size:12px;display:flex}.admin-shell>aside>footer button{color:#d8dede;cursor:pointer;background:0 0;align-items:center;gap:5px;display:inline-flex}.admin-shell>main{min-width:0;padding:30px}.admin-section{background:#fff;border:1px solid #dce3e4;border-radius:12px;padding:24px;box-shadow:0 8px 24px #2634360f}.admin-section>header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.admin-section h1{margin:0;font-size:25px}.admin-status{border-radius:999px;padding:6px 10px;font-size:12px;font-weight:800}.admin-status.is-on{color:#176443;background:#d9f7e9}.admin-status.is-off{color:#8b2631;background:#ffe2e5}.admin-metrics{grid-template-columns:repeat(5,minmax(130px,1fr));gap:12px;display:grid}.admin-metrics article{background:#eef4f4;border-radius:9px;padding:18px}.admin-metrics span{color:#677274;font-size:12px;display:block}.admin-metrics strong{margin-top:9px;font-size:30px;display:block}.admin-note{color:#667173}.admin-table-wrap{max-width:100%;overflow:auto}.admin-table-wrap table{border-collapse:collapse;width:100%;font-size:13px}.admin-table-wrap th{color:#667173;text-align:left;background:#f0f4f4}.admin-table-wrap th,.admin-table-wrap td{vertical-align:top;border-bottom:1px solid #e2e7e8;padding:11px 10px}.admin-table-wrap td small{color:#7a8587;margin-top:4px;display:block}.admin-table-wrap code{color:#245c61}.admin-row-actions{min-width:190px}.admin-row-actions button,.admin-table-wrap td>button{color:#28565a;cursor:pointer;background:#f4fbfb;border:1px solid #bed0d2;border-radius:5px;margin:0 5px 5px 0;padding:6px 9px}.admin-row-actions button.is-danger{color:#8a2531;background:#fff1f2;border-color:#e2b6bb}.admin-pager{color:#6b7678;justify-content:flex-end;align-items:center;gap:10px;margin-top:18px;font-size:12px;display:flex}.admin-pager button{cursor:pointer;border-radius:5px;padding:6px 10px}.admin-inline-form{flex-wrap:wrap;gap:8px;margin-bottom:20px;display:flex}.admin-inline-form input{border:1px solid #cbd4d5;border-radius:6px;min-width:160px;height:40px;padding:0 9px}.admin-inline-form button,.admin-settings button{color:#122526;background:var(--cyan);cursor:pointer;border-radius:6px;padding:0 16px;font-weight:800}.admin-settings{gap:18px;max-width:520px;display:grid}.admin-settings label{justify-content:space-between;align-items:center;gap:20px;display:flex}.admin-settings input[type=number]{width:100px;height:40px;padding:0 8px}.admin-settings button{min-height:42px}.admin-message{color:#176044;background:#ddf7eb;border-left:3px solid #21b87c;margin-bottom:16px;padding:11px 14px}.admin-confirm-backdrop{z-index:90}.admin-confirm{width:min(480px,100vw - 28px);box-shadow:var(--shadow);background:#fff;border-radius:12px;padding:26px}.admin-confirm h2{margin:0 0 9px}.admin-confirm>p{color:#697476;line-height:1.6}.admin-confirm label{gap:7px;font-size:13px;font-weight:800;display:grid}.admin-confirm textarea{resize:vertical;border:1px solid #c9d3d4;border-radius:6px;min-height:90px;padding:9px}.admin-confirm footer{justify-content:flex-end;gap:9px;margin-top:18px;display:flex}.admin-confirm footer button{cursor:pointer;border-radius:6px;min-height:40px;padding:0 15px}.admin-confirm footer button:last-child{color:#143033;background:var(--cyan);font-weight:800}.admin-confirm footer button.is-danger{color:#fff;background:#b52d3d}@media (width<=860px){.admin-shell{grid-template-columns:1fr}.admin-shell>aside{width:100%;height:auto;position:static}.admin-shell nav{grid-template-columns:repeat(3,1fr)}.admin-shell>aside>footer{margin-top:15px}.admin-shell>main{padding:14px}.admin-metrics{grid-template-columns:repeat(2,1fr)}}@media (width<=480px){.admin-shell nav{grid-template-columns:repeat(2,1fr)}.admin-section{padding:15px}.admin-metrics{grid-template-columns:1fr}}.me-page{width:min(1120px,100% - 32px);margin:0 auto;padding:42px 0 70px}.me-heading{justify-content:space-between;align-items:end;gap:20px;margin-bottom:25px;display:flex}.me-heading h1{margin:4px 0 0;font-size:clamp(30px,5vw,48px)}.me-heading nav{display:flex}.me-login,.me-empty{text-align:center;background:#fff;border:1px solid #dce3e4;border-radius:14px;padding:60px 24px}.me-login svg,.me-empty svg{color:#418087}.me-login p{color:#697577}.me-login .primary-button,.me-empty .primary-button{margin-top:13px;display:inline-flex}.profile-form{gap:18px;display:grid}.profile-form>section{background:#fff;border:1px solid #dce3e4;border-radius:13px;padding:25px}.profile-form>section>h2{margin-top:0}.profile-form>section>p{color:#6b7678}.qq-private-card{align-items:center;gap:17px;display:flex}.qq-private-card>div{grid-template-columns:auto 1fr;align-items:center;gap:4px 12px;display:grid}.qq-private-card img{border-radius:50%;grid-row:1/3;width:52px;height:52px}.qq-private-card p{color:#6c7779;grid-column:2;margin:0}.profile-field{border-bottom:1px solid #edf0f0;grid-template-columns:minmax(240px,1fr) auto;align-items:end;gap:20px;padding:15px 0;display:grid}.profile-field>label:first-child{color:#39494b;gap:7px;font-weight:800;display:grid}.profile-field input:not([type=checkbox]),.profile-field select{background:#fff;border:1px solid #c8d2d3;border-radius:7px;min-height:42px;padding:0 11px}.privacy-switch{color:#46585a;align-items:center;gap:8px;min-height:42px;display:flex}.privacy-switch input{accent-color:#2aaeb9;width:18px;height:18px}.form-success{color:#176044;background:#ddf7eb;border-left:3px solid #21b87c;padding:12px 14px}.profile-form>.primary-button{justify-self:start}.my-portraits{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:16px;display:grid}.my-portraits article{aspect-ratio:1;background:#edf2f2;border:1px solid #dce3e4;border-radius:12px;position:relative;overflow:hidden}.my-portrait-link{width:100%;height:100%;text-decoration:none;display:block}.my-portrait-link img{object-fit:cover;width:100%;height:100%;image-rendering:pixelated;transition:transform .18s}.my-portraits article:hover .my-portrait-link img{transform:scale(1.025)}.my-portrait-overlay{pointer-events:none;color:#fff;background:linear-gradient(#0000,#111b27cc);justify-content:space-between;align-items:flex-end;gap:10px;padding:34px 12px 11px;display:flex;position:absolute;bottom:0;left:0;right:0}.my-portrait-overlay strong{text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.my-portrait-controls{gap:6px;display:flex;position:absolute;top:10px;right:10px}.my-portrait-controls button{color:#2f668c;cursor:pointer;background:#fffffff0;border:1px solid #fffc;border-radius:5px;justify-content:center;align-items:center;gap:5px;min-width:34px;height:34px;padding:0 9px;display:inline-flex;box-shadow:0 2px 8px #111b2724}.my-portrait-controls button:not(.my-portrait-state-action){width:34px;padding:0}.my-portrait-state-action span{white-space:nowrap;font-size:12px;font-weight:750}.my-portrait-controls button.is-danger{color:#9b2634}.portrait-state{color:#445759;background:#e7eeee;border-radius:999px;padding:4px 8px;font-size:12px;font-weight:800;display:inline-block}.portrait-state.is-published{color:#176044;background:#ddf7eb}.portrait-state.is-hidden,.portrait-state.is-reviewing{color:#8b2631;background:#ffe2e5}@media (width<=680px){.me-heading{flex-direction:column;align-items:stretch}.profile-field{grid-template-columns:1fr;gap:5px}.my-portraits{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}}.detail-actions button.is-bookmarked{color:#087e88;background:#e7fbfc;border-color:#83d1d7}.local-test-login-button{color:#087e88;background:#effcfd;border-color:#82cdd3}.favorite-portrait-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:16px;display:grid}.favorite-portrait-grid article{background:#fff;border:1px solid #dce3e4;border-radius:12px;padding-bottom:14px;overflow:hidden}.favorite-portrait-grid article>a{aspect-ratio:1;background:#e8eeee;display:block}.favorite-portrait-grid img{object-fit:cover;width:100%;height:100%;image-rendering:pixelated}.favorite-portrait-grid h2,.favorite-portrait-grid p{margin:10px 14px 0}.favorite-portrait-grid h2{font-size:17px}.favorite-portrait-grid p{color:#687476;font-size:12px}.favorite-unavailable{aspect-ratio:1;color:#7d8587;background:#edf1f1;place-items:center;display:grid}.album-gallery-page,.album-detail-page,.album-editor-page,.album-creator-page{width:min(1180px,100% - 32px);margin:0 auto;padding:42px 0 76px}.album-gallery-heading{margin-bottom:22px}.album-gallery-heading p,.album-creator-page>header p{color:#07828c;letter-spacing:.13em;margin:0;font-size:12px;font-weight:900}.album-gallery-heading h1,.album-creator-page>header h1{margin:5px 0 8px;font-size:clamp(34px,5vw,58px)}.album-gallery-heading span,.album-creator-page>header span{color:#687476}.gallery-toolbar{align-items:center;gap:12px;margin-bottom:24px;display:flex}.gallery-toolbar .me-search{flex:1;max-width:none;min-height:46px;margin:0}.gallery-toolbar .me-search input{min-height:44px}.gallery-toolbar .me-search button{min-height:38px}.gallery-toolbar .sort-tabs{flex:none}.me-search{color:#758082;background:#fff;border:1px solid #cbd5d6;border-radius:8px;align-items:center;gap:8px;max-width:440px;margin:0 0 16px;padding:0 6px 0 12px;display:flex}.me-search input{min-width:0;min-height:40px;font:inherit;border:0;outline:0;flex:1}.me-search button{color:#fff;cursor:pointer;background:#252b2c;border:0;border-radius:6px;min-height:34px;padding:0 12px}.me-search .search-reset-button,.album-library-search .search-reset-button{color:#5d696b;cursor:pointer;background:#f7f9f9;border:1px solid #d2dada;border-radius:6px;flex:none;align-items:center;gap:3px;min-height:30px;padding:0 8px;display:inline-flex}.me-search .search-reset-button:hover,.album-library-search .search-reset-button:hover{color:#263133;background:#eef3f3;border-color:#aebbbc}.album-page-heading{justify-content:space-between;align-items:end;gap:24px;margin-bottom:30px;display:flex}.album-page-heading p{color:#07828c;letter-spacing:.13em;margin:0;font-size:12px;font-weight:900}.album-page-heading h1{margin:5px 0 8px;font-size:clamp(34px,5vw,58px)}.album-page-heading span{color:#687476}.album-card-list{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;display:grid}.album-card{background:#fff;border:1px solid #d9e1e2;border-radius:14px;overflow:hidden;box-shadow:0 8px 24px #26343614}.album-card>a{background:#e8eeee;padding:10px;display:block}.album-card>div{padding:16px;position:relative}.album-cover{aspect-ratio:1;width:100%;image-rendering:pixelated;background:#eef2f2;display:block}.album-card h2{margin:0 0 7px}.album-card h2 a{color:#273032;text-decoration:none}.album-card p{color:#6a7678;margin:0;font-size:13px}.album-card-metrics{gap:10px;display:flex;position:absolute;bottom:16px;right:16px}.album-card-metrics span{color:#588084;align-items:center;gap:4px;font-size:12px;display:inline-flex}.album-card-author{margin-bottom:8px!important}.album-card-author .portrait-author>img,.album-card-author .portrait-author-fallback{flex-basis:24px;width:24px;height:24px}.album-grid{aspect-ratio:1;background:#cdd7d8;grid-template-rows:repeat(4,1fr);grid-template-columns:repeat(4,1fr);gap:3px;width:100%;display:grid;overflow:hidden}.album-slot{color:#879193;background:#eef2f2;place-items:center;min-width:0;display:grid;position:relative;overflow:hidden}.album-slot img{object-fit:cover;width:100%;height:100%;image-rendering:pixelated}.album-slot.is-filled{background:#dfe8e8}.album-slot.is-filled:hover{filter:brightness(.94)}.album-slot-detail-link{width:100%;height:100%;display:block}.album-slot-detail-link:focus-visible{outline:3px solid var(--action-blue);outline-offset:-3px}.album-missing{text-align:center;padding:4px;font-size:10px}.album-detail{box-shadow:var(--shadow);background:#fff;border-radius:16px;grid-template-columns:minmax(420px,1fr) minmax(300px,.7fr);display:grid;overflow:hidden}.album-detail>section:first-child{background:#e1e8e8;padding:clamp(16px,3vw,34px)}.album-detail-copy{padding:clamp(28px,4vw,55px)}.album-detail-copy>p:first-child{color:#07828c;letter-spacing:.1em;font-size:12px;font-weight:900}.album-detail-copy h1{margin:12px 0;font-size:clamp(30px,4vw,50px)}.album-detail-copy p{color:#687476;line-height:1.7}.album-detail-copy button,.album-detail-copy a{margin-top:18px;display:inline-flex}.album-detail-author{color:#39484a!important}.album-detail-actions{flex-wrap:wrap;gap:10px;margin-top:18px;display:flex}.album-detail-actions button,.album-detail-actions a{cursor:pointer;align-items:center;gap:7px;margin-top:0}.album-source{align-items:center;gap:7px;display:flex}.album-source a{color:#07828c;margin:0!important}.album-creator-page>header{margin-bottom:26px}.album-creator-page>form{grid-template-columns:minmax(420px,1fr) minmax(300px,.62fr);gap:28px;display:grid}.album-source-panel,.album-creator-fields{background:#fff;border:1px solid #d7e0e1;border-radius:14px;padding:22px;box-shadow:0 8px 24px #26343612}.album-creator-preview{aspect-ratio:1;background:#cad6d7;grid-template-rows:repeat(4,1fr);grid-template-columns:repeat(4,1fr);gap:3px;display:grid;overflow:hidden}.album-creator-preview>img{object-fit:cover;width:100%;height:100%;image-rendering:pixelated}.album-upload-empty,.album-processing{color:#667577;background:#eef3f3;grid-area:1/1/-1/-1;align-content:center;place-items:center;gap:10px;display:grid}.album-processing svg{animation:.9s linear infinite album-spin}.album-upload-action{margin-top:14px}.album-creator-fields{align-content:start;gap:18px;display:grid}.album-creator-fields label{gap:7px;font-weight:750;display:grid}.album-creator-fields input,.album-creator-fields textarea{width:100%;font:inherit;border:1px solid #c7d2d3;border-radius:8px;padding:11px 12px}.album-creator-fields textarea{resize:vertical;min-height:110px}.album-creator-fields>p{color:#6f7c7e;margin:0;font-size:13px;line-height:1.6}.album-generate-publish{justify-content:center;min-height:48px}.album-publish-success{text-align:center;background:#f3fbf9;border:1px solid #cbe4df;border-radius:15px;align-content:center;place-items:center;gap:12px;min-height:420px;display:grid}.album-publish-success h2,.album-publish-success p{margin:0}.album-publish-success svg{color:#078c76}@keyframes album-spin{to{transform:rotate(360deg)}}.my-album-section{margin-top:34px}.my-album-section>h2{margin-bottom:15px}.album-editor-header{justify-content:space-between;gap:20px;margin-bottom:24px;display:flex}.album-editor-header>div:first-child{flex:1;gap:9px;max-width:620px;display:grid}.album-editor-header input{padding:9px 12px;font-size:27px;font-weight:850}.album-editor-title{margin:0;padding:9px 12px;font-size:27px;font-weight:850}.album-editor-header textarea{resize:vertical;min-height:72px;padding:10px 12px}.album-editor-header input,.album-editor-header textarea{background:#fff;border:1px solid #c7d2d3;border-radius:8px}.album-editor-header>div:last-child{flex-wrap:wrap;align-content:start;gap:8px;display:flex}.album-editor-header button{align-items:center;gap:6px;display:inline-flex}.danger-button{color:#8a2531;cursor:pointer;background:#fff1f2;border:1px solid #e2b6bb;border-radius:7px;min-height:42px;padding:0 14px}.album-editor-layout{grid-template-columns:1fr;gap:24px;display:grid}.album-editor-layout.is-editing{grid-template-columns:minmax(420px,1fr) minmax(320px,.9fr)}.album-editor-layout>section,.album-editor-layout>aside{background:#fff;border:1px solid #dce3e4;border-radius:13px;padding:22px}.album-editor-layout h2{margin-top:0}.album-editor-layout h2 small{color:#07828c}.album-editor-layout p{color:#687476;font-size:13px}.album-editor-layout.is-editing .album-slot{cursor:pointer}.album-library{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.album-library-item{background:#f8fafa;border:1px solid #d5dede;border-radius:10px;gap:6px;padding:8px;display:grid;position:relative}.album-library-item.is-used{opacity:.55}.album-library-add{text-align:left;cursor:pointer;background:0 0;border:0;gap:6px;min-width:0;padding:0;display:grid}.album-library-add:disabled{cursor:default}.album-library-add img{aspect-ratio:1;object-fit:cover;width:100%;image-rendering:pixelated;background:#eef2f2;border-radius:6px}.album-library-add span{text-overflow:ellipsis;white-space:nowrap;font-weight:800;overflow:hidden}.album-library-add small{color:#758082}.album-library-edit{min-height:30px;color:var(--action-blue);border:1px solid var(--action-blue);border-radius:6px;place-items:center;font-size:13px;font-weight:700;text-decoration:none;display:grid}.album-library-edit:hover{color:#fff;background:var(--action-blue)}.album-library-used{color:#fff;background:#258360eb;border-radius:999px;padding:2px 7px;font-size:11px;position:absolute;top:12px;right:12px}.album-editor-meta{color:#687476;flex-wrap:wrap;gap:8px 14px;margin-top:6px;font-size:13px;display:flex}.album-editor-meta .is-published{color:#078c76;font-weight:700}.album-editor-page{width:min(1440px,100% - 64px)}.album-editor-page .album-detail{box-shadow:none;background:0 0;border-radius:0;grid-template-columns:minmax(480px,.96fr) minmax(360px,1.04fr);gap:48px;overflow:visible}.album-editor-page .album-detail-copy{padding:0}.album-editor-page .album-detail>section:first-child{background:0 0;flex-direction:column;padding:0;display:flex}.album-editor-page .album-detail-preview{flex:1;place-items:center;display:grid}.album-editor-page .album-detail-preview .album-grid{width:min(100%,640px)}.album-detail-used{border-top:1px solid #edf2f5;margin-top:22px;padding-top:18px}.album-detail-used h2{margin:0 0 12px;font-size:16px}.album-detail-used h2 small{color:#07828c}.album-detail-used .used-portrait-list{grid-template-columns:repeat(4,minmax(0,1fr));max-height:320px;overflow:auto}.used-portrait-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.used-portrait{background:#f8fafa;border:1px solid #e3eaeb;border-radius:8px;grid-template-columns:48px 1fr auto auto;align-items:center;gap:8px;padding:6px;display:grid}.used-portrait img{object-fit:cover;width:48px;height:48px;image-rendering:pixelated;border-radius:6px}.used-portrait-copy{min-width:0;display:grid}.used-portrait-copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.used-portrait-copy small{text-overflow:ellipsis;white-space:nowrap;color:#758082;font-size:11px;overflow:hidden}.used-portrait-slot{color:#8a9596;font-size:12px;font-weight:700}.used-portrait.is-removed{opacity:.55}.used-portrait-readd{min-height:28px;color:var(--action-blue);border:1px solid var(--action-blue);cursor:pointer;white-space:nowrap;background:#fff;border-radius:6px;padding:0 8px;font-size:12px;font-weight:700}.used-portrait-readd:hover{color:#fff;background:var(--action-blue)}.used-portrait-edit{min-height:28px;color:var(--action-blue);border:1px solid var(--action-blue);white-space:nowrap;background:#fff;border-radius:6px;align-items:center;padding:0 8px;font-size:12px;font-weight:700;text-decoration:none;display:inline-flex}.used-portrait-edit:hover{color:#fff;background:var(--action-blue)}.album-library-search{color:#758082;background:#fff;border:1px solid #cbd5d6;border-radius:7px;align-items:center;gap:8px;min-height:40px;margin-bottom:10px;padding:0 11px;display:flex}.album-library-search input{width:100%;font:inherit;border:0;outline:0}.album-empty-hint{color:#8a9596;margin:0;padding:14px 0;font-size:13px}.pager{color:#6b7678;justify-content:center;align-items:center;gap:12px;margin-top:14px;font-size:13px;display:flex}.pager button{cursor:pointer;background:#fff;border:1px solid #cbd5d6;border-radius:6px;min-height:34px;padding:0 12px}.pager button:disabled{opacity:.4;cursor:default}.library-tabs{background:#eef2f2;border-radius:8px;gap:6px;margin-bottom:12px;padding:4px;display:flex}.library-tabs button{color:#5b6668;cursor:pointer;background:0 0;border:0;border-radius:6px;flex:1;justify-content:center;align-items:center;gap:6px;min-height:36px;padding:0 10px;font-weight:700;display:inline-flex}.library-tabs button.is-active{color:var(--action-blue);background:#fff;box-shadow:0 1px 3px #2023291f}.library-tabs small{color:#8a9596;font-weight:600}.workshop-chooser-page{width:min(680px,100% - 32px);margin:0 auto;padding:42px 0 76px}.workshop-chooser-page h1{margin:0 0 6px;font-size:clamp(30px,5vw,44px)}.workshop-chooser-page>p{color:#687476;margin:0}.workshop-chooser-grid{gap:16px;margin-top:28px;display:grid}.workshop-chooser-card{color:inherit;background:#fff;border:1px solid #d5dede;border-radius:16px;grid-template-columns:auto 1fr;align-items:center;gap:20px;padding:26px;text-decoration:none;transition:transform .18s,border-color .18s,box-shadow .18s;display:grid;box-shadow:0 8px 24px #26343612}.workshop-chooser-card:hover{border-color:var(--action-blue);transform:translateY(-2px)}.workshop-chooser-icon{width:76px;height:76px;color:var(--action-blue);background:var(--brand-50);border-radius:16px;place-items:center;display:grid}.workshop-chooser-copy{gap:5px;display:grid}.workshop-chooser-copy strong{font-size:20px}.workshop-chooser-copy small{color:#758082;line-height:1.6}.album-workspace-publish{align-items:center;gap:10px;display:flex}.album-workspace-publish>span{color:#258360;font-weight:700}.album-workspace-publish .secondary-button{color:#22292a;min-height:40px;box-shadow:none;background:#fff;border-color:#cbd6d7}.album-workspace-fields{border-bottom:1px solid var(--line);gap:12px;padding:18px 0;display:grid}.album-workspace-fields>label:not(.album-workspace-agreement){color:#f4f6f6;gap:7px;font-size:13px;font-weight:800;display:grid}.album-workspace-fields input:not([type=checkbox]),.album-workspace-fields textarea{color:#f4f6f6;width:100%;font:inherit;background:#151819;border:1px solid #ffffff38;border-radius:4px;padding:10px 11px}.album-workspace-fields textarea{resize:vertical;min-height:72px}.album-workspace-agreement{color:#dce2e3;align-items:flex-start;gap:8px;font-size:12px;line-height:1.5;display:flex}.album-workspace-agreement input{margin-top:3px}.album-workspace-agreement a{color:var(--cyan)}.album-workspace .canvas-window:before,.album-workspace .canvas-window:after{display:none}.album-partition{z-index:5;pointer-events:none;transform-origin:0 0;display:grid;position:absolute;inset:0}.album-workspace .bead-board.with-grid .bead-cell:not(.is-selected){box-shadow:inset -.5px -.5px #1a1e1f38}@media (width<=800px){.album-detail,.album-editor-layout,.album-editor-layout.is-editing,.album-creator-page>form{grid-template-columns:1fr}.album-page-heading,.album-editor-header,.gallery-toolbar{flex-direction:column;align-items:stretch}.gallery-toolbar .sort-tabs{align-self:stretch}.gallery-toolbar .sort-tabs button{min-height:42px}.album-editor-layout>section,.album-editor-layout>aside,.album-source-panel,.album-creator-fields{padding:14px}.album-card-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}}@media (width<=760px){.album-workspace-publish>span,.album-workspace-publish .secondary-button{display:none}}:root{color:#202329;--brand-500:#69afe0;--brand-600:#3b8fc9;--action-blue:#0086e3;--action-blue-hover:#0076c9;--brand-50:#eff7fd;--surface:#fff;--ink:#202329;--text-muted:#687078;--guide-yellow:#ffd92f;--danger:#f04d68;--success:#3edbc1;--border:#d8e4ea;--disabled:#c8d1d7;--cyan:#69afe0;--cyan-soft:#eff7fd;--icon-blue:#65a9d8;--panel:#202329;--panel-2:#111b27;--muted:#687078;--line:#d8e4ea;--shadow:0 3px 0 #2023291a;background:#fff;font-family:Noto Sans SC,Microsoft YaHei UI,Microsoft YaHei,sans-serif}html{scroll-behavior:smooth}body{color:var(--ink);background:#fff}body:before{background:linear-gradient(#fff 0,#f8fdff 58%,#fff 100%)}body:after{display:none}button,input,select,textarea{font-family:inherit}button:focus-visible,a:focus-visible{outline:2px solid var(--ink);outline-offset:3px;box-shadow:0 0 0 2px var(--brand-500)}input:focus,input:focus-visible,select:focus,select:focus-visible,textarea:focus,textarea:focus-visible{border-color:var(--border);box-shadow:none;outline:0}.topbar{z-index:50;height:64px;color:var(--ink);-webkit-backdrop-filter:blur(16px);background:#ffffffbf;border-bottom:1px solid #d8e4eab3;justify-content:flex-start;padding:0 24px;position:sticky;top:0;box-shadow:0 2px 14px #20232912}.brand{flex:none}.brand img{object-fit:contain;width:144px;height:44px;max-height:44px}.primary-navigation{align-items:stretch;gap:44px;height:100%;margin-left:44px;display:flex}.primary-navigation>a,.workshop-menu>.workshop-trigger{color:var(--ink);cursor:pointer;align-items:center;padding:0 2px;font-size:16px;font-weight:600;text-decoration:none;display:inline-flex;position:relative}.primary-navigation>a:after,.workshop-menu>.workshop-trigger:after{content:"";background:0 0;height:4px;position:absolute;bottom:0;left:0;right:0}.primary-navigation>a:hover:after,.primary-navigation>a.is-active:after,.workshop-menu:hover>.workshop-trigger:after,.workshop-menu.is-active>.workshop-trigger:after{background:var(--action-blue)}.workshop-menu{align-items:stretch;display:flex;position:relative}.workshop-menu>.workshop-trigger{height:100%}.workshop-menu>.workshop-dropdown{z-index:80;border:1px solid var(--border);background:#fff;border-radius:8px;width:142px;padding:7px;display:none;position:absolute;top:calc(100% - 2px);left:50%;transform:translate(-50%);box-shadow:0 12px 28px #20232929}.workshop-menu:hover>.workshop-dropdown,.workshop-menu:focus-within>.workshop-dropdown{display:grid}.workshop-menu>.workshop-dropdown a{min-height:40px;color:var(--ink);border-radius:5px;align-items:center;padding:0 12px;font-size:14px;font-weight:650;text-decoration:none;display:flex}.workshop-menu>.workshop-dropdown a:hover{color:var(--brand-600);background:var(--brand-50)}.session-actions{gap:18px;margin-left:auto}.session-divider{background:var(--border);flex:none;width:1px;height:24px}.topbar-text-link{color:var(--ink);font-size:14px;text-decoration:none}.topbar-text-link:hover{color:var(--brand-600)}.session-loading{color:var(--text-muted)}.session-user{color:var(--ink);text-decoration:none}.session-avatar{color:var(--brand-600);border-color:var(--border);background:var(--brand-50)}.topbar-button{min-height:34px;color:var(--ink);border:1px solid var(--border);background:#fff;border-radius:4px;padding:0 12px}.topbar-button:hover{color:var(--brand-600);border-color:var(--brand-500);background:var(--brand-50)}.topbar-button.is-primary{color:#fff;border-color:var(--action-blue);background:var(--action-blue);box-shadow:var(--shadow)}.mobile-menu-button{color:var(--ink);background:0 0;display:none}.mobile-bottom-navigation,.mobile-menu-panel{display:none}.auth-notice{color:#12614f;background:#e9fbf7;border-color:#9de8da}.download-button,.primary-button{color:#fff;border:1px solid var(--action-blue);background:var(--action-blue);min-height:48px;box-shadow:var(--shadow);letter-spacing:0;border-radius:4px;padding:0 24px;transition:color .18s,background .18s,border-color .18s,transform .18s}.download-button:hover,.primary-button:hover{color:#fff;border-color:var(--action-blue-hover);background:var(--action-blue-hover);filter:none;transform:translateY(-2px);box-shadow:0 3px #20232929}.download-button:active,.primary-button:active{box-shadow:none;transform:translateY(2px)}.primary-button svg,.topbar-button.is-primary svg,.detail-primary-actions a svg,.edit-mode-button svg{color:#fff;stroke:currentColor}.download-button svg{color:var(--action-blue);stroke:currentColor}.download-button:hover svg{color:#fff}.secondary-button,.upload-button{min-height:40px;color:var(--ink);border:1px solid var(--border);box-shadow:none;background:#fff;border-radius:4px;padding:0 16px}.secondary-button:hover,.upload-button:hover{color:var(--brand-600);border-color:var(--brand-500);background:var(--brand-50)}.dark-button{color:#fff;min-height:48px;box-shadow:var(--shadow);background:#111b27;border:1px solid #111b27;border-radius:4px;justify-content:center;align-items:center;padding:0 24px;font-weight:700;text-decoration:none;transition:color .18s,background .18s,border-color .18s,transform .18s,box-shadow .18s;display:inline-flex}.dark-button:hover{color:#fff;background:#1b2b3c;border-color:#1b2b3c;transform:translateY(-2px);box-shadow:0 3px #20232929}.dark-button:active{box-shadow:none;transform:translateY(2px)}.modal-backdrop{-webkit-backdrop-filter:none;backdrop-filter:none;background:#111b279e}.login-dialog,.crop-dialog,.variant-dialog,.confirm-dialog,.report-dialog,.publish-dialog,.admin-confirm{color:var(--ink);border:1px solid var(--border);background:#fff;border-radius:8px;box-shadow:0 8px 20px #20232924}.login-dialog header p,.crop-dialog header p,.variant-dialog header p{color:var(--text-muted)}.icon-button{color:var(--ink);border:1px solid var(--border);background:#fff;border-radius:4px}.login-dialog{width:min(420px,100vw - 28px);min-height:400px;color:var(--ink);border-radius:8px;flex-direction:column;justify-content:center;padding:30px 28px 24px;display:flex;overflow:visible}.login-dialog>header{text-align:center;border:0;flex-direction:column;align-items:center;gap:12px;padding:0;display:flex}.login-dialog-icon{color:#fff;background:var(--action-blue);width:52px;height:52px}.login-dialog h2{color:var(--ink);margin:0;font-size:24px;line-height:1.25}.login-dialog-body{padding:24px 0 22px}.login-dialog-body>p{color:#435160;text-align:center;margin:0 0 20px;font-size:14px;line-height:1.6}.agreement-check{color:#435160;justify-content:center;align-items:flex-start;gap:8px;font-size:12px;line-height:1.55;display:flex}.agreement-check input,.privacy-switch input,.publish-check input,.publish-tags input{appearance:none;cursor:pointer;background:#fff 50%/13px 13px no-repeat;border:2px solid #9aaab4;border-radius:4px;flex:none;width:20px;height:20px;margin:0;transition:border-color .16s,background-color .16s,box-shadow .16s}.agreement-check input,.publish-check input{margin-top:1px}.agreement-check input:hover,.privacy-switch input:hover,.publish-check input:hover,.publish-tags input:hover{border-color:var(--action-blue)}.agreement-check input:focus-visible,.privacy-switch input:focus-visible,.publish-check input:focus-visible,.publish-tags input:focus-visible{outline:none;box-shadow:0 0 0 3px #0091eb2e}.agreement-check input:checked,.privacy-switch input:checked,.publish-check input:checked,.publish-tags input:checked{border-color:var(--action-blue);background-color:var(--action-blue);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m3 8 3 3 7-7' fill='none' stroke='white' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}.agreement-check a{color:var(--action-blue);text-underline-offset:3px}.publish-check a{color:var(--action-blue)}.publish-source-note{color:#3b6f98;border-left:3px solid var(--icon-blue);background:var(--brand-50);margin:0;padding:11px 13px;font-size:13px}.action-confirm-backdrop{z-index:1000}.action-confirm-dialog{border:1px solid var(--border);background:#fff;border-radius:8px;width:min(480px,100vw - 32px);overflow:hidden;box-shadow:0 22px 70px #111b274d}.action-confirm-dialog>header{border-bottom:1px solid var(--border);grid-template-columns:auto 1fr auto;align-items:start;gap:14px;padding:24px;display:grid}.action-confirm-dialog>header>span{width:44px;height:44px;color:var(--action-blue);background:var(--brand-50);border-radius:50%;place-items:center;display:grid}.action-confirm-dialog>header>span.is-danger{color:#ad293b;background:#fff0f2}.action-confirm-dialog h2{margin:0 0 7px;font-size:21px}.action-confirm-dialog header p{color:var(--text-muted);margin:0;font-size:14px;line-height:1.65}.action-confirm-dialog .icon-button{margin-top:-6px;margin-right:-6px}.action-confirm-options{padding:16px 24px 0}.action-confirm-options label{min-height:42px;color:var(--ink);border:1px solid var(--border);background:var(--brand-50);cursor:pointer;border-radius:4px;align-items:flex-start;gap:10px;padding:10px 12px;font-size:14px;line-height:20px;display:flex}.action-confirm-options input{width:17px;height:17px;accent-color:var(--action-blue);flex:none;margin:1px 0 0}.action-confirm-dialog>footer{justify-content:flex-end;gap:10px;padding:16px 24px 20px;display:flex}.danger-confirm-button{color:#fff;cursor:pointer;background:#ad293b;border:1px solid #ad293b;border-radius:4px;min-height:40px;padding:0 18px}.danger-confirm-button:hover{background:#922131}.danger-confirm-button:disabled{opacity:.55;cursor:not-allowed}.album-editor-toast{z-index:850;color:#174f74;background:#eff8fe;border:1px solid #9cc9e8;border-radius:6px;max-width:min(420px,100vw - 32px);padding:12px 16px;font-size:14px;font-weight:700;animation:.2s ease-out toast-enter;position:fixed;top:92px;right:32px;box-shadow:0 8px 24px #111b2729}.global-toast-stack{z-index:1200;pointer-events:none;gap:10px;width:min(380px,100vw - 32px);display:grid;position:fixed;top:80px;right:20px}.global-toast{min-height:48px;color:var(--ink);border:1px solid var(--border);border-left:4px solid var(--action-blue);pointer-events:auto;background:#fff;border-radius:6px;grid-template-columns:auto 1fr auto;align-items:start;gap:10px;padding:12px 10px 12px 13px;font-size:14px;line-height:22px;animation:.2s ease-out toast-enter;display:grid;box-shadow:0 8px 24px #111b2729}.global-toast.is-error{color:#7f1d2d;background:#fff6f7;border-color:#efc1c8 #efc1c8 #efc1c8 #ad293b}.global-toast.is-success{color:#166148;background:#f2fbf7;border-color:#b7e4d3 #b7e4d3 #b7e4d3 #0f7a5c}.global-toast.is-info{color:#174f74;border-color:#b9d9ee;border-left-color:var(--action-blue);background:#f4faff}.global-toast>svg{margin-top:2px}.global-toast button{color:currentColor;cursor:pointer;opacity:.72;background:0 0;border:0;border-radius:4px;place-items:center;width:28px;height:28px;margin:-3px -2px -3px 0;display:grid}.global-toast button:hover{opacity:1;background:#20232912}@keyframes toast-enter{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.login-dialog-body .auth-error{color:#9f2231;background:#fff0f2;margin:14px 0 0;padding:9px 10px;font-size:12px}.login-dialog>footer{justify-content:center;gap:10px;padding:0;display:flex}.login-dialog>footer button{min-width:104px;min-height:40px;padding-inline:16px}.login-dialog>footer .primary-button{min-width:172px}.login-dialog .primary-button:disabled{color:#fff;opacity:1;filter:none;background:#9db8ca;border-color:#9db8ca}.share-dialog{width:min(540px,100vw - 28px);min-height:320px;color:var(--ink);border:1px solid var(--border);background:#fff;border-radius:8px;flex-direction:column;justify-content:center;padding:30px 28px 24px;display:flex;box-shadow:0 8px 20px #20232924}.share-dialog>header{text-align:center;flex-direction:column;align-items:center;gap:12px;display:flex}.share-dialog>header span{color:#fff;background:var(--action-blue);border-radius:50%;place-items:center;width:52px;height:52px;display:grid}.share-dialog h2{margin:0;font-size:24px}.share-dialog-body{padding:24px 0 20px}.share-dialog-body>label{color:#435160;margin-bottom:7px;font-size:12px;display:block}.share-link-row{grid-template-columns:minmax(0,1fr) auto;display:grid}.share-link-row input{color:#334252;border:1px solid var(--border);background:#f8fafb;border-right:0;border-radius:4px 0 0 4px;min-width:0;height:42px;padding:0 10px}.share-link-row button{color:#fff;background:var(--ink);cursor:pointer;border-radius:0 4px 4px 0;justify-content:center;align-items:center;gap:6px;min-width:86px;display:inline-flex}.share-dialog-body>p{min-height:20px;color:var(--text-muted);margin:8px 0 16px;font-size:12px}.share-dialog>footer{justify-content:center;display:flex}.share-dialog>footer button{min-width:112px;min-height:40px}.variant-card{color:var(--ink);border-color:var(--border);box-shadow:var(--shadow);background:#fff}.variant-card.is-selected{border-color:var(--brand-500);box-shadow:0 0 0 1px var(--brand-500), var(--shadow)}.variant-copy small{color:var(--text-muted)}.platform-shell{background:#fff}.gallery-page{width:100%;max-width:none;margin:0;padding:0 0 64px}.gallery-hero{min-height:392px;color:var(--ink);box-shadow:none;background:linear-gradient(#ffffffc7,#ffffff80 44%,#fffffff5),url(/static/brand/hero-cards/loading-bg.jpg) top/cover no-repeat;border-radius:0;grid-template-columns:minmax(430px,.82fr) minmax(560px,1.18fr);align-items:center;gap:40px;padding:42px max(32px,50vw - 660px);display:grid;position:relative;overflow:hidden}.gallery-hero:after{content:"";pointer-events:none;background:var(--guide-yellow);transform-origin:top;width:2px;height:510px;position:absolute;top:-20px;right:17%;transform:rotate(42deg)}.gallery-hero-copy{z-index:2;position:relative}.gallery-display-wordmark{object-fit:contain;object-position:left;width:min(560px,100%);max-height:124px;display:block}.gallery-hero h1{letter-spacing:.01em;max-width:620px;margin:18px 0 0;font-size:clamp(29px,2.15vw,40px);line-height:1.18}.gallery-hero-copy>p{color:#3f4750;margin:12px 0 0;font-size:17px}.gallery-hero-actions{gap:16px;margin-top:26px;display:flex}.gallery-hero-art{z-index:1;isolation:isolate;align-self:center;min-width:0;height:326px;position:relative}.gallery-hero-art:before{content:"";z-index:-1;background:radial-gradient(circle at 50% 42%,#66d7ff29,#ffffff05 66%);border:1px solid #0086e31f;border-radius:48% 52% 46% 54%;position:absolute;inset:30px 2% 20px}.gallery-hero-art .hero-card{object-fit:contain;filter:drop-shadow(0 12px 12px #192b3833);will-change:transform;width:36%;height:auto;transition:transform .26s cubic-bezier(.22,1,.36,1),filter .26s;display:block;position:absolute}.gallery-hero-art:hover .hero-card{filter:drop-shadow(0 16px 14px #192b383d)}.hero-card-robot{z-index:1;top:25%;left:3%;transform:rotate(-6deg);width:34%!important}.hero-card-flower{z-index:3;top:2%;left:31%;transform:translateY(-2px);width:38%!important}.hero-card-lighthouse{z-index:2;top:23%;left:auto;right:1%;transform:rotate(6deg);width:36%!important}.gallery-browse{border-top:1px solid var(--border);width:min(1600px,100% - 64px);margin:0 auto;padding-top:20px}.gallery-title-row{border-bottom:0;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:24px;min-height:62px;display:grid}.gallery-title-copy{color:var(--text-muted);white-space:nowrap;align-items:center;gap:9px;font-size:13px;display:flex}.gallery-title-copy svg{margin-left:14px}.gallery-title-row h2{color:var(--ink);margin:0 26px 0 0;font-size:24px}.gallery-live-dot{background:var(--action-blue);border-radius:50%;width:8px;height:8px}.gallery-controls{box-shadow:none;background:0 0;border:0;border-radius:0;justify-content:flex-end;align-items:center;gap:12px;margin:0;padding:0;display:flex}.gallery-controls form{border:1px solid var(--border);border-radius:4px;width:min(280px,100%);min-width:220px;height:40px}.gallery-controls form input{height:38px}.gallery-controls form button{color:#fff;background:var(--ink);border-radius:0 3px 3px 0;align-self:stretch;min-height:38px}.sort-tabs{background:#f3f7f9;border:1px solid #cbd5d6;border-radius:8px;padding:3px;display:inline-flex;position:relative}.sort-tabs-thumb{z-index:0;background:var(--action-blue);border-radius:6px;transition:transform .28s cubic-bezier(.22,1,.36,1);position:absolute;top:3px;bottom:3px;left:3px;box-shadow:0 1px 5px #0086e34d}.sort-tabs button{z-index:1;color:#4e5e6d;cursor:pointer;background:0 0;border:0;border-radius:6px;flex:1;min-width:68px;min-height:38px;padding:0 16px;font-weight:600;position:relative}.sort-tabs button:hover:not(.is-active){color:#202329}.sort-tabs button.is-active{color:#fff}.me-toolbar{align-items:center;gap:12px;margin:0 0 16px;display:flex}.me-toolbar .me-search{flex:1;min-width:0;max-width:none;margin:0}.me-scope{flex:none}.me-scope .sort-tabs{position:static}.me-scope .sort-tabs-thumb{display:none}.me-scope .sort-tabs button{white-space:nowrap;flex:0 auto;min-width:0;min-height:38px;padding:0 10px;font-size:13px}.me-scope .sort-tabs button.is-active{color:#fff;background:var(--action-blue)}@media (width<=480px){.login-dialog{min-height:0;padding:26px 20px 22px}.login-dialog-body{padding:20px 0 18px}.login-dialog>footer{flex-wrap:wrap;gap:8px}.login-dialog>footer button{flex:calc(50% - 4px);min-width:0;padding-inline:10px}.login-dialog>footer .primary-button{flex-basis:100%;min-width:0}.me-toolbar{gap:8px}.me-scope .sort-tabs button{padding:0 8px;font-size:12px}}.random-button{min-height:40px;color:var(--ink);border:1px solid var(--border);background:#fff;border-radius:4px}.gallery-tags{flex-wrap:nowrap;gap:8px;margin:0;display:flex}.gallery-tags button,.portrait-card-tags span{color:#4e5e6d;border:1px solid var(--border);background:#f3f7f9;border-radius:4px;padding:5px 10px}.gallery-tags button.is-active{color:#fff;border-color:var(--action-blue);background:var(--action-blue)}.gallery-heading{display:none}.portrait-waterfall{columns:auto;grid-template-columns:repeat(5,minmax(0,1fr));align-items:start;gap:24px;display:grid}.portrait-card{border:1px solid var(--border);min-width:0;box-shadow:var(--shadow);background:#fff;border-radius:6px;align-self:start;margin:0;transition:transform .18s cubic-bezier(.22,1,.36,1),border-color .18s;overflow:hidden}.portrait-card:hover{border-color:var(--brand-500);transform:translateY(-2px);box-shadow:0 3px #20232924}.portrait-card-preview{aspect-ratio:1;background:var(--brand-50);border-radius:4px;min-height:0;margin:8px 8px 0;position:relative;overflow:hidden}.portrait-card-preview img{object-fit:contain;width:100%;height:100%}.portrait-card-preview:after{content:"";z-index:1;opacity:0;background:#111b273d;transition:opacity .18s;position:absolute;inset:0}.portrait-card-cta{z-index:2;color:#fff;background:var(--action-blue);opacity:0;white-space:nowrap;border:1px solid #ffffffe6;border-radius:4px;justify-content:center;align-items:center;min-height:40px;padding:0 18px;transition:opacity .16s,transform .18s,background-color .16s;display:inline-flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-42%)scale(.96);box-shadow:0 8px 24px #111b2738}.portrait-card:hover .portrait-card-preview:after,.portrait-card:focus-within .portrait-card-preview:after{opacity:1}.portrait-card:hover .portrait-card-cta,.portrait-card:focus-within .portrait-card-cta{opacity:1;transform:translate(-50%,-50%)scale(1)}.portrait-card-cta:hover{background:var(--action-blue-hover)}.portrait-card-body{padding:12px 12px 10px;position:relative}.portrait-card .portrait-card-tags{flex-wrap:nowrap;gap:5px;max-width:100%;margin:0 0 8px;display:flex;position:static;overflow:hidden}.portrait-card .portrait-card-tags:empty{display:none}.portrait-card .portrait-card-tags span{white-space:nowrap;text-overflow:ellipsis;background:#eef3f6;border:0;min-width:0;max-width:44%;padding:3px 7px;font-size:11px;overflow:hidden}.portrait-card .portrait-card-tags .portrait-card-tag-more{max-width:none;color:var(--action-blue);background:var(--brand-50);flex:none;font-weight:700}.portrait-card h2{margin:0 0 5px;padding-right:4px;font-size:17px;line-height:24px}.portrait-card-body>p{color:var(--text-muted);padding-right:0}.portrait-card footer{border-top:1px solid #edf2f5;margin-top:10px;padding-top:9px}.portrait-card footer span,.detail-counts span{align-items:center;gap:6px;display:inline-flex}.gallery-state,.detail-state{border:1px dashed var(--border);background:var(--brand-50);border-radius:6px}.loading-state{min-height:220px;color:var(--text-2);text-align:center;border:1px dashed var(--border);background:var(--brand-50);border-radius:6px;place-content:center;justify-items:center;gap:14px;display:grid}.loading-state>span:last-child{animation:1.6s ease-in-out infinite loading-breathe}.loading-spinner{background:conic-gradient(from 20deg, var(--brand-500), #66d7ff, transparent 72%);border-radius:50%;flex:none;width:28px;height:28px;animation:.8s linear infinite loading-spin;-webkit-mask:radial-gradient(farthest-side,#0000 calc(100% - 4px),#000 0);mask:radial-gradient(farthest-side,#0000 calc(100% - 4px),#000 0)}.loading-inline{min-height:34px;color:var(--text-2);border:1px solid var(--border);box-shadow:var(--shadow);background:#fffffff0;border-radius:999px;justify-content:center;align-items:center;gap:9px;padding:7px 12px;font-size:13px;display:inline-flex}.loading-inline .loading-spinner{width:17px;height:17px}.loading-content{min-height:320px;transition:min-height .2s;position:relative}.loading-content>*{transition:opacity .2s,transform .2s}.loading-content.is-loading>*{opacity:.48;pointer-events:none;transform:translateY(2px)}.route-loading-bar{z-index:9999;background:#0086e31f;height:3px;position:fixed;top:0;left:0;right:0;overflow:hidden}.route-loading-bar>span{background:linear-gradient(90deg, transparent, var(--action-blue), #66d7ff, transparent);width:38%;height:100%;animation:.9s ease-in-out infinite route-loading-slide;display:block}.loading-skeleton{grid-template-columns:repeat(5,minmax(0,1fr));gap:24px;min-height:420px;display:grid}.loading-skeleton.is-album{grid-template-columns:repeat(3,minmax(0,1fr))}.loading-skeleton.is-detail{grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr)}.loading-skeleton-card{border:1px solid var(--border);background:#fff;border-radius:8px;min-width:0;padding:10px}.loading-skeleton-card>span,.loading-skeleton-card>i{background:#e9eff1;display:block;position:relative;overflow:hidden}.loading-skeleton-card>span{aspect-ratio:1;border-radius:5px}.loading-skeleton.is-album .loading-skeleton-card>span,.loading-skeleton.is-detail .loading-skeleton-card>span{aspect-ratio:1}.loading-skeleton-card>i{border-radius:999px;width:72%;height:12px;margin-top:14px}.loading-skeleton-card>i:last-child{width:45%;height:9px;margin-top:9px}.loading-skeleton-card>span:after,.loading-skeleton-card>i:after{content:"";background:linear-gradient(90deg,#0000,#fffc,#0000);animation:1.35s ease-in-out infinite loading-shimmer;position:absolute;inset:0;transform:translate(-100%)}@keyframes loading-spin{to{transform:rotate(360deg)}}@keyframes loading-breathe{50%{opacity:.55}}@keyframes loading-shimmer{to{transform:translate(100%)}}@keyframes route-loading-slide{0%{transform:translate(-110%)}to{transform:translate(265%)}}@media (prefers-reduced-motion:reduce){.loading-spinner,.loading-state>span:last-child,.loading-skeleton-card>span:after,.loading-skeleton-card>i:after,.route-loading-bar>span{animation:none}}.gallery-browse,.portrait-gallery-page,.album-gallery-page,.me-route-content{min-height:520px}.portrait-waterfall,.album-card-list,.my-portraits,.favorite-portrait-grid{min-height:320px}.me-route-content>*{animation:.2s both me-route-enter}@keyframes me-route-enter{0%{opacity:.72;transform:translateY(4px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.me-route-content>*{animation:none}}@media (width<=1100px){.loading-skeleton{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width<=800px){.loading-skeleton,.loading-skeleton.is-album{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;min-height:360px}.loading-skeleton.is-detail{grid-template-columns:1fr}.loading-content{min-height:280px}.gallery-browse,.portrait-gallery-page,.album-gallery-page,.me-route-content{min-height:440px}}.load-more{border:1px solid var(--brand-600);color:var(--brand-600);background:#fff;border-radius:4px}.portrait-gallery-page{width:min(1180px,100% - 32px);margin:0 auto;padding:42px 0 76px}.workspace-titlebar{justify-content:space-between;align-items:center;gap:18px;width:min(1600px,100% - 64px);height:64px;margin:0 auto;display:flex}.workspace-titlebar>div{align-items:center;gap:18px;display:flex}.workspace-titlebar>div:first-child{height:100%}.workspace-titlebar h1{align-items:center;min-height:32px;margin:0;font-size:26px;line-height:1;display:inline-flex}.workspace-titlebar span{color:#258360;align-items:center;gap:6px;min-height:32px;font-size:13px;line-height:1;display:inline-flex}.workspace-publish-button{justify-content:center;min-width:168px;min-height:44px}.workspace-publish-button:disabled{color:#fff;box-shadow:none;opacity:.55;cursor:not-allowed;background:#9db8ca;border-color:#9db8ca;transform:none}.workspace-history{margin-right:390px}.workspace-history button{width:44px;height:40px;color:var(--ink);cursor:pointer;background:0 0;border-radius:4px;place-items:center;transition:color .16s,background-color .16s,transform .16s;display:grid}.workspace-history button:hover:not(:disabled){color:var(--action-blue);background:var(--brand-50);transform:translateY(-1px)}.workspace-history button:disabled{color:var(--disabled);cursor:default}.workspace{grid-template-columns:280px minmax(420px,1fr) 360px;align-items:stretch;gap:24px;width:min(1600px,100vw - 48px);min-height:calc(100vh - 144px);margin:0 auto;padding:0 0 24px}.panel{color:var(--ink);border:1px solid var(--border);box-shadow:var(--shadow);background:#fff;border-radius:6px}.source-panel,.palette-panel{scrollbar-gutter:auto;background:#fff;min-height:min(620px,100vh - 152px);max-height:calc(100vh - 152px);padding:0;position:relative;overflow:hidden}.source-panel{gap:0}.panel-scroll-body{scrollbar-width:none;-ms-overflow-style:none;flex:auto;min-height:0;padding:0 0 44px;overflow-y:auto}.panel-scroll-body::-webkit-scrollbar{width:0;height:0;display:none}.panel-scroll-title{color:#fff;background:#111b27;align-items:center;min-height:48px;padding:0 20px;font-size:17px;font-weight:700;display:flex}.source-panel:before,.palette-panel:before{content:none}.panel-scroll-content{padding:18px 20px 0}.source-panel .panel-scroll-content{flex-direction:column;gap:18px;display:flex}.palette-panel .panel-scroll-content{padding-top:8px}.source-panel .panel-scroll-content>section:first-child{border-bottom:1px solid var(--border);flex:none;padding:0 0 18px}.panel-title{min-height:38px;color:var(--ink);background:0 0;margin:0 0 10px;padding:0}.panel-title h2{font-size:15px}.panel-title span{color:#a9b8c5;display:none}.source-thumbnail{border:1px solid var(--border);box-shadow:none;background:#f3f7f9;margin:0 0 12px}.source-thumbnail.is-empty{color:var(--text-muted)}.navigator-section{flex:none;min-height:0}.section-heading p,.fixed-size{color:var(--text-muted)}.fixed-size strong{color:var(--brand-600)}.navigator-controls{grid-template-columns:1fr;min-height:0}.navigator-map{border:2px solid var(--ink);background:#fff;width:min(100%,210px);margin:0 auto}.viewport-box{border-color:var(--brand-500);box-shadow:none}.zoom-control{flex-direction:row;height:auto}.zoom-control input{writing-mode:horizontal-tb;width:100%;height:32px;accent-color:var(--brand-600);direction:ltr}.zoom-control input::-webkit-slider-runnable-track{width:auto;height:4px;box-shadow:none;background:#d9e6ed;border-radius:0}.zoom-control input::-webkit-slider-thumb{border:2px solid var(--brand-600);width:18px;height:18px;box-shadow:none;border-radius:50%;margin:-7px 0 0}.zoom-control output{color:var(--ink)}.source-download{border-color:var(--border)}.source-download .download-button{color:var(--action-blue);border-color:var(--action-blue);box-shadow:none;background:#fff}.canvas-stage{justify-content:flex-start;height:calc(100vh - 152px);min-height:620px;max-height:calc(100vh - 152px)}.canvas-meta{min-height:42px}.canvas-coordinate-frame{width:min(100%,100vh - 206px)}.canvas-coordinate-frame:before,.canvas-coordinate-frame:after{content:"";z-index:8;pointer-events:none;width:20px;height:20px;position:absolute}.canvas-coordinate-frame:before{border-top:4px solid var(--action-blue);border-left:4px solid var(--action-blue);top:3px;left:3px}.canvas-coordinate-frame:after{border-right:4px solid var(--action-blue);border-bottom:4px solid var(--guide-yellow);bottom:3px;right:3px}.canvas-window{border-color:var(--brand-500);box-shadow:var(--shadow)}.bead-board .bead-cell.is-selected{box-shadow:inset 0 0 0 2px #fff, inset 0 0 0 4px var(--brand-500)}.palette-panel{flex-direction:column;padding-top:0;display:flex}.panel-scroll-cue{z-index:12;pointer-events:none;background:linear-gradient(#fff0,#fff 68%);justify-content:center;align-items:flex-end;height:58px;padding-bottom:7px;display:flex;position:absolute;bottom:0;left:0;right:0}.panel-scroll-cue button{width:34px;height:28px;color:var(--action-blue);border:1px solid var(--brand-500);cursor:pointer;pointer-events:auto;background:#fff;border-radius:999px;place-items:center;display:grid;box-shadow:0 2px 8px #2023291f}.panel-scroll-cue button svg{animation:1.5s ease-in-out infinite panel-cue}.panel-scroll-cue button:hover{color:#fff;border-color:var(--action-blue);background:var(--action-blue);transform:translateY(-1px)}@keyframes panel-cue{0%,to{transform:translateY(0)}50%{transform:translateY(3px)}}.toggles{border-color:var(--border)}.toggle-track{box-shadow:none;background:#c8d1d7}.toggle-row input:checked+.toggle-track{background:var(--action-blue)}.current-color{border-color:var(--border)}.current-color p{color:var(--ink)}.current-color b{color:var(--brand-600)}.current-color strong{border-color:var(--brand-500);box-shadow:none}.palette-grid{grid-template-columns:repeat(4,1fr);gap:10px 14px}.palette-grid button{box-shadow:none;border:1px solid #2023291f;border-radius:4px}.palette-grid button.is-current{box-shadow:0 0 0 4px var(--brand-600);outline:2px solid #fff}.edit-mode-button,.edit-mode-button.is-active{color:#fff;border-color:var(--action-blue);background:var(--action-blue);border-radius:4px}.edit-mode-button:hover:not(:disabled){color:#fff;border-color:var(--action-blue-hover);background:var(--action-blue-hover);transform:translateY(-2px)}.edit-history-toolbar button{border-radius:4px}.portrait-detail-page{width:min(1440px,100% - 64px);margin:0 auto;padding:28px 0 64px}.detail-back{color:var(--brand-600);margin-bottom:18px}.portrait-detail{box-shadow:none;background:0 0;border-radius:0;grid-template-columns:minmax(500px,.96fr) minmax(380px,1.04fr);gap:64px;overflow:visible}.detail-media{border:1px solid var(--border);box-shadow:var(--shadow);background:#fff;border-radius:6px}.detail-preview{background:repeating-conic-gradient(#f2f8fb 0 25%, #fff 0 50%) 0 / 24px 24px;min-height:0;padding:22px;position:relative}.detail-preview:before,.detail-preview:after{content:"";border-color:var(--action-blue);pointer-events:none;width:18px;height:18px;position:absolute}.detail-preview:before{border-top:3px solid;border-left:3px solid;top:10px;left:10px}.detail-preview:after{border-bottom:3px solid;border-right:3px solid;bottom:10px;right:10px}.detail-preview img{width:min(100%,660px);box-shadow:none}.detail-size-label{color:var(--text-muted);font:500 12px/18px JetBrains Mono,Consolas,monospace;position:absolute;bottom:10px;right:14px}.detail-primary-actions{border-top:2px solid var(--brand-600);grid-template-columns:1fr 1.1fr 1fr;gap:12px;padding:16px 24px;display:grid}.detail-primary-actions button,.detail-primary-actions a{min-height:44px;color:var(--brand-600);border:1px solid var(--brand-600);cursor:pointer;background:#fff;border-radius:4px;justify-content:center;align-items:center;gap:8px;text-decoration:none;display:inline-flex}.detail-primary-actions a,.detail-primary-actions .primary-button{color:#fff;border-color:var(--action-blue);background:var(--action-blue)}.detail-local-note{color:var(--text-muted);text-align:center;margin:-4px 0 14px;font-size:12px}.detail-copy{padding:0}.detail-public-id{letter-spacing:.04em;margin:0 0 14px;font:500 13px/20px JetBrains Mono,Consolas,monospace}.detail-copy .portrait-card-tags{position:static}.detail-copy h1{margin:12px 0 8px;font-size:clamp(36px,4vw,56px)}.detail-author{font-size:16px}.detail-counts{border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin:0 0 24px;padding:15px 0}.detail-source{border-left-color:var(--brand-500);background:var(--brand-50)}.detail-contact{border-radius:6px}.detail-actions button{border-radius:4px}.detail-actions button.is-danger{color:#a22636;background:#fff1f2;border-color:#e2b6bb}.detail-time{border-top:1px solid var(--border);grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:22px 0 0;padding:15px 0;display:grid}.detail-time div{gap:5px;display:grid}.detail-time dt{color:var(--text-muted);font-size:12px}.detail-time dd{color:var(--ink);margin:0;font-size:13px;font-weight:700}.me-page{width:min(1200px,100% - 64px)}.me-heading h1{font-size:32px}.me-heading nav{background:0 0;border:0;border-radius:0;min-width:0}.me-heading nav .sort-tabs{width:100%}.me-heading nav .sort-tabs button{min-width:92px}.me-login,.me-empty,.profile-form>section,.my-portraits article{box-shadow:var(--shadow);border-radius:6px}.me-login>svg,.me-empty>svg,.gallery-state>svg,.detail-state>svg{color:var(--icon-blue)}.me-empty .primary-button svg,.me-login .primary-button svg{color:#fff}.profile-field{grid-template-columns:minmax(260px,560px) auto;justify-content:start}.profile-field>label:first-child{width:100%}.profile-field.is-account{grid-template-columns:minmax(260px,560px)}.profile-field input:not([type=checkbox]),.profile-field select{border-radius:4px;width:100%}.privacy-switch{min-width:112px}.me-empty .primary-button{text-decoration:none}.album-create-trigger-row{justify-content:flex-end;display:flex}.album-empty{flex-direction:column;justify-content:center;align-items:center;gap:8px;min-height:250px;display:flex}.album-empty p{margin:0}.album-create-dialog{border:1px solid var(--border);background:#fff;border-radius:7px;width:min(480px,100vw - 32px);overflow:hidden;box-shadow:0 18px 60px #111b2747}.album-create-dialog>header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:18px;min-height:86px;padding:20px 22px;display:flex}.album-create-dialog h2{margin:0 0 6px;font-size:22px}.album-create-dialog header p{color:var(--text-muted);margin:0;font-size:13px}.album-create-dialog form{gap:18px;padding:22px;display:grid}.album-create-dialog form>label{gap:8px;font-size:14px;font-weight:750;display:grid}.album-create-dialog input{border:1px solid var(--border);border-radius:4px;min-height:44px;padding:0 12px}.album-create-dialog footer{justify-content:flex-end;gap:10px;display:flex}.about-shell{color:#eaf3fb;background:#0a121c;position:relative}.about-bg{z-index:0;object-fit:cover;pointer-events:none;width:100vw;height:100vh;position:fixed;top:0;left:0}.about-shell:after{content:"";z-index:0;background:linear-gradient(#070d15a8,#070d15d1 50%,#070d15ed),radial-gradient(1100px 520px at 12% -8%,#40beff29,#0000 60%),radial-gradient(900px 480px at 100% 16%,#0086e321,#0000 55%);position:fixed;inset:0}.about-shell .topbar{color:#eaf3fb;-webkit-backdrop-filter:blur(14px);background:#070d15a8;border-bottom:1px solid #78c3f52e;box-shadow:0 2px 18px #00000047}.about-shell .primary-navigation>a,.about-shell .workshop-menu>.workshop-trigger{color:#d9e9f5}.about-shell .primary-navigation>a:hover:after,.about-shell .primary-navigation>a.is-active:after,.about-shell .workshop-menu:hover>.workshop-trigger:after,.about-shell .workshop-menu.is-active>.workshop-trigger:after{background:#6fd6ff}.about-shell .workshop-menu>.workshop-dropdown{background:#0a141ef5;border-color:#78c3f533;box-shadow:0 14px 32px #0006}.about-shell .workshop-menu>.workshop-dropdown a{color:#d9e9f5}.about-shell .workshop-menu>.workshop-dropdown a:hover{color:#6fd6ff;background:#40beff1f}.about-shell .topbar-text-link,.about-shell .session-user{color:#d9e9f5}.about-shell .session-divider{background:#78c3f533}.about-shell .session-loading{color:#9fbcd0}.about-shell .session-avatar{color:#6fd6ff;background:#40beff1f;border-color:#78c3f540}.about-shell .topbar-button{color:#d9e9f5;background:#78c3f514;border-color:#78c3f54d}.about-shell .topbar-button:hover{color:#6fd6ff;background:#40beff29;border-color:#6fd6ff}.about-shell .mobile-menu-button{color:#d9e9f5;background:0 0}.about-shell .mobile-menu-panel{background:#0a141ef5;border-color:#78c3f533;box-shadow:0 8px 20px #0006}.about-shell .mobile-menu-panel a{color:#d9e9f5;border-bottom-color:#78c3f524}.about-shell .mobile-menu-panel a:last-child{color:#6fd6ff}.about-shell .mobile-bottom-navigation{background:#070d15eb;border-top-color:#78c3f52e;box-shadow:0 -3px 12px #0000004d}.about-shell .mobile-bottom-navigation a{color:#b6cfdf}.about-shell .mobile-bottom-navigation a.is-active{color:#6fd6ff}.about-page{z-index:1;width:min(1080px,100% - 32px);margin:0 auto;padding:clamp(48px,7vw,88px) 0 88px;position:relative}.about-hero{max-width:780px}.about-eyebrow{color:#6fd6ff;letter-spacing:.18em;align-items:center;gap:8px;font-size:13px;font-weight:800;display:inline-flex}.about-hero h1{color:#f4faff;letter-spacing:-.03em;text-shadow:0 0 30px #3cb4ff4d;margin:16px 0 14px;font-size:clamp(42px,7vw,76px)}.about-hero p{color:#c3d7e6;max-width:680px;margin:0;font-size:18px;line-height:1.75}.about-summary{-webkit-backdrop-filter:blur(14px);background:linear-gradient(160deg,#142a3ea8,#0a162280);border:1px solid #6fd6ff40;border-left:4px solid #6fd6ff;border-radius:10px;margin-top:34px;padding:20px 24px;box-shadow:0 16px 36px #020a124d}.about-summary strong{color:#e8f6ff;margin-bottom:7px;font-size:16px;display:block}.about-summary p{color:#b6cfdf;margin:0;line-height:1.75}.about-links{grid-template-columns:1fr;gap:18px;margin-top:22px;display:grid}.about-link-card{min-height:148px;color:inherit;-webkit-backdrop-filter:blur(14px);background:linear-gradient(160deg,#122436b8,#0a162299);border:1px solid #78c3f52e;border-radius:12px;align-items:center;gap:22px;padding:30px 34px;text-decoration:none;transition:transform .18s cubic-bezier(.22,1,.36,1),border-color .18s,box-shadow .18s;display:flex;position:relative;box-shadow:0 16px 36px #020a1252,inset 0 1px #ffffff0d}.about-link-card:hover{border-color:#6fd6ff8c;transform:translateY(-3px);box-shadow:0 22px 46px #020a126b,0 0 0 1px #6fd6ff1f}.about-link-icon{background:#fffffff0;border-radius:10px;flex:none;place-items:center;width:132px;height:84px;display:grid;box-shadow:0 8px 22px #020a1257}.about-link-icon img{object-fit:contain;max-width:104px;max-height:62px}.about-mail-card .about-link-icon img{transform:translate(5px)}.about-link-copy{gap:3px;min-width:0;display:grid}.about-link-copy small{color:#6fd6ff;letter-spacing:.16em;font-size:12px;font-weight:800}.about-link-copy strong{color:#eef7fd;font-size:22px}.about-link-copy em{color:#9fbcd0;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-style:normal;overflow:hidden}.about-link-arrow{color:#6fd6ff;opacity:.7;flex:none;margin-left:auto;transition:transform .18s,opacity .18s}.about-link-card:hover .about-link-arrow{opacity:1;transform:translate(3px,-3px)}.about-game-card{background:#0b1622;border:1px solid #78c3f538;border-radius:14px;align-items:flex-end;min-height:340px;margin-top:18px;display:flex;position:relative;overflow:hidden;box-shadow:0 18px 40px #020a1261}.about-game-bg{z-index:0;object-fit:cover;object-position:center 30%;width:100%;height:100%;position:absolute;top:0;left:0}.about-game-card:after{content:"";background:linear-gradient(#070d150a 0%,#070d1594 55%,#070d15e6 100%);position:absolute;inset:0}.about-game-avatar{z-index:1;background:#ffffff14;border:2px solid #6fd6ff8c;border-radius:50%;flex:none;width:96px;height:96px;margin:0 20px 32px 36px;position:relative;overflow:hidden;box-shadow:0 10px 26px #00000073}.about-game-avatar img{object-fit:cover;width:100%;height:100%;display:block}.about-game-copy{z-index:1;gap:7px;padding:32px 36px 32px 0;display:grid;position:relative}.about-game-copy small{color:#6fd6ff;letter-spacing:.18em;font-size:12px;font-weight:800}.about-game-copy strong{color:#fff;letter-spacing:.02em;text-shadow:0 2px 16px #00000080;font-size:clamp(30px,5vw,48px)}.about-game-copy em{color:#cfe3f2;letter-spacing:.08em;font-size:16px;font-style:normal;font-weight:700}.about-game-mark{z-index:1;color:#6fd6ff99;position:absolute;bottom:24px;right:24px}.about-changelog{-webkit-backdrop-filter:blur(14px);background:linear-gradient(160deg,#122436ad,#0a16228c);border:1px solid #78c3f529;border-radius:12px;margin-top:22px;padding:28px 32px;box-shadow:0 16px 36px #020a124d,inset 0 1px #ffffff0d}.about-changelog .about-eyebrow{margin-bottom:20px}.about-changelog-body{gap:22px;display:grid}.changelog-group{border-left:1px solid #78c3f52e;padding:2px 0 2px 24px;position:relative}.changelog-group:before{content:"";background:#6fd6ff;border-radius:50%;width:9px;height:9px;position:absolute;top:7px;left:-5px;box-shadow:0 0 0 4px #6fd6ff24}.changelog-head{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:12px;display:flex}.changelog-version{color:#eaf3fb;letter-spacing:.05em;background:#6fd6ff1f;border:1px solid #6fd6ff66;border-radius:999px;padding:3px 11px;font:700 12px/1.5 JetBrains Mono,Consolas,monospace}.changelog-head time{color:#6fd6ff;letter-spacing:.02em;font:500 12px/1.5 JetBrains Mono,Consolas,monospace}.changelog-head strong{color:#eef7fd;font-size:16px}.changelog-items{gap:9px;margin:0;padding:0;list-style:none;display:grid}.changelog-items li{color:#c3d7e6;align-items:flex-start;gap:10px;font-size:14px;line-height:1.7;display:flex}.changelog-tag{text-align:center;letter-spacing:.06em;border-radius:4px;flex:none;min-width:40px;margin-top:3px;padding:1px 7px;font-size:11px;font-style:normal;font-weight:800}.changelog-tag.is-feat{color:#7ce8c5;background:#3edbc11f;border:1px solid #3edbc159}.changelog-tag.is-opt{color:#7fd0ff;background:#69afe01f;border:1px solid #69afe059}.changelog-tag.is-fix{color:#ffd27f;background:#ffbe5c1f;border:1px solid #ffbe5c59}.changelog-tag.is-sec{color:#ff9daa;background:#f04d681f;border:1px solid #f04d6859}.about-contact{margin-top:22px}.about-contact .about-eyebrow{margin-bottom:16px}.about-details{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:18px;display:grid}.about-details>div{-webkit-backdrop-filter:blur(14px);background:linear-gradient(160deg,#122436ad,#0a16228c);border:1px solid #78c3f529;border-radius:12px;align-items:flex-start;gap:18px;padding:26px 28px;display:flex;box-shadow:0 16px 36px #020a124d,inset 0 1px #ffffff0d}.about-details svg{color:#6fd6ff;flex:none}.about-details h2{color:#eef7fd;margin:0 0 12px;font-size:20px}.about-details p{color:#b6cfdf;margin:0;line-height:1.8}.about-details ul{color:#b6cfdf;margin:0;padding-left:1.2em;line-height:1.95}.developer-card{color:#eaf3fb;-webkit-backdrop-filter:blur(14px);background:linear-gradient(160deg,#0e1c2cd1,#09121ca8);border:1px solid #78c3f533;border-radius:12px;grid-template-columns:auto 1fr;gap:22px;margin-top:18px;padding:30px;display:grid;box-shadow:0 16px 36px #020a1257,inset 0 1px #ffffff0d}.developer-card>svg{color:#6fd6ff}.developer-card p{color:#6fd6ff;letter-spacing:.16em;margin:0 0 6px;font-size:12px;font-weight:800}.developer-card h2{color:#f2f9ff;margin:0 0 20px;font-size:25px}.developer-card dl{grid-template-columns:96px 1fr;gap:12px 20px;margin:0;display:grid}.developer-card dt{color:#8fb2c8}.developer-card dd{color:#d7e8f4;overflow-wrap:anywhere;margin:0}.developer-card dd a{color:#6fd6ff;text-decoration:none}.developer-card dd a:hover{text-decoration:underline}.about-footer{text-align:center;border-top:1px solid #78c3f51f;margin-top:44px;padding:20px 0 0}.about-footer a{color:#9fbcd080;letter-spacing:.02em;font-size:12px;text-decoration:none}.about-footer a:hover{color:#9fbcd0c7}@media (width<=800px){.developer-card{grid-template-columns:1fr}.about-link-card{gap:16px;min-height:120px;padding:22px 20px}.about-link-icon{width:96px;height:64px}.about-link-icon img{max-width:76px;max-height:48px}.about-game-card{min-height:260px}.about-game-avatar{width:72px;height:72px;margin:0 16px 24px 20px}.about-changelog{padding:22px 20px}.changelog-group{padding-left:16px}}.my-portrait-preview,.portrait-state{border-radius:4px}.legal-topbar{min-height:64px;color:var(--ink);border-bottom:1px solid var(--border);background:#fff;box-shadow:0 2px 8px #2023290f}.legal-topbar nav a{color:var(--brand-600)}.legal-topbar nav a:hover{color:var(--ink)}.legal-home-link{background:var(--action-blue);border-radius:4px;color:#fff!important}.legal-document{box-shadow:var(--shadow);border-radius:8px}.legal-notice{border-left-color:var(--brand-500);background:var(--brand-50)}.admin-login{background:#111b27}.admin-login form{background:#182534;border-radius:8px;box-shadow:0 8px 20px #0000003d}.admin-login button{color:#fff;background:var(--action-blue);border-radius:4px}.admin-shell{background:#f4f8fa;grid-template-columns:224px minmax(0,1fr)}.admin-shell>aside{background:#111b27;padding:18px 12px}.admin-shell nav button{border-radius:4px}.admin-shell nav button:hover,.admin-shell nav button.is-active{color:#fff;background:var(--action-blue)}.admin-shell>main{padding:24px}.admin-section{box-shadow:var(--shadow);border-radius:6px;padding:20px}.admin-section h1{font-size:24px}.admin-status{border-radius:4px}.admin-metrics{border-top:1px solid var(--border);border-bottom:1px solid var(--border);gap:0;display:flex}.admin-metrics article{border-right:1px solid var(--border);background:#fff;border-radius:0;flex:1;padding:14px 18px}.admin-metrics article:last-child{border-right:0}.admin-metrics strong{font-size:26px}.admin-table-wrap th{background:#f3f7f9}.admin-table-wrap th,.admin-table-wrap td{vertical-align:middle;height:54px;padding:9px 10px}.admin-row-actions button,.admin-table-wrap td>button,.admin-pager button,.admin-inline-form input,.admin-inline-form button,.admin-settings button{border-radius:4px}.admin-inline-form button,.admin-settings button{color:#fff;background:var(--action-blue)}.admin-moderation{padding:0;overflow:hidden}.admin-moderation>header{border-bottom:1px solid var(--border);min-height:58px;margin:0;padding:0 20px}.admin-moderation-grid{grid-template-columns:minmax(520px,56fr) minmax(300px,29fr) minmax(190px,15fr);min-height:calc(100vh - 108px);display:grid}.admin-moderation-list,.admin-inspector,.admin-disposition{min-width:0}.admin-moderation-list,.admin-inspector{border-right:1px solid var(--border)}.admin-compact-filter{border-bottom:1px solid var(--border);grid-template-columns:1fr 130px 68px;gap:8px;height:56px;padding:8px 12px;display:grid}.admin-compact-filter input,.admin-compact-filter select{border:1px solid var(--border);background:#fff;border-radius:4px;min-width:0;padding:0 10px}.admin-compact-filter button{border:1px solid var(--brand-600);color:#fff;background:var(--brand-600);cursor:pointer;border-radius:4px;font-weight:700}.admin-empty-row{height:120px;color:var(--text-muted);text-align:center}.admin-moderation-list .admin-table-wrap{max-height:calc(100vh - 222px)}.admin-moderation-list tbody tr{cursor:pointer}.admin-moderation-list tbody tr:hover,.admin-moderation-list tbody tr.is-selected{background:var(--brand-50)}.admin-moderation-list tbody tr.is-selected{box-shadow:inset 3px 0 var(--brand-600)}.admin-moderation-list .admin-pager{height:52px;margin:0;padding:0 12px}.admin-inspector{padding:18px}.admin-inspector>header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.admin-inspector h2,.admin-disposition h2{margin:0;font-size:19px}.admin-inspector>header code{color:var(--text-muted)}.admin-inspector-summary{grid-template-columns:116px 1fr;gap:16px;display:grid}.admin-inspector-summary img,.admin-inspector-empty{aspect-ratio:1;object-fit:cover;width:116px;image-rendering:pixelated;border:1px solid var(--border)}.admin-inspector-summary h3{margin:5px 0 10px}.admin-inspector-summary p{color:var(--text-muted);margin:7px 0;font-size:13px}.admin-inspector-data{grid-template-columns:92px 1fr;margin-top:22px;font-size:13px;display:grid}.admin-inspector-data dt,.admin-inspector-data dd{border-bottom:1px solid #edf2f5;margin:0;padding:10px 0}.admin-inspector-data dt{color:var(--text-muted)}.admin-inspector-data dd{overflow-wrap:anywhere}.admin-disposition{padding:20px 16px}.admin-status-timeline{gap:18px;margin:24px 0;display:grid}.admin-status-timeline span{color:var(--text-muted);padding-left:24px;font-size:13px;position:relative}.admin-status-timeline span:before{content:"";background:#fff;border:2px solid #aab8c3;border-radius:50%;width:10px;height:10px;position:absolute;top:3px;left:2px}.admin-status-timeline span.is-complete:before{background:#1eae76;border-color:#1eae76}.admin-status-timeline span.is-current{color:var(--ink);font-weight:700}.admin-status-timeline span.is-current:before{border-color:var(--action-blue);background:var(--action-blue)}.admin-disposition>p{color:var(--text-muted);font-size:12px;line-height:1.7}.admin-disposition>button{color:#fff;cursor:pointer;background:#111b27;border:1px solid #111b27;border-radius:4px;width:100%;min-height:48px;margin-top:14px;font-weight:700}.admin-disposition>button.is-approve{border-color:var(--action-blue);background:var(--action-blue)}.admin-disposition>button.is-danger{color:var(--danger);border-color:var(--danger);background:#fff}.gallery-hero .primary-button,.gallery-tags button.is-active,.topbar-button.is-primary,.admin-login button,.admin-shell nav button:hover,.admin-shell nav button.is-active,.admin-inline-form button,.admin-settings button,.admin-confirm footer button:last-child,.detail-primary-actions .primary-button{color:#fff}.topbar a,.topbar button,.primary-button,.dark-button,.secondary-button,.download-button,.upload-button,.load-more,.gallery-tags button,.random-button,.portrait-card,.detail-primary-actions button,.detail-primary-actions a,.edit-mode-button,.palette-grid button,.admin-shell nav button,.admin-disposition>button{transition:color .16s cubic-bezier(.22,1,.36,1),background-color .16s cubic-bezier(.22,1,.36,1),border-color .16s cubic-bezier(.22,1,.36,1),transform .18s cubic-bezier(.22,1,.36,1),box-shadow .18s cubic-bezier(.22,1,.36,1)}.gallery-tags button:hover,.random-button:hover,.secondary-button:hover,.upload-button:hover,.load-more:hover,.detail-primary-actions button:hover,.detail-primary-actions a:hover,.admin-disposition>button:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.gallery-tags button:active,.random-button:active,.secondary-button:active,.upload-button:active,.load-more:active,.detail-primary-actions button:active,.detail-primary-actions a:active,.admin-disposition>button:active{box-shadow:none;transform:translateY(1px)scale(.99)}.gallery-tags button.is-active{animation:.18s cubic-bezier(.22,1,.36,1) control-select}.gallery-hero-copy{animation:.38s cubic-bezier(.22,1,.36,1) both hero-copy-in}.gallery-hero-art{animation:.42s cubic-bezier(.22,1,.36,1) 60ms both hero-art-in}.portrait-card,.album-card{animation:.36s cubic-bezier(.22,1,.36,1) both card-reveal}.portrait-card:nth-child(2n),.album-card:nth-child(2n){animation-delay:35ms}.portrait-card:nth-child(3n),.album-card:nth-child(3n){animation-delay:70ms}.mobile-menu-panel{transform-origin:100% 0;animation:.16s cubic-bezier(.22,1,.36,1) both menu-pop}@keyframes control-select{0%{transform:scale(.96)}to{transform:scale(1)}}@keyframes hero-copy-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes hero-art-in{0%{opacity:0;transform:translate(18px)scale(.98)}to{opacity:1;transform:translate(0)scale(1)}}@keyframes card-reveal{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes menu-pop{0%{opacity:0;transform:translateY(-6px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}body h1,body h2,body h3,body h4,body strong,body b{font-weight:700}body button,body .primary-button,body .dark-button,body .download-button{font-weight:650}@media (width<=1439px){.portrait-waterfall{grid-template-columns:repeat(4,minmax(0,1fr))}.workspace{grid-template-columns:250px minmax(400px,1fr) 320px;gap:16px}}@media (width<=1199px){.topbar-text-link{display:none}.portrait-waterfall{grid-template-columns:repeat(3,minmax(0,1fr))}.gallery-hero{grid-template-columns:.9fr 1.1fr;padding-inline:24px}.workspace{grid-template-columns:1fr 320px;width:min(100% - 32px,920px)}.source-panel{grid-column:1/-1;grid-template-columns:1fr 1fr auto;min-height:auto;max-height:none;display:grid}.source-panel>section:first-child{border-bottom:0}.canvas-stage,.palette-panel{max-height:none}}@media (width<=800px){body{padding-bottom:64px}.app-shell:has(.workspace){margin-bottom:-64px}.app-shell:has(.workspace)~*{display:none}.topbar{height:56px;padding:0 16px}.brand img{width:196px;height:50px}.primary-navigation,.topbar-text-link,.session-divider,.session-loading,.session-user b,.topbar-button svg{display:none}.session-actions{gap:10px}.brand-entry{width:42px}.topbar-button{min-height:40px;color:var(--action-blue);border-color:var(--action-blue);background:#fff;padding:0 13px}.topbar-button.is-primary{color:#fff;border-color:var(--action-blue);background:var(--action-blue)}.mobile-menu-button{place-items:center;width:42px;height:42px;display:grid}.mobile-menu-panel{z-index:59;-webkit-backdrop-filter:blur(16px);background:#ffffffe6;border:1px solid #d8e4eacc;border-radius:6px;width:176px;padding:8px;display:grid;position:fixed;top:56px;right:12px;box-shadow:0 8px 20px #2023291f}.mobile-menu-panel a{min-height:44px;color:var(--ink);border-bottom:1px solid #edf2f5;align-items:center;padding:0 12px;text-decoration:none;display:flex}.mobile-menu-panel a:last-child{color:var(--brand-600);border-bottom:0;font-weight:700}.mobile-bottom-navigation{z-index:60;-webkit-backdrop-filter:blur(16px);background:#fffc;border-top:1px solid #d8e4eab3;grid-template-columns:repeat(5,1fr);height:64px;display:grid;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -3px 14px #20232914}.mobile-bottom-navigation a{color:#505b68;flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:12px;text-decoration:none;display:flex}.mobile-bottom-navigation a.is-active{color:var(--action-blue);font-weight:650}.gallery-page{width:100%;padding-top:0}.gallery-hero{background-position:50%;min-height:510px;padding:34px 20px 24px;display:block}.gallery-display-wordmark{width:min(350px,88vw);max-width:100%}.gallery-hero h1{width:62%;min-width:238px;margin-top:18px;font-size:30px;line-height:1.35}.gallery-hero-copy>p,.gallery-hero-actions .dark-button{display:none}.gallery-hero-actions{margin-top:18px}.gallery-hero-art{opacity:.99;width:calc(100% - 32px);height:206px;position:absolute;bottom:20px;right:16px}.gallery-hero-art:before{inset:18px 2% 8px}.gallery-hero-art .hero-card{width:36%}.hero-card-robot{top:26%;left:2%;width:34%!important}.hero-card-flower{top:0;left:31%;width:38%!important}.hero-card-lighthouse{top:25%;left:auto;right:1%;width:36%!important}.gallery-browse{border-top:1px solid var(--border);background:#fff;border-radius:0;width:100%;padding:24px 16px 18px}.gallery-title-row{border:0}.gallery-title-row>div:last-child{display:none}.gallery-title-row h2{font-size:27px}.gallery-title-row{display:block}.gallery-title-copy{min-height:48px}.gallery-title-copy svg,.gallery-title-copy span:last-child{display:none}.gallery-controls{grid-template-columns:1fr auto;row-gap:12px;margin-bottom:18px;display:grid}.gallery-controls form{grid-column:1/-1;width:100%}.home-gallery-page .gallery-title-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.home-gallery-page .gallery-title-copy{min-height:0}.home-gallery-page .gallery-controls{margin:0;display:flex}.home-gallery-page .gallery-controls .random-button{flex:none;width:auto}.gallery-tags{grid-column:1/-1;grid-template-columns:repeat(4,1fr);display:grid}.gallery-tags button{min-height:44px;padding-inline:4px;font-size:13px}.portrait-waterfall{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 12px;margin-top:4px}.portrait-card-preview{aspect-ratio:1}.portrait-card-body{padding:9px}.portrait-card h2{font-size:16px}.portrait-card .portrait-card-tags{margin-bottom:7px}.portrait-card-body>p{padding-right:0}.portrait-card-cta{min-height:36px;padding-inline:13px;font-size:12px}.portrait-detail-page{width:min(100% - 32px,680px)}.portrait-gallery-page{width:calc(100% - 32px)}.album-gallery-page{padding-top:0}.portrait-gallery-page .gallery-toolbar,.album-gallery-page .gallery-toolbar{margin-top:16px}.portrait-detail{grid-template-columns:1fr;gap:28px}.detail-primary-actions{padding-inline:12px}.album-editor-page{width:min(100% - 32px,680px);padding-top:18px}.album-editor-page .album-detail{grid-template-columns:1fr;gap:24px}.album-editor-page .album-detail>section:first-child{gap:14px}.album-editor-page .album-detail-preview{padding:0 6px}.album-detail-used .used-portrait-list{grid-template-columns:repeat(2,minmax(0,1fr))}.album-editor-layout.is-editing{gap:16px}.album-editor-layout>aside{min-width:0}.album-library{grid-template-columns:repeat(2,minmax(0,1fr))}.workspace-titlebar{justify-content:space-between;width:calc(100% - 32px);height:56px}.workspace-titlebar h1{font-size:24px}.workspace-titlebar span{display:none}.workspace-publish-button{min-width:118px;min-height:40px;padding-inline:12px}.workspace{flex-direction:column;width:100%;min-height:auto;padding:0 16px 88px;display:flex}.canvas-stage{order:1;height:auto;min-height:auto}.canvas-coordinate-frame{width:100%}.palette-panel{order:2;min-height:auto}.source-panel{order:3;min-height:auto;display:flex}.palette-grid{grid-template-columns:repeat(4,1fr)}.source-panel,.palette-panel{max-height:none}.panel-scroll-body{padding-bottom:0;overflow:visible}.panel-scroll-content{padding-bottom:20px}.panel-scroll-cue{display:none}.source-download .download-button,.source-download .publish-entry-button{min-height:48px;color:var(--action-blue);border:1px solid var(--action-blue);box-shadow:none;background:#fff}.source-download .download-button:hover,.source-download .publish-entry-button:hover{color:#fff;background:var(--action-blue)}.me-page{width:calc(100% - 32px)}.me-heading nav{width:100%;overflow:visible}.me-heading nav .sort-tabs{min-width:0}.me-heading nav .sort-tabs button{white-space:nowrap;min-width:0;padding:0 6px;font-size:14px}.profile-field{grid-template-columns:1fr;gap:10px}.privacy-switch{min-width:0}.about-details,.admin-shell{grid-template-columns:1fr}}@media (width<=480px){.brand img{width:178px}.brand-entry{display:none}.gallery-hero{min-height:520px}.gallery-hero h1{width:64%;min-width:216px;font-size:27px}.gallery-hero-art{width:calc(100% - 24px);height:196px;bottom:18px;right:12px}.gallery-controls{grid-template-columns:1fr}.gallery-controls .random-button{justify-content:center;width:100%;display:inline-flex}.sort-tabs{width:100%}.gallery-tags{grid-template-columns:repeat(2,1fr)}.portrait-card footer{font-size:11px}.detail-primary-actions{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
