:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0f101a;--panel:#181b29;--panel-border:#242a3c;--panel-border-strong:#313a5a;--surface-elevated:#111425;--surface-subtle:#1a1d2b;--surface-subtle-hover:#262d45;--surface-subtle-active:#313a5a;--surface-overlay:#121420f5;--text:#f2f5ff;--muted:#c0c7da;--muted-strong:#8f98b5;--text-inverse:#f8f9ff;--focus-ring:#6f7bff73;--shadow-elevated:0 16px 38px #1214208c;--shadow-floating:0 18px 40px #0000007a;--brand-gradient-soft:#7b85ff80;--brand-gradient-start:#5b6dff;--brand-gradient-end:#9365ff;--brand-gradient-hover-start:#6f7bff;--brand-gradient-hover-end:#a368ff;--brand-gradient:linear-gradient(135deg, var(--brand-gradient-start), var(--brand-gradient-end));--brand-gradient-hover:linear-gradient(135deg, var(--brand-gradient-hover-start), var(--brand-gradient-hover-end))}*{box-sizing:border-box}html,body{overscroll-behavior:none;width:100%;max-width:100%;height:100%;overflow:hidden}body{background:var(--bg);color:var(--text);flex-direction:column;width:100%;max-width:100%;height:100dvh;min-height:100dvh;margin:0;font:14px/1.35 system-ui,-apple-system,Segoe UI,Roboto;display:flex;position:fixed;inset:0;overflow:hidden}@supports (height:100svh){body{height:100svh;min-height:100svh}}body.modal-open{touch-action:none;overscroll-behavior:none;width:100%;max-width:100%;position:fixed;inset:0;overflow:hidden}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.layout{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.tabbar{background:var(--panel);border-bottom:1px solid var(--panel-border);z-index:20;align-items:center;gap:8px;padding:10px;display:flex;position:sticky;top:0}.tabbar-tabs{flex:1;gap:8px;min-width:0;display:flex}.tab-btn{background:var(--surface-subtle);color:var(--text);border:1px solid var(--panel-border);font:inherit;cursor:pointer;border-radius:8px;flex:1;padding:8px;transition:background .2s,border-color .2s}.tab-btn.active{background:var(--surface-subtle-active);border-color:var(--panel-border-strong)}.menu-trigger{color:var(--text);cursor:pointer;justify-content:center;align-items:center;transition:background .2s,border-color .2s,color .2s;display:inline-flex;position:relative}.menu-trigger--compact{border:1px solid var(--panel-border);background:var(--surface-subtle);border-radius:10px;flex:none;width:42px;height:38px}.menu-trigger--compact:hover,.menu-trigger--compact:focus-visible{background:var(--surface-subtle-hover);border-color:var(--panel-border-strong);color:var(--text);outline:none}.menu-trigger--compact:focus-visible{box-shadow:0 0 0 3px var(--focus-ring)}.menu-trigger--compact[aria-expanded=true]{background:var(--surface-subtle-active);border-color:var(--panel-border-strong)}.menu-icon{flex-direction:column;gap:4px;display:inline-flex}.menu-icon span{background:currentColor;border-radius:999px;width:18px;height:2px;transition:opacity .2s,transform .2s;display:block}.menu-trigger--compact[aria-expanded=true] .menu-icon span:nth-child(2){opacity:0}.menu-trigger--compact[aria-expanded=true] .menu-icon span:first-child{transform:translateY(6px)rotate(45deg)}.menu-trigger--compact[aria-expanded=true] .menu-icon span:last-child{transform:translateY(-6px)rotate(-45deg)}.menu-trigger-desktop{gap:6px;display:none}.menu-trigger-desktop svg{width:12px;height:12px;display:block}.menu-trigger-desktop[aria-expanded=true]{background:var(--surface-subtle-active);border-color:var(--panel-border-strong);color:var(--text)}#saveGraalButton{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}#saveGraalButton svg{width:14px;height:14px;display:block}.menu-popup{background:var(--surface-overlay);border:1px solid var(--panel-border);width:min(240px,100% - 24px);box-shadow:var(--shadow-floating);z-index:1600;border-radius:14px;flex-direction:column;gap:6px;padding:12px 10px;display:flex;position:fixed;top:68px;right:12px}.menu-popup.menu-popup--desktop{width:min(260px,100% - 24px);position:absolute;top:52px;left:auto;right:12px}.panel-toolbar .menu-popup--desktop{width:260px;top:calc(100% + 8px);right:0}.menu-popup[hidden]{display:none}.menu-account-summary{align-items:center;gap:10px;min-width:0;display:flex}.menu-avatar{background:var(--brand-gradient);width:28px;height:28px;color:var(--text-inverse);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:13px;font-weight:600;display:inline-flex}.menu-account-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.menu-item--secondary{color:var(--muted);font-size:12px}.menu-account{color:var(--muted);border-bottom:1px solid #30365299;margin-bottom:6px;padding:6px 10px 10px;font-size:12px;line-height:1.4}.menu-account__name{color:var(--text);margin-bottom:4px;font-size:13px;font-weight:600}.menu-account__link{color:var(--brand-gradient-end);font-size:12px;text-decoration:none}.menu-account__link:hover,.menu-account__link:focus-visible{color:var(--brand-gradient-start);outline:none;text-decoration:underline}.menu-account__hint{color:var(--muted);font-size:12px}.menu-account__action{color:var(--brand-gradient-end);font:inherit;cursor:pointer;text-align:left;background:0 0;border:none;margin-top:2px;padding:0;font-size:12px}.menu-account__action:hover,.menu-account__action:focus-visible{color:var(--brand-gradient-start);outline:none;text-decoration:underline}.menu-item{width:100%;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:10px;padding:10px 12px;font:14px/1.3 system-ui,-apple-system,Segoe UI,Roboto;text-decoration:none;transition:background .2s,color .2s}.menu-item:hover,.menu-item:focus-visible{background:color-mix(in srgb, var(--brand-gradient-start) 24%, transparent);color:var(--text);outline:none}.menu-item:active{background:color-mix(in srgb, var(--brand-gradient-end) 32%, transparent)}.app{flex-direction:column;flex:1;gap:10px;min-height:0;padding:10px;display:flex;overflow:hidden}.tab-panel{flex-direction:column;flex:1;min-width:0;min-height:0;display:none;overflow:hidden}.tab-panel.active{display:flex}aside{background:var(--panel);border:1px solid var(--panel-border);border-radius:10px;padding:10px;overflow:auto}.tab-panel>aside,.tab-panel>.panel{flex:1;min-height:0}h1{margin:.2rem 0;font-size:18px}h2{color:var(--muted);margin:.6rem 0 .3rem;font-size:14px}details.control-section{border:1px solid var(--panel-border);background:#141826;border-radius:12px;margin-top:14px;overflow:hidden}details.control-section:first-of-type{margin-top:16px}details.control-section summary{cursor:pointer;color:var(--text);-webkit-user-select:none;user-select:none;background:linear-gradient(#202436e6,#141723e6);justify-content:space-between;align-items:center;padding:12px 14px;font-size:15px;font-weight:600;list-style:none;display:flex}details.control-section summary::-webkit-details-marker{display:none}details.control-section summary:after{content:"▼";color:var(--muted);flex:none;margin-left:12px;font-size:11px;transition:transform .2s}details.control-section[open] summary:after{transform:rotate(180deg)}details.control-section summary:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.section-body{flex-direction:column;gap:12px;padding:10px 14px 16px;display:flex}.section-heading{color:var(--muted);letter-spacing:.05em;text-transform:uppercase;margin:.4rem 0 .2rem;font-size:13px}.section-body .section-heading:first-child{margin-top:0}.section-block{flex-direction:column;gap:8px;display:flex}details.color-section{border:1px solid var(--panel-border);background:#111524;border-radius:10px;margin-top:4px;overflow:hidden}details.color-section:first-of-type{margin-top:0}details.color-section summary{color:var(--text);cursor:pointer;background:linear-gradient(#1e2234eb,#111320eb);justify-content:space-between;align-items:center;margin:0;padding:12px 14px;font-size:14px;font-weight:600;list-style:none;display:flex}details.color-section summary::-webkit-details-marker{display:none}details.color-section summary:after{content:"▼";color:var(--muted);flex:none;margin-left:10px;font-size:10px;transition:transform .2s}details.color-section[open] summary:after{transform:rotate(180deg)}.color-content{background:#0a0c14d9;flex-direction:column;gap:10px;padding:12px 14px 16px;display:flex}label{color:var(--muted);margin:.35rem 0;display:block}.button{background:var(--surface-subtle);border:1px solid var(--panel-border-strong);color:var(--text);cursor:pointer;border-radius:8px;padding:8px 10px}.button.primary{background:var(--brand-gradient);color:var(--text-inverse);border:none;font-weight:600}.button.primary:hover,.button.primary:focus-visible{background:var(--brand-gradient-hover);outline:none}.button.secondary{border:1px solid var(--panel-border);color:var(--muted);background:0 0;font-weight:500}.button.secondary:hover,.button.secondary:focus-visible{border-color:var(--brand-gradient-start);color:var(--text);outline:none}.button[disabled]{opacity:.55;cursor:not-allowed;pointer-events:none}.two{grid-template-columns:1fr;gap:8px;display:grid}.two>*{min-width:0}.panel{background:var(--surface-elevated);border:1px solid var(--panel-border);border-radius:10px;flex-direction:column;flex:1;min-height:0;padding:12px;display:flex;overflow:hidden}.mask-panel{gap:12px;overflow:auto}.viewer-panel{padding:0;position:relative;overflow:visible}.viewer-panel .panel-toolbar{z-index:5;margin:0;position:absolute;top:12px;right:12px}.viewer-panel.no-webgl{justify-content:center;align-items:center}.commission-btn{left:50%;bottom:max(16px, calc(env(safe-area-inset-bottom,0px) + 12px));background:var(--brand-gradient);color:#f8f9ff;border:1px solid var(--brand-gradient-soft);cursor:pointer;z-index:6;white-space:nowrap;border-radius:999px;align-items:center;gap:8px;max-width:calc(100% - 32px);padding:10px 22px;font-size:14px;font-weight:600;transition:transform .18s,box-shadow .18s,background .18s;display:flex;position:absolute;transform:translate(-50%);box-shadow:0 10px 26px #14162466}.commission-btn:hover,.commission-btn:focus-visible{box-shadow:var(--shadow-elevated);background:var(--brand-gradient-hover);outline:none;transform:translate(-50%)translateY(-2px)}.commission-btn:focus-visible{box-shadow:0 0 0 3px var(--focus-ring), var(--shadow-elevated)}.viewer-panel.no-webgl .commission-btn{display:none}@media (max-width:480px){.commission-btn{gap:6px;padding:9px 18px;font-size:13px}}.viewer-fallback{text-align:center;color:var(--muted);flex:1;justify-content:center;align-items:center;padding:24px;font-size:13px;line-height:1.5;display:none}.viewer-panel.no-webgl .viewer-fallback{display:flex}.viewer-panel.no-webgl .gl{display:none}.panel-toolbar{justify-content:flex-end;align-items:center;gap:8px;margin-bottom:6px;display:flex}.panel-toolbar.desktop-only{display:none}.viewer-panel .panel-toolbar.desktop-only{display:flex}.panel-toggle{background:var(--surface-subtle);border:1px solid var(--panel-border-strong);color:var(--text);cursor:pointer;letter-spacing:.01em;border-radius:999px;padding:6px 12px;font:12px/1.2 system-ui,-apple-system,Segoe UI,Roboto;transition:background .2s,border-color .2s,color .2s}.panel-toggle:hover{background:var(--surface-subtle-hover);border-color:var(--panel-border-strong);color:var(--text)}.panel-toggle:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.panel-toggle[aria-pressed=true]{background:var(--surface-subtle-active);border-color:var(--panel-border-strong);color:var(--text)}.share-trigger{align-items:center;gap:6px;display:inline-flex}.share-trigger svg{width:14px;height:14px;display:block}.share-popup{background:var(--surface-overlay);border:1px solid var(--panel-border);width:min(280px,100% - 24px);box-shadow:var(--shadow-floating);z-index:1600;border-radius:14px;flex-direction:column;gap:10px;padding:16px;display:flex;position:absolute;top:52px;right:12px}.share-popup[hidden]{display:none}.share-popup-header{color:var(--text);justify-content:space-between;align-items:center;gap:10px;font-size:15px;font-weight:600;display:flex}.share-close{width:28px;height:28px;color:var(--muted-strong);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;transition:background .2s,color .2s;display:flex}.share-close:hover,.share-close:focus-visible{color:var(--text);background:#2d335099;outline:none}.share-message{color:var(--muted-strong);margin:0;font-size:12px}.share-url{background:var(--surface-subtle);border:1px solid var(--panel-border);width:100%;color:var(--text);text-overflow:ellipsis;border-radius:8px;padding:8px 10px;font:13px/1.3 system-ui,-apple-system,Segoe UI,Roboto;overflow:hidden}.share-url:focus-visible{border-color:var(--panel-border-strong);box-shadow:0 0 0 3px var(--focus-ring);outline:none}.share-copy{background:var(--brand-gradient);color:#fff;cursor:pointer;border:none;border-radius:9px;width:100%;padding:9px 12px;font:600 13px/1 inherit;transition:filter .2s,box-shadow .2s}.share-copy:hover:not(:disabled),.share-copy:focus-visible:not(:disabled){background:var(--brand-gradient-hover);outline:none}.share-copy:focus-visible{box-shadow:0 0 0 3px var(--focus-ring)}.share-copy:disabled{opacity:.55;cursor:not-allowed}.share-copy[data-status=copied]{background:linear-gradient(135deg,#2fa96b,#37c07d)}.share-copy[data-status=error]{background:linear-gradient(135deg,#c0433c,#d95a52)}@media (max-width:959px){#viewer3dToggle,.menu-trigger-desktop{display:none}}@media (min-width:960px){.menu-trigger--compact{display:none}.menu-trigger-desktop{display:inline-flex}}.mask-header{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;margin-bottom:6px;display:flex}.mask-header .panel-toolbar{flex:none;margin:0 0 0 auto}.mask-header .panel-toggle{white-space:nowrap}.mask-canvases{flex-direction:column;flex:1;gap:8px;min-height:0;display:flex}.mask-split{flex:none;grid-template-columns:minmax(0,1fr);grid-auto-rows:1fr;gap:8px;min-height:0;display:grid}.mask-split.pattern-only{grid-template-columns:minmax(0,1fr)}.mask-canvas-wrapper{height:100%;min-height:0;position:relative}.mask-canvas-wrapper canvas{height:100%}.mask-canvas-wrapper--mask{overflow:hidden}.mask-keycolor,.mask-tolerance{z-index:10;border:1px solid var(--panel-border);background:#090b14e0;border-radius:12px;flex-direction:column;gap:6px;padding:10px 12px 12px;display:flex;position:absolute;top:10px;left:10px;right:10px;box-shadow:0 16px 40px #00000061}.mask-keycolor{pointer-events:none}.mask-keycolor__text{color:var(--text);font-size:12px;font-weight:600;line-height:1.5}.mask-tolerance__row{color:var(--muted-strong);justify-content:space-between;align-items:center;gap:8px;font-size:12px;display:flex}.mask-tolerance__label{color:var(--text);font-weight:600}.mask-tolerance__value{font-variant-numeric:tabular-nums;color:var(--muted);font-size:12px}.mask-tolerance input[type=range]{width:100%}.mask-comp{flex:none;min-height:120px}canvas,.gl{border:1px solid var(--panel-border);background:#0b0d14;border-radius:8px;width:100%;height:100%;display:block}.hidden{opacity:0;pointer-events:none}.modal-backdrop{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:2500;touch-action:pan-y;overscroll-behavior:contain;background:#090b13d1;justify-content:center;align-items:center;padding:20px;transition:opacity .25s,visibility .25s;display:flex;position:fixed;inset:0;overflow:hidden auto}.modal-backdrop.hidden{opacity:0;visibility:hidden}.modal-card{background:var(--surface-elevated);border:1px solid var(--panel-border-strong);width:min(420px,92vw);max-width:500px;color:var(--muted);border-radius:18px;flex-direction:column;gap:16px;max-height:calc(100dvh - 48px);padding:24px;display:flex;overflow:hidden;box-shadow:0 30px 120px #00000073}.modal-card--gallery{width:min(1024px,96vw);max-width:1100px;height:calc(100dvh - 40px);max-height:none}.modal-card--wide{width:min(900px,96vw);max-width:960px}.modal-card:focus{outline:none}.modal-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.modal-title{color:var(--text);margin:0;font-size:18px}.modal-close{border:1px solid var(--panel-border-strong);background:var(--surface-subtle);width:34px;height:34px;color:var(--muted);cursor:pointer;border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:20px;transition:background .2s,color .2s,border-color .2s;display:flex}.modal-close:hover,.modal-close:focus-visible{background:var(--surface-subtle-active);border-color:var(--panel-border-strong);color:var(--text);outline:none}.modal-body{color:var(--muted-strong);scrollbar-gutter:stable;flex-direction:column;flex:auto;gap:12px;min-height:0;font-size:14px;display:flex;overflow:hidden auto}.modal-card--gallery .modal-body{scrollbar-gutter:stable both-edges;gap:20px;min-height:0;padding-right:4px;overflow:hidden auto}.modal-card--wide .modal-body{flex-direction:row;gap:18px}.modal-body h3{color:var(--text);margin:8px 0 0;font-size:15px}.modal-body p{margin:0;line-height:1.6}.modal-body ul{flex-direction:column;gap:8px;margin:0;padding-left:20px;display:flex}.modal-body li{line-height:1.55}.modal-body strong{color:var(--text)}.modal-body a:not(.gallery-edit-link){color:#8aa8ff;text-decoration:none}.modal-body a:not(.gallery-edit-link):hover,.modal-body a:not(.gallery-edit-link):focus-visible{outline:none;text-decoration:underline}.mask-library{flex-direction:column;gap:12px;display:flex}.modal-card--wide .mask-library{flex-direction:column}.mask-library__tabs{flex-wrap:wrap;gap:8px;margin-bottom:2px;display:flex}.mask-library__tabs .pill{border:1px solid var(--panel-border);background:var(--surface-subtle);color:var(--muted-strong);cursor:pointer;border-radius:999px;padding:8px 14px}.mask-library__tabs .pill.active{background:var(--brand-gradient);color:var(--text-inverse);border-color:#0000}.mask-library__panel{flex-direction:column;gap:12px;display:flex}.mask-library__panel[hidden]{display:none}.mask-library__controls{justify-content:flex-end;align-items:flex-end;gap:8px;display:flex}.mask-library__control{color:var(--muted-strong);flex-direction:column;gap:4px;display:flex}.mask-library__control select{border:1px solid var(--panel-border);background:var(--surface-subtle);color:var(--text-primary);border-radius:10px;padding:6px 10px}.mask-library__hint{color:var(--muted-strong)}.mask-list{flex-direction:column;gap:10px;display:flex}.mask-upload__dropzone{border:1px dashed var(--panel-border-strong);background:var(--surface-subtle);cursor:pointer;border-radius:14px;flex-direction:column;gap:10px;padding:14px;transition:border-color .2s,background .2s;display:flex;position:relative}.mask-upload__dropzone--hidden{display:none!important}.mask-upload__dropzone:hover,.mask-upload__dropzone:focus-visible{border-color:var(--focus-ring);background:var(--surface-subtle-hover);outline:none}.mask-upload__dropzone.dragover{background:var(--surface-subtle-active);border-style:solid}.mask-upload__dropzone.is-busy{opacity:.7;pointer-events:none}.mask-upload__headline{color:var(--text);font-weight:600}.mask-upload__tags{background:0 0;border:0;margin:12px 0 16px;padding:0}.mask-row{border:1px solid var(--panel-border);background:var(--surface-subtle);cursor:pointer;border-radius:14px;grid-template-columns:96px 1fr auto;align-items:start;gap:12px;padding:10px;transition:border-color .2s,background .2s;display:grid}.mask-row--compact{grid-template-columns:96px 1fr}.mask-row:hover{border-color:var(--focus-ring);background:var(--surface-subtle-hover)}.mask-row__thumb{aspect-ratio:1;border:1px solid var(--panel-border);background:var(--surface-overlay);border-radius:12px;justify-content:center;align-items:center;width:96px;display:flex;overflow:hidden}.mask-row__thumb img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%;display:block}.mask-row__meta{flex-direction:column;gap:4px;min-width:0;display:flex}.mask-row__title{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.mask-row__subtitle{color:var(--muted-strong);flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;display:flex}.mask-row__owner{background:var(--surface-subtle);border:1px solid var(--panel-border);color:var(--muted-strong);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:4px 8px;font-size:12px;display:inline-flex}.mask-row__tags{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.mask-row__toggles{flex-direction:column;align-items:flex-start;gap:10px;min-width:170px;display:flex}.mask-toggle{color:var(--muted-strong);flex-direction:column;align-items:flex-start;gap:6px;display:flex}.mask-toggle__label{letter-spacing:.05em;text-transform:uppercase;color:var(--muted);font-size:12px}.mask-toggle__button{border:1px solid var(--panel-border);background:var(--surface-subtle);color:var(--muted-strong);cursor:pointer;border-radius:12px;align-items:center;gap:10px;min-width:140px;padding:8px 12px;transition:background .2s,color .2s,border-color .2s;display:inline-flex}.mask-toggle__button--public{background:var(--brand-gradient);color:var(--text-inverse);border-color:#0000}.mask-toggle__button:disabled{opacity:.6;cursor:not-allowed}.mask-toggle__pill{background:var(--panel-border-strong);border-radius:999px;align-items:center;width:38px;height:20px;padding:2px;transition:background .2s;display:inline-flex;position:relative}.mask-toggle__thumb{background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .2s}.mask-toggle__button--public .mask-toggle__pill{background:#7ab4ff66}.mask-toggle__button--public .mask-toggle__thumb{transform:translate(16px)}.mask-toggle__status{font-weight:700}.mask-row__delete{color:var(--muted-strong);flex-direction:column;align-items:flex-start;gap:8px;display:flex}.mask-row__delete-button{border-color:var(--panel-border-strong);background:var(--surface-subtle);width:100%;color:var(--muted-strong);justify-content:flex-start}.mask-row__delete-button:hover,.mask-row__delete-button:focus-visible{background:var(--surface-subtle-hover);color:var(--text);border-color:var(--focus-ring);outline:none}.mask-row__delete-icon{color:#ff8a9a;background:#ff8a9a24;border-radius:8px;justify-content:center;align-items:center;width:26px;height:26px;font-size:16px;line-height:1;display:inline-flex}.mask-row__delete-text{letter-spacing:.05em;text-transform:uppercase;color:var(--muted);font-size:12px;font-weight:700}.mask-library__status{border:1px solid var(--panel-border);background:var(--surface-subtle);color:var(--muted-strong);text-align:center;border-radius:12px;padding:12px}.mask-library__status--warn{color:#ff8a9a;border-color:#ff8a9a}.mask-library__status--info{border-color:var(--panel-border-strong);color:var(--muted-strong)}.mask-library__status--muted{color:var(--muted-strong)}.mask-login-prompt{flex-direction:column;align-items:flex-start;gap:8px;display:flex}.mask-login-prompt__actions{flex-wrap:wrap;gap:8px;display:flex}.mask-toggle--readonly{color:var(--muted)}.mask-toggle--readonly .mask-toggle__button{pointer-events:none;opacity:.7}.mask-row--readonly{cursor:pointer}@media (max-width:820px){.mask-row{grid-template-columns:80px 1fr;grid-template-areas:"thumb meta""thumb toggles";gap:10px}.mask-row__thumb{grid-area:thumb;width:80px}.mask-row__meta{grid-area:meta}.mask-row__toggles{grid-area:toggles;width:100%;min-width:0}.mask-row__toggles>.mask-toggle,.mask-row__toggles>.mask-row__delete,.mask-toggle__button{width:100%}}.auth-tabs{border:1px solid var(--panel-border);background:#1d2030cc;border-radius:999px;margin-bottom:6px;padding:4px;display:inline-flex}.auth-tab{min-width:110px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:999px;flex:1;padding:6px 14px;font:13px/1.2 system-ui,-apple-system,Segoe UI,Roboto;transition:background .2s,color .2s}.auth-tab.active{background:var(--brand-gradient);color:var(--text-inverse);font-weight:600}.auth-form{flex-direction:column;gap:12px;margin-top:6px;display:flex}.auth-form.hidden{display:none}.auth-form input{border:1px solid var(--panel-border);width:100%;color:var(--text);background:#111422cc;border-radius:10px;padding:10px 12px}.auth-form input:focus-visible{outline:2px solid var(--focus-ring)}.auth-provider-block{flex-direction:column;gap:6px;margin-top:6px;display:flex}.auth-provider{border:1px solid var(--panel-border-strong);background:var(--surface-subtle);width:100%;color:var(--text);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;gap:10px;padding:6px 16px;font:600 13px/1.2 system-ui,-apple-system,Segoe UI,Roboto;text-decoration:none;transition:background .2s,border-color .2s,box-shadow .2s;display:flex}.auth-provider:hover,.auth-provider:focus-visible{background:var(--surface-subtle-hover);border-color:var(--focus-ring);outline:none;box-shadow:0 6px 20px #0e122059}.auth-provider:disabled{opacity:.6;cursor:not-allowed;box-shadow:none}.auth-provider__icon{color:#202124;background:#fff;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:14px;display:inline-flex}.auth-provider__hint{text-align:center;color:var(--muted);margin:0}.auth-divider{letter-spacing:.2em;color:var(--muted);text-transform:uppercase;align-items:center;gap:10px;margin:12px 0;font-size:11px;display:flex}.auth-divider span{white-space:nowrap}.auth-divider:before,.auth-divider:after{content:"";background:var(--panel-border);flex:1;height:1px}.auth-feedback{min-height:18px;font-size:12px}.auth-feedback[data-status=error]{color:#ff8a9a}.auth-feedback[data-status=success]{color:#8df8c6}.auth-hint{color:var(--muted-strong);margin:-4px 0 0;font-size:12px}.profile-form{flex-direction:column;gap:12px;margin-top:4px;display:flex}.profile-form input,.profile-form textarea{border:1px solid var(--panel-border);width:100%;color:var(--text);background:#111422d9;border-radius:10px;padding:10px 12px}.profile-form input:focus-visible,.profile-form textarea:focus-visible{outline:2px solid var(--focus-ring)}.profile-form textarea{resize:vertical;min-height:96px}.profile-form__actions{justify-content:flex-end;margin-top:4px;display:flex}.profile-form__actions .button{flex:none}.profile-form__hint{color:var(--muted-strong);margin:0;font-size:12px}.profile-form__hint code{color:var(--text);background:#20243499;border-radius:6px;padding:2px 6px}.profile-avatar{border:1px solid var(--panel-border);background:#111422b8;border-radius:14px;flex-direction:column;gap:10px;padding:12px;display:flex}.profile-avatar legend{color:var(--text);padding:0 4px;font-size:14px;font-weight:600}.profile-avatar__control{flex-wrap:wrap;align-items:flex-start;gap:14px;display:flex}.profile-avatar__preview{border:1px dashed var(--panel-border);background:var(--surface-subtle);width:72px;height:72px;color:var(--muted);text-align:center;border-radius:16px;justify-content:center;align-items:center;padding:8px;font-size:12px;display:flex;overflow:hidden}.profile-avatar__preview img{border-radius:inherit;-o-object-fit:cover;object-fit:cover;width:100%;height:100%;display:none}.profile-avatar__preview[data-has-image=true]{color:#0000;border-style:solid}.profile-avatar__preview[data-has-image=true] img{display:block}.profile-avatar__preview[data-has-image=true] span{display:none}.profile-avatar__inputs{flex-direction:column;flex:1;gap:10px;min-width:220px;display:flex}.profile-avatar__mode{border:1px solid var(--panel-border);border-radius:10px;display:flex;overflow:hidden}.profile-avatar__mode button{color:var(--muted);cursor:pointer;background:0 0;border:none;flex:1;padding:8px 10px;font-size:13px;font-weight:600;transition:background .15s,color .15s}.profile-avatar__mode button:focus-visible{outline-offset:-4px;outline:2px solid #8aa8ff}.profile-avatar__mode button.is-active{background:var(--surface-subtle);color:var(--text)}.profile-avatar__option{flex-direction:column;gap:6px;display:none}.profile-avatar__option:not([hidden]){display:flex}.profile-avatar__file-label input{margin-top:6px}.profile-avatar__remove{align-self:flex-start}.profile-avatar__status{color:var(--muted);min-height:1em;font-size:12px}.profile-avatar__status[data-tone=error]{color:#ff8f8f}.profile-avatar__status[data-tone=success]{color:#7df8c9}.profile-feedback{min-height:18px;font-size:12px}.profile-feedback[data-status=error]{color:#ff8a9a}.profile-feedback[data-status=success]{color:#8df8c6}#profileSlugPreview[data-valid=false]{color:#ffb674}.saved-graals{gap:18px;min-height:360px;display:flex}.saved-graals__list{border:1px solid var(--panel-border);background:linear-gradient(160deg,#141828f2,#0e101ce6);border-radius:16px;flex-direction:column;flex:0 0 300px;gap:12px;padding:12px;display:flex}.saved-graals__toolbar{justify-content:space-between;align-items:center;gap:8px;display:flex}.saved-graals__items{flex-direction:column;flex:auto;gap:8px;min-height:0;margin:0;padding:0;list-style:none;display:flex;overflow:auto}.saved-graals__item{border:1px solid var(--panel-border);cursor:pointer;background:linear-gradient(135deg,#1e2234e6,#121420d9);border-radius:14px;flex-direction:column;gap:4px;padding:10px 12px;transition:border-color .2s,background .2s,transform .15s;display:flex}.saved-graals__item:hover{border-color:var(--brand-gradient-soft);transform:translateY(-1px)}.saved-graals__item[aria-selected=true],.saved-graals__item.active{border-color:var(--brand-gradient-start);background:linear-gradient(135deg,#283052f2,#181e36eb);box-shadow:0 10px 30px #1216288c}.saved-graals__item-layout{align-items:flex-start;gap:12px;display:flex}.saved-graals__item-thumb{border:1px solid var(--panel-border);background:radial-gradient(circle at 20% 20%,#ffffff0f,#fff0);border-radius:12px;flex:none;width:72px;height:72px;position:relative;overflow:hidden}.saved-graals__item-thumb img{object-fit:cover;opacity:.95;filter:saturate(1.05);width:100%;height:100%;display:block}.saved-graals__item-body{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.saved-graals__item-title{color:var(--text);font-size:14px;font-weight:700}.saved-graals__item-meta{color:var(--muted);font-size:12px}.saved-graals__item-description{color:var(--muted-strong);text-overflow:ellipsis;max-height:48px;font-size:12px;line-height:1.5;overflow:hidden}.saved-graals__empty{border:1px dashed var(--panel-border);text-align:center;color:var(--muted);background:#12142099;border-radius:12px;padding:16px}.saved-graals__editor{flex:auto;display:flex}.saved-graals__form{border:1px solid var(--panel-border);background:linear-gradient(145deg,#14182ad9,#0e101ce6);border-radius:16px;flex-direction:column;flex:1;gap:14px;padding:14px;display:flex;box-shadow:0 10px 28px #0a0c148c}.saved-graals__field{color:var(--muted-strong);flex-direction:column;gap:6px;font-weight:600;display:flex}.saved-graals__input{width:100%;color:var(--text);background:linear-gradient(135deg,#161826f2,#10121ee6);border:1px solid #ffffff0f;border-radius:12px;padding:12px 14px;transition:border-color .18s,box-shadow .18s;box-shadow:inset 0 1px #ffffff0a}.saved-graals__input:focus-visible{border-color:var(--brand-gradient-start);outline:none;box-shadow:0 0 0 3px #6f85ff2e}.saved-graals__input--multiline{resize:vertical;min-height:110px}.saved-graals__actions{flex-wrap:wrap;gap:8px;display:flex}.saved-graals__actions .button{text-align:center;flex:1 0 160px}.saved-graals__meta{color:var(--muted-strong);min-height:36px;font-size:12px}.saved-graals__tags{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.saved-graal-meta__link{margin-top:6px}#modal-about .modal-title{color:var(--text);font-size:20px;font-weight:600;line-height:1.4}#modal-about .modal-body h3{color:var(--text);margin:12px 0 0;font-size:14px;font-weight:600;line-height:1.6}#modal-about .modal-lead{color:var(--muted-strong);font-size:14px}.gallery-tabs{background:var(--surface-subtle);border:1px solid var(--panel-border);border-radius:12px;flex-wrap:nowrap;flex:auto;gap:6px;padding:0;display:flex}.gallery-tabs-header{align-items:flex-start;gap:12px}.gallery-tab{min-width:0;color:var(--muted-strong);letter-spacing:.01em;cursor:pointer;text-align:center;white-space:nowrap;background:0 0;border:0;border-radius:10px;flex:160px;padding:8px 10px;font-weight:700;transition:background .18s,color .18s,box-shadow .18s}.gallery-tab:hover,.gallery-tab:focus-visible{background:var(--surface-subtle-hover);color:var(--text);outline:none}.gallery-tab.active{background:var(--brand-gradient);color:var(--text-inverse);box-shadow:0 10px 26px #0c0e1a59}@media (max-width:540px){.gallery-tabs{gap:4px}.gallery-tab{padding:7px 8px;font-size:13px}}.gallery-tabpanels,.gallery-panel{flex-direction:column;flex:auto;gap:18px;min-height:0;display:flex}.gallery-panel[hidden]{display:none}.gallery-embed{border:1px solid var(--panel-border);background:#111424b3;border-radius:16px;flex-direction:column;flex:auto;gap:10px;min-height:0;padding:14px;display:flex}.gallery-embed iframe{background:var(--surface-subtle);border:0;border-radius:12px;width:100%;height:100%;min-height:480px}.gallery-grid{flex-direction:column;gap:28px;min-height:0;display:flex}.gallery-pair{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:clamp(8px,1.8vw,16px);display:grid}.gallery-copy{color:var(--muted);flex-direction:column;grid-column:1/-1;gap:6px;display:flex}.gallery-copy h3{color:var(--text);margin:0;font-size:18px}.gallery-copy p{color:var(--muted-strong);margin:0;font-size:14px;line-height:1.6}.gallery-figure{border:1px solid var(--panel-border);background:#111424c2;border-radius:14px;flex-direction:column;gap:12px;margin:0;padding:14px;display:flex}.gallery-figure img{border-radius:12px;width:100%;height:auto;display:block}.gallery-figure img.gallery-portrait{aspect-ratio:3/4;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center}.gallery-figure figcaption{color:var(--muted);margin:0;font-size:13px;line-height:1.6}.gallery-label{letter-spacing:.12em;text-transform:uppercase;color:#8b94b8;font-size:11px;font-weight:600}.gallery-actions{margin-top:8px;display:block}.gallery-edit-link{background:var(--brand-gradient);color:#fff;border:1px solid var(--brand-gradient-soft);text-shadow:none;text-align:center;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:9px 20px;font-size:14px;font-weight:600;line-height:1;text-decoration:none;transition:transform .18s,box-shadow .18s,background .18s;display:inline-flex;box-shadow:0 10px 26px #14162466}.tag-picker{border:1px solid var(--panel-border);background:linear-gradient(145deg,#1a1e30b3,#121422d1);border-radius:12px;flex-direction:column;gap:8px;padding:12px;display:flex;box-shadow:0 10px 26px #0a0c1640}.tag-picker__list{border:1px dashed var(--panel-border);background:var(--surface-subtle);border-radius:10px;flex-wrap:wrap;gap:8px;min-height:32px;padding:6px 8px;display:flex}.tag-picker__empty{color:var(--muted);align-self:flex-start;font-size:12px}.tag-picker__input{border:1px solid var(--panel-border-strong);background:var(--surface-overlay);width:100%;color:var(--text);font:inherit;border-radius:10px;min-height:40px;padding:10px 12px;transition:border-color .18s,box-shadow .18s,background .18s}.tag-picker__input:focus-visible{border-color:var(--brand-gradient-start);background:var(--surface-subtle-hover);outline:none;box-shadow:0 0 0 3px #6f7bff2e}.tag-chip{background:var(--surface-subtle-hover);border:1px solid var(--panel-border-strong);color:var(--text);border-radius:999px;align-items:center;gap:6px;padding:7px 12px;font-size:12px;font-weight:600;line-height:1;display:inline-flex;box-shadow:0 4px 14px #06080e40}.tag-chip__remove{color:var(--muted-strong);cursor:pointer;background:0 0;border:0;padding:0 2px;font-size:12px;line-height:1;transition:color .15s,transform .15s}.tag-chip__remove:hover,.tag-chip__remove:focus-visible{color:var(--text);transform:translateY(-1px)}.gallery-edit-link:hover,.gallery-edit-link:focus-visible{color:#fff;box-shadow:var(--shadow-elevated);background:var(--brand-gradient-hover);outline:none;text-decoration:none;transform:translateY(-2px)}@media (max-width:720px){.modal-card--gallery{width:100%;max-width:660px}.modal-card--gallery .modal-body{gap:16px;padding-right:0}.gallery-grid{gap:16px}.gallery-pair{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.gallery-figure{gap:8px;padding:10px}.gallery-embed{background:0 0;border:0;border-radius:0;padding:0}.gallery-embed iframe{border-radius:0}.modal-card--wide{width:100%;max-width:660px}.modal-card--wide .modal-body,.saved-graals{flex-direction:column}.saved-graals__list{flex:none}}.modal-lead{color:var(--muted);font-size:15px;line-height:1.6}.profile-header{background:var(--surface-elevated);border-bottom:1px solid var(--panel-border);flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;display:flex}.profile-header__brand{color:var(--muted);flex:1;align-items:center;gap:8px;min-width:0;font-size:16px;display:flex}.profile-header__home{color:var(--text);font-size:18px;font-weight:600;text-decoration:none}.profile-header__home:hover,.profile-header__home:focus-visible{outline:none;text-decoration:underline}.profile-header__divider{color:var(--muted-strong)}.profile-header__brand span:last-child{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.profile-header__nav{flex-shrink:0;gap:12px;display:flex}.profile-header__link{color:var(--brand-gradient-end);white-space:nowrap;font-weight:600;text-decoration:none}.profile-header__link:hover,.profile-header__link:focus-visible{outline:none;text-decoration:underline}[data-gallery-embed=true] .profile-header{display:none}.profile-main{background:var(--bg);flex-direction:column;flex:1;gap:24px;min-height:0;padding:20px;display:flex;overflow:auto}.profile-summary{max-width:720px}.profile-summary__badge{margin-bottom:12px}.profile-badge{border:1px solid var(--panel-border);background:#121422cc;border-radius:16px;align-items:center;gap:14px;padding:14px;display:flex;box-shadow:0 12px 30px #06080e4d}.profile-badge--menu{box-shadow:none;background:#10121eeb;flex-direction:column;align-items:flex-start;gap:10px}.profile-badge__avatar{background:var(--brand-gradient);width:48px;height:48px;color:var(--text-inverse);text-transform:uppercase;border-radius:14px;justify-content:center;align-items:center;font-size:18px;font-weight:700;display:inline-flex;overflow:hidden}.profile-badge__avatar[data-has-image=true]{background:var(--surface-elevated);color:#0000;border:1px solid var(--panel-border);padding:0}.profile-badge__avatar[data-has-image=true] img{border-radius:inherit;-o-object-fit:cover;object-fit:cover;width:100%;height:100%;display:block}.profile-badge--menu .profile-badge__avatar{border-radius:50%;width:40px;height:40px}.profile-badge__text{flex-direction:column;gap:2px;min-width:0;display:flex}.profile-badge__name{color:var(--text);font-size:16px;font-weight:600}.profile-badge__slug{color:var(--muted-strong);font-size:13px}.profile-badge__slug a{color:inherit;text-decoration:none}.profile-badge__slug a:hover,.profile-badge__slug a:focus-visible{outline:none;text-decoration:underline}.profile-badge__hint{color:var(--muted);font-size:12px}.profile-badge__actions{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.profile-badge__action{border:1px solid var(--panel-border);color:var(--text);cursor:pointer;background:0 0;border-radius:999px;padding:6px 14px;font-size:13px;line-height:1.2;text-decoration:none}.profile-badge__action:hover,.profile-badge__action:focus-visible{background:#ffffff0f;outline:none}.profile-title{color:var(--text);margin:0 0 6px;font-size:28px}.profile-bio{color:var(--muted);margin:0 0 12px;font-size:15px}.profile-status{color:var(--muted-strong);margin:0;font-size:13px}.profile-gallery__grid{grid-template-columns:repeat(auto-fit,minmax(220px,min(24vw,320px)));justify-content:center;gap:18px;display:grid}.profile-card{background:var(--surface-elevated);border:1px solid var(--panel-border);border-radius:16px;flex-direction:column;gap:10px;width:100%;max-width:320px;padding:12px;display:flex}.profile-card__image{aspect-ratio:1;-o-object-fit:cover;object-fit:cover;border:1px solid var(--panel-border-strong);background:#0f1220;border-radius:12px;width:100%}.profile-card__title{color:var(--text);margin:0;font-size:16px}.profile-card__meta{color:var(--muted);margin:0;font-size:12px}.profile-card__actions{flex-wrap:wrap;gap:10px;display:flex}.profile-card__actions a{text-align:center;flex:1;justify-content:center;text-decoration:none;display:inline-flex}.profile-empty{border:1px dashed var(--panel-border);text-align:center;color:var(--muted);border-radius:16px;padding:24px;font-size:14px}@media (max-width:720px){.profile-main{padding:12px}.profile-header{flex-wrap:nowrap;gap:10px;padding:12px}.profile-header__nav{justify-content:flex-end;width:auto}.profile-gallery__grid{grid-template-columns:minmax(0,1fr);justify-content:stretch;gap:12px}.profile-card{max-width:none}}.profile-viewer{flex-direction:column;width:100%;max-width:min(1040px,96vw);max-height:min(96vh,940px);display:flex}.profile-viewer__body{grid-template-columns:minmax(0,1fr) minmax(280px,.9fr);align-items:flex-start;gap:24px;display:grid}.profile-viewer__media{flex-direction:column;flex:1;gap:12px;min-width:0;display:flex}.profile-viewer__media img{border:1px solid var(--panel-border-strong);-o-object-fit:contain;object-fit:contain;background:#0f1220;border-radius:16px;width:100%;height:auto;max-height:min(72vh,720px)}.profile-viewer__placeholder{color:var(--muted);border:1px dashed var(--panel-border);text-align:center;border-radius:12px;margin:0;padding:32px 16px;font-size:14px}.profile-viewer__details{flex-direction:column;flex:1;gap:12px;min-width:0;display:flex}.profile-viewer__title{color:var(--text);margin:0;font-size:20px}.profile-viewer__meta{color:var(--muted-strong);margin:0;font-size:13px}.profile-viewer__description{color:var(--muted);margin:0;font-size:14px;line-height:1.5}.profile-viewer__share{flex-direction:column;gap:6px;display:flex}.profile-viewer__share-label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted-strong);font-size:12px}.profile-viewer__share-row{align-items:center;gap:8px;display:flex}.profile-viewer__share-input{border:1px solid var(--panel-border);background:var(--surface-subtle);color:var(--text);border-radius:10px;flex:1;padding:8px 10px;font-size:13px}.profile-viewer__share-input:focus-visible{outline:2px solid var(--brand-gradient-start)}.profile-viewer__actions{flex-wrap:wrap;justify-content:flex-start;gap:10px;display:flex}.profile-viewer__actions .gallery-edit-link{flex:none}.profile-viewer__remix{width:100%;max-width:320px}@media (max-width:900px){.profile-viewer{max-height:none}.profile-viewer__body{grid-template-columns:minmax(0,1fr)}.profile-viewer__media,.profile-viewer__details{flex:unset}.profile-viewer__media img{max-height:min(55vh,520px)}.profile-viewer__actions{justify-content:center}.profile-viewer__remix{max-width:none}}.modal-feature-list{flex-direction:column;gap:8px;margin:12px 0 0;padding-left:20px;display:flex}.modal-feature-list li{line-height:1.6}.modal-feature-list strong{color:var(--text)}.install-cta{flex-direction:column;align-items:flex-start;gap:10px;margin-top:18px;display:flex}.install-cta p{margin:0}.install-button{color:#101223;cursor:pointer;background:linear-gradient(135deg,#feda75,#fa7e1e,#d62976,#962fbf,#4f5bd5);border:none;border-radius:999px;align-items:center;gap:8px;padding:10px 26px;font-size:15px;font-weight:700;transition:transform .18s,box-shadow .18s,opacity .18s;display:inline-flex;box-shadow:0 12px 30px #d6297673}.install-button:hover,.install-button:focus-visible{outline:none;transform:translateY(-2px);box-shadow:0 18px 40px #962fbf80}.install-button[disabled]{cursor:not-allowed;opacity:.65;transform:none;box-shadow:0 8px 20px #1416244d}.install-cta.is-installed .install-button{color:#0f1326;background:linear-gradient(135deg,#7cffa7,#52e0c5,#45c6ff,#6f8bff,#9e6bff);box-shadow:0 14px 34px #6f8bff73}.install-cta.is-installed .install-button[disabled]{opacity:1;cursor:default}.install-status{align-items:flex-start;gap:8px;display:flex}.install-cta.is-installed .install-status:before{content:"✔";color:#0f1326;background:#7cffa7;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;margin-top:2px;font-size:12px;line-height:1;display:inline-flex;box-shadow:0 4px 10px #7cffa759}.install-hint{color:var(--muted-strong)}.welcome-backdrop{z-index:2000;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);touch-action:none;overscroll-behavior:contain;background:#090b13d1;justify-content:center;align-items:center;width:100vw;height:100dvh;padding:clamp(10px,2.6vh,18px);transition:opacity .28s,visibility .28s;display:flex;position:fixed;inset:0;overflow:hidden}.welcome-backdrop.hidden{visibility:hidden}.welcome-card{background:var(--surface-elevated);text-align:center;border:1px solid #262a40;border-radius:18px;flex-direction:column;align-items:stretch;gap:clamp(12px,1.15vw,18px);width:min(820px,92vw);max-width:880px;max-height:min(720px,100dvh - clamp(12px,3.6vh,32px));padding:clamp(16px,2.1vw,28px);display:flex;position:relative;overflow:hidden;box-shadow:0 30px 120px #00000073}.welcome-brand{letter-spacing:.03em;background:linear-gradient(135deg,#feda75,#fa7e1e,#d62976,#962fbf,#4f5bd5);color:#0000;text-transform:capitalize;-webkit-background-clip:text;font-size:32px;font-weight:700}.welcome-tagline{color:#c8cee0;margin:0;font-size:15px;line-height:1.5}.welcome-steps{flex:1 0 auto;grid-template-columns:repeat(2,minmax(0,1fr));place-content:start center;gap:clamp(10px,1.1vw,16px);width:100%;min-height:0;margin:clamp(4px,1vh,12px) 0 0;padding:0;list-style:none;display:grid}@media (min-width:900px){.welcome-steps{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width:460px){.welcome-card{width:min(360px,94vw)}}.welcome-steps li{color:#e6e9f5;text-align:center;background:#20243ab8;border-radius:14px;flex-direction:column;align-items:center;gap:clamp(7px,.85vw,10px);height:auto;min-height:0;padding:clamp(14px,1.5vw,18px) clamp(9px,1.2vw,13px) clamp(9px,1.2vw,13px);font-weight:500;display:flex;position:relative}.welcome-step-image{aspect-ratio:1;z-index:1;background-position:50%;background-repeat:no-repeat;background-size:cover;border:2px solid #50587e66;border-radius:12px;flex:none;width:min(100%,clamp(72px,min(22vw,24vh),144px));min-height:0;margin:0 auto;transition:transform .2s,box-shadow .2s;box-shadow:0 10px 30px #0006}.welcome-step-image:hover{transform:scale(1.02);box-shadow:0 18px 36px #0000007a}.welcome-step-label{text-align:center;flex-shrink:0;justify-content:center;align-items:center;width:100%;min-height:clamp(26px,4.5vh,38px);padding:4px 8px 6px;font-size:14px;line-height:1.32;display:flex}.welcome-step-number{color:#0f1120;z-index:2;background:linear-gradient(135deg,#feda75,#fa7e1e,#d62976,#962fbf,#4f5bd5);border-radius:50%;justify-content:center;align-items:center;width:clamp(26px,3.2vw,32px);height:clamp(26px,3.2vw,32px);font-size:clamp(12px,1.6vw,15px);font-weight:700;display:inline-flex;position:absolute;top:clamp(10px,1.8vw,16px);left:clamp(10px,1.8vw,16px);box-shadow:0 6px 16px #00000059}.welcome-step-image.step-upload{background-image:url(/img/madagascar_wedding.webp)}.welcome-step-image.step-customize{background-image:url(/img/graal_ui1.webp)}.welcome-step-image.step-preview{background-image:url(/img/graal_3d.webp)}.welcome-step-image.step-order{background-image:url(/img/DSC08817.webp)}.welcome-actions{flex-wrap:wrap;justify-content:center;place-self:center;gap:12px;margin-top:auto;display:flex}.welcome-action{cursor:pointer;border:none;border-radius:999px;flex:none;padding:10px 26px;font-size:15px;font-weight:700;transition:transform .18s,box-shadow .18s,background .18s,color .18s,border-color .18s}.welcome-start{color:#101223;background:linear-gradient(135deg,#feda75,#fa7e1e,#d62976,#962fbf,#4f5bd5);border:none;box-shadow:0 12px 30px #d6297673}.welcome-start:hover,.welcome-start:focus-visible{outline:none;transform:translateY(-2px);box-shadow:0 18px 40px #962fbf80}.welcome-secondary{color:#f5f6ff;box-shadow:none;background:#f5f6ff1f;border:1px solid #f5f6ff38}.welcome-secondary:hover,.welcome-secondary:focus-visible{background:#f5f6ff33;border-color:#f5f6ff59;outline:none;transform:translateY(-2px)}.welcome-close{color:#f5f6ff;cursor:pointer;background:#20243ae6;border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:22px;font-weight:700;line-height:1;display:flex;position:absolute;top:12px;right:12px}@supports (padding:max(0px)){.welcome-card{padding-bottom:max(20px, env(safe-area-inset-bottom))}}.brand-heading{background:linear-gradient(135deg,#feda75,#fa7e1e,#d62976,#962fbf,#4f5bd5);color:#0000;-webkit-background-clip:text;margin:.2rem 0;font-size:22px;font-weight:700}.small{color:var(--muted);font-size:12px}#toast{color:#e6eeff;opacity:0;z-index:999;pointer-events:none;background:#1e2337;border:1px solid #2a3150;border-radius:10px;max-width:min(360px,100vw - 24px);padding:8px 10px;transition:opacity .2s,transform .2s;position:fixed;top:12px;right:12px;transform:translateY(-8px);box-shadow:0 6px 24px #00000059}#toast.show{opacity:1;transform:translateY(0)}.vessel-editor{background:#101321;border:1px solid #1c2233;border-radius:12px;flex-direction:column;gap:12px;margin-top:6px;padding:12px;display:flex}.vessel-toolbar{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.vessel-field{flex-direction:column;gap:4px;min-width:140px;display:flex}.vessel-field span{color:var(--muted);font-size:12px}.vessel-field select,.vessel-field input[type=range]{width:100%}.vessel-height-value{font-variant-numeric:tabular-nums;color:var(--text)}.vessel-count-control{background:#0c0f1a;border:1px solid #1a1f30;border-radius:8px;align-items:center;gap:6px;padding:6px 8px;display:flex}.vessel-count-control .count-label{text-align:center;font-variant-numeric:tabular-nums;min-width:58px;color:var(--muted)}.button.ghost{color:var(--text);background:#181c2a;border-color:#24293a}.button.ghost:hover{background:#1f2232}.vessel-canvas{border:1px solid var(--panel-border);background:#0b0d14;border-radius:12px;position:relative;overflow:hidden}.vessel-canvas canvas{width:100%;height:300px;display:block}.vessel-canvas .profile-svg{touch-action:none;width:100%;height:300px;display:block}.profile-svg .profile-axis{stroke:var(--panel-border-strong);stroke-width:1px;stroke-dasharray:3 4}.profile-svg .profile-fill{fill:#ff5ca81f;stroke:#ff5ca8;stroke-width:1.5px;stroke-linejoin:round}.profile-svg .profile-handle{fill:#151826;stroke:#ff5ca8;stroke-width:1.5px;cursor:grab;transition:fill .12s,r .12s}.profile-svg .profile-handle:hover,.profile-svg .profile-handle.is-active{fill:#ff5ca8}.profile-svg .profile-handle:focus-visible{fill:#7db4ff;stroke:#7db4ff;outline:none}.profile-hint{color:#e5e9f894;pointer-events:none;font-size:12px;position:absolute;bottom:12px;left:12px}.pill{cursor:pointer;border:1px solid #313551;border-radius:999px;padding:4px 8px;display:inline-block}.pill.active{background:#394060}.bar{flex-wrap:wrap;gap:8px;display:flex}.grad-controls{flex-direction:column;gap:8px;margin-top:8px;display:flex}.grad-control label{color:var(--muted);justify-content:space-between;align-items:center;margin-bottom:4px;font-size:12px;display:flex}.grad-controls input[type=range]{width:100%}.grad-stops{flex-direction:column;gap:10px;margin-top:8px;display:flex}.grad-add-stop{margin-top:12px}.grad-stop-row{background:#151826;border:1px solid #232842;border-radius:10px;grid-template-columns:auto minmax(0,1fr) auto;align-items:stretch;gap:12px;padding:10px;display:grid}.grad-stop-row input[type=color]{background:0 0;border:none;width:44px;height:40px;padding:0}.grad-stop-row input[type=range]{width:100%}.grad-stop-meta{color:var(--muted);text-align:right;width:100%;font-size:12px;display:block}.grad-stop-remove{color:#f3f6ff;cursor:pointer;background:#2a2f44;border:1px solid #313551;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.grad-stop-remove[disabled]{opacity:.35;cursor:default}.grad-stop-swatchwrap{flex-direction:column;align-items:flex-start;gap:8px;display:flex}.grad-stop-panel{flex-direction:column;gap:8px;width:100%;display:none}.grad-stop-panel.active{display:flex}.grad-stop-panel-rgb,.grad-stop-panel-glass{align-items:flex-start}.grad-stop-ref{-o-object-fit:cover;object-fit:cover;background:#0b0d14;border:1px solid #232842;border-radius:10px;width:72px;height:72px}.grad-stop-ref.placeholder{color:var(--muted);text-align:center;justify-content:center;align-items:center;padding:6px;font-size:11px;display:flex}.grad-stop-color-chip{background:var(--chip-color,#fff);border:1px solid #232842;border-radius:8px;width:72px;height:24px}.grad-stop-hex{color:var(--muted);font-size:12px}.grad-stop-info{flex-direction:column;gap:8px;font-size:12px;display:flex}.grad-stop-mode-toolbar{flex-wrap:nowrap;align-items:center;gap:6px;min-width:0;display:flex}.grad-stop-mode-tabs{background:var(--surface-subtle);border:1px solid var(--panel-border);border-radius:999px;flex:none;gap:4px;min-width:0;padding:4px;display:inline-flex}.grad-stop-mode-btn{color:#a9b2d0;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:999px;padding:4px 10px;font-size:12px;transition:background .2s,color .2s}.grad-stop-mode-btn.active{background:var(--surface-subtle-active);color:var(--text)}.grad-stop-mode-extra{display:inline}.grad-stop-mode-panels{flex-direction:column;gap:10px;width:100%;display:flex}.grad-stop-mode-panel{flex-direction:column;gap:8px;display:none}.grad-stop-mode-panel.active{display:flex}.grad-stop-material-name{color:var(--text);justify-content:space-between;align-items:center;gap:10px;font-size:13px;font-weight:600;display:flex}.grad-stop-material-subtitle{color:#aeb6d4;font-size:12px}.grad-stop-library{color:#f3f7ff;cursor:pointer;background:#1f2440;border:1px solid #2c3150;border-radius:999px;justify-content:center;align-items:center;width:32px;min-width:0;height:32px;padding:4px;font-size:16px;line-height:1;transition:background .2s,border-color .2s,color .2s;display:inline-flex}.grad-stop-library>span{pointer-events:none}.grad-stop-mode-toolbar .grad-stop-library{margin-left:auto}.grad-stop-library:disabled{opacity:.4;cursor:default}.material-badges{flex-wrap:wrap;gap:6px;display:flex}.material-badge{text-transform:capitalize;color:#d9def4;letter-spacing:.02em;background:#ffffff0f;border:1px solid #ffffff2e;border-radius:999px;padding:2px 8px;font-size:11px}.material-badge-transparent{color:#9be5ff;background:#1ed6ff1f;border-color:#1ed6ff59}.material-badge-translucent{color:#c8ddff;background:#8ec4ff1f;border-color:#8ec4ff59}.material-badge-opal{color:#f6e4a8;background:#faeaa21f;border-color:#faeaa259}.material-badge-opaque{color:#ffd8b8;background:#ffc18f24;border-color:#ffc18f61}.material-badge-metallic{color:#d9d2ff;background:#c4c0ff24;border-color:#c4c0ff66}.material-badge-custom{color:#b8c0de;background:#78809633;border-color:#78809666}.grad-stop-attributes{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px;display:grid}.grad-stop-attr{background:#121420a6;border:1px solid #1d2136;border-radius:8px;flex-direction:column;gap:2px;padding:6px 10px;display:flex}.grad-stop-attr .attr-label{color:#8f97b7;text-transform:uppercase;letter-spacing:.04em;font-size:11px}.grad-stop-attr .attr-value{color:#d9def4;word-break:break-word;font-size:12px}.material-meta{background:#0d0f188c;border:1px solid #212740b3;border-radius:12px;margin-top:6px;transition:border-color .2s,background .2s,box-shadow .2s;position:relative}.material-meta[open]{background:#11131ec7;border-color:#464f7899;box-shadow:0 14px 40px #07090f66}.material-meta summary{cursor:pointer;text-align:left;flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:4px;width:100%;margin:0;padding:8px 12px 7px;list-style:none;display:flex}.material-meta summary::-webkit-details-marker{display:none}.material-meta summary::marker{content:""}.material-meta summary:after{content:"";display:none}.material-meta summary>*{width:100%}.material-meta summary:focus-visible{outline-offset:2px;border-radius:10px;outline:2px solid #6877d2cc}.material-meta[open] summary{background:#141724c7;border-bottom:1px solid #ffffff0d;border-radius:12px 12px 0 0}.material-meta:not([open]) summary{background:0 0}.material-meta-summary-heading{align-items:flex-start;gap:10px;width:100%;display:flex}.material-meta-title{color:#e4e9ff;text-align:left;flex:1;font-size:13px;font-weight:600;line-height:1.3}.material-meta-subtext{color:#9ba3c1;text-align:left;font-size:11px;line-height:1.3}.material-meta[open] .material-meta-subtext{color:#b6bdd9}.material-meta-summary-badges{flex-wrap:wrap;justify-content:flex-start;gap:6px;margin-top:2px;display:flex}.material-meta summary .material-badge{padding:2px 6px;font-size:10px}@media (max-width:540px){.grad-stop-mode-extra{display:none}.grad-stop-mode-tabs{flex:none}}.material-meta-summary-icon{color:#9da5c6;background:#1b1f32eb;border:1px solid #2e344ee6;border-radius:999px;justify-content:center;align-items:center;width:22px;height:22px;margin-left:auto;font-size:11px;transition:transform .2s,background .2s,color .2s;display:inline-flex;box-shadow:0 2px 6px #06080f66}.material-meta:not([open]) summary:hover .material-meta-summary-icon,.material-meta:not([open]) summary:focus-visible .material-meta-summary-icon{color:#c3c9e5;background:#292d46eb}.material-meta[open] .material-meta-summary-icon{color:#cbd2ec;background:#1c1f30cc;border-color:#3a405ce6;transform:rotate(0)}.material-meta:not([open]) .material-meta-summary-icon{transform:rotate(180deg)}.material-meta-body{flex-direction:column;gap:10px;padding:12px 14px 14px;display:flex}.grad-stop-empty{color:#8b94b8;background:#121420a6;border:1px dashed #2c3150;border-radius:8px;padding:8px 10px;font-size:12px}.grad-stop-offset-wrap{flex-direction:column;align-items:stretch;gap:6px;display:flex}.grad-stop-offset-wrap input[type=range]{width:100%}.material-picker-backdrop{z-index:1500;box-sizing:border-box;touch-action:none;overscroll-behavior:none;background:#090b13d1;justify-content:center;align-items:center;padding:clamp(8px,2.5vh,18px);display:none;position:fixed;inset:0;overflow:hidden}.material-picker-backdrop.active{display:flex}.material-picker-shell{flex-direction:column;flex:auto;justify-content:center;align-items:stretch;width:min(100%,920px);max-width:94vw;height:100%;min-height:0;max-height:calc(100dvh - 2*clamp(8px,2.5vh,18px));display:flex;position:relative;overflow:visible}.material-picker-close{color:#f5f8ff;cursor:pointer;z-index:240;background:#1b2034;border:1px solid #262a40;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;display:flex;position:absolute;top:-12px;right:-12px;box-shadow:0 12px 40px #00000059}.material-picker{background:var(--surface-elevated);border:1px solid #262a40;border-radius:18px;grid-template-columns:minmax(320px,360px) minmax(0,1fr);width:100%;max-width:100%;height:100%;min-height:0;max-height:100%;display:grid;overflow:hidden;box-shadow:0 30px 120px #00000073}.material-picker-list{border-right:1px solid var(--panel-border);background:#0e101d;flex-direction:column;padding-bottom:16px;display:flex;overflow:auto}.material-picker-toolbar{border-bottom:1px solid var(--panel-border);z-index:5;background:#0e101d;flex-direction:column;gap:12px;padding:12px 16px;display:flex;position:sticky;top:0}.material-picker-toolbar-row{align-items:center;gap:10px;display:flex}.material-picker-toolbar-top{flex-direction:column;align-items:stretch}.material-picker-toolbar-top .material-picker-search{flex:1;width:100%;min-width:0}.material-picker-toolbar-top .material-picker-series-select{flex:none;width:100%;min-width:140px}.material-picker-filter-row{margin:0 -4px}.material-picker-search{width:100%;display:flex}.material-picker-search input{color:#e4e8ff;width:100%;font:inherit;background:#14182a;border:1px solid #242a41;border-radius:10px;padding:8px 12px}.material-picker-search input::placeholder{color:#6f789b}.material-picker-filter-group{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;gap:6px;padding:0 4px 4px;display:flex;overflow-x:auto}.material-picker-filter-group::-webkit-scrollbar{height:4px}.material-picker-filter-group::-webkit-scrollbar-thumb{background:#5a669666;border-radius:999px}.material-picker-filter-group{scrollbar-width:thin;scrollbar-color:#5a669666 transparent}.material-picker-filter{color:#8f97b7;cursor:pointer;white-space:nowrap;background:#151a2b;border:1px solid #252c43;border-radius:999px;flex:none;padding:3px 10px;font-size:11px;transition:background .18s,border-color .18s,color .18s}.material-picker-filter.active{background:var(--surface-subtle-active);color:var(--text);border-color:#3b4470}.material-picker-series-select{color:#8f97b7;flex-direction:column;gap:2px;font-size:11px;display:flex}.material-picker-series-select span{letter-spacing:.06em;text-transform:uppercase;font-weight:600;display:block}.material-picker-series-select select{color:#e4e8ff;font:inherit;appearance:none;background:#151a2b;border:1px solid #252c43;border-radius:8px;min-height:34px;padding:6px 30px 6px 10px}.material-picker-groups{flex-direction:column;gap:18px;padding:16px;display:flex}.material-picker-group-title{letter-spacing:.08em;text-transform:uppercase;color:#6e7594;align-items:center;gap:6px;font-size:12px;display:flex}.material-picker-group-count{color:#a5accb;background:#1b2134;border-radius:999px;padding:2px 8px;font-size:11px}.material-picker-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;margin-top:8px;display:grid}.material-picker-item{appearance:none;background:var(--surface-subtle);color:#d6dcf2;text-align:left;cursor:pointer;font:inherit;border:1px solid #20263c;border-radius:12px;align-items:center;gap:12px;padding:12px;transition:transform .18s,border-color .18s,background .18s;display:flex}.material-picker-item:hover{border-color:#2f3752;transform:translateY(-1px)}.material-picker-item.active{background:#4f6bff2e;border-color:#4f6bff}.material-picker-item-swatch{background:var(--swatch-color,#fff);border:1px solid #252c3e;border-radius:10px;justify-content:center;align-items:center;width:42px;height:42px;display:flex;overflow:hidden}.material-picker-item-swatch img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%}.material-picker-item-text{flex-direction:column;gap:2px;display:flex}.material-picker-name{color:var(--text);font-size:14px;font-weight:600}.material-picker-item .material-picker-meta{color:#8b93b2;font-size:12px}.material-picker-empty{text-align:center;color:#8b94b8;padding:24px}.material-picker-detail{flex-direction:column;gap:16px;min-height:0;padding:18px;display:flex;overflow:auto}.material-picker-header{flex-wrap:wrap;align-items:flex-start;gap:18px;display:flex}.material-picker-preview{background:#090b12;border:1px solid #262a40;border-radius:16px;justify-content:center;align-items:center;width:180px;height:180px;display:flex;overflow:hidden}.material-picker-preview img{-o-object-fit:cover;object-fit:cover;border-radius:inherit;width:100%;height:100%}.material-picker-preview.placeholder{color:#8188a8;text-align:center;padding:12px;font-size:12px}.material-picker-thumbs{flex-direction:column;align-self:flex-start;gap:8px;display:flex}.material-thumb{cursor:pointer;background:#151a2b;border:1px solid #262d45;border-radius:10px;justify-content:center;align-items:center;width:60px;height:60px;padding:2px;transition:border-color .18s,transform .18s,box-shadow .18s;display:flex}.material-thumb img{-o-object-fit:cover;object-fit:cover;border-radius:8px;width:100%;height:100%}.material-thumb.active{border-color:#7f8cff;transform:translateY(-1px);box-shadow:0 6px 16px #4f6bff59}.material-picker-title{color:var(--text);margin:0;font-size:20px;font-weight:600}.material-picker-meta-line{color:#9ea6c7;font-size:13px}.material-picker-summary{flex-direction:column;gap:12px;min-width:0;display:flex}.material-picker-info-grid{color:#aeb6d4;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;font-size:12px;display:grid}.info-cell{background:#121420a6;border:1px solid #1d2136;border-radius:10px;flex-direction:column;gap:2px;padding:8px 10px;display:flex}.info-cell.info-wide{grid-column:1/-1}.info-label{color:#8f97b7;text-transform:uppercase;letter-spacing:.04em;font-size:11px}.info-value{color:#d9def4;display:block}.info-value ul{margin:4px 0 0;padding-left:18px}.info-value em{color:#8990af}.material-picker-footer{color:#aeb6d4;flex-direction:column;gap:8px;font-size:12px;display:flex}.material-picker-footer a{color:#9bc9ff}.material-picker-actions{z-index:20;background:linear-gradient(#11142500 0%,#111425f0 55%);border-top:1px solid #2c314c8c;justify-content:flex-end;align-items:stretch;gap:10px;margin-top:auto;padding-top:10px;display:flex;position:sticky;bottom:0;left:0;right:0}#materialPickerApply{color:var(--text);letter-spacing:.01em;background:linear-gradient(135deg,#586bff,#9b52ff);border:1px solid #8c9cff99;border-radius:14px;flex:1;min-width:0;padding:12px 18px;font-size:15px;font-weight:600;box-shadow:0 18px 36px #5b6eff52}#materialPickerApply:hover{background:linear-gradient(135deg,#6a7aff,#a864ff)}#materialPickerApply:focus-visible{outline-offset:3px;outline:2px solid #ffffff8c}.solid-controls{flex-direction:column;gap:10px;margin-top:8px;display:flex}.solid-picker{flex-direction:column;gap:8px;display:flex}.solid-label{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:12px}.solid-controls .grad-stop-row{grid-template-columns:auto minmax(0,1fr);gap:12px}.solid-controls .grad-stop-remove{display:none}#loadingBadge{color:#cfe1ff;opacity:0;z-index:999;pointer-events:none;background:#0d1224;border:1px solid #273059;border-radius:8px;padding:6px 8px;transition:opacity .2s,transform .2s;position:fixed;top:12px;left:12px;transform:translateY(-8px);box-shadow:0 6px 24px #00000059}.cselect{display:block;position:relative}.cselect.is-open .cselect-menu{display:block}.cselect-trigger{background:var(--surface-subtle);color:#eef1f6;border:1px solid var(--panel-border);cursor:pointer;border-radius:8px;justify-content:space-between;align-items:center;width:100%;padding:8px 10px;display:flex}.cselect-trigger:after{content:"▾";opacity:.8}.cselect-menu{border:1px solid var(--panel-border);z-index:10000;background:#0f1220;border-radius:8px;max-height:60vh;display:none;position:fixed;overflow:auto;box-shadow:0 8px 24px #0006}.cselect-option{cursor:pointer;padding:8px 10px}.cselect-option:hover,.cselect-option[aria-selected=true]{background:var(--surface-subtle-active)}.visually-hidden{clip:rect(1px,1px,1px,1px);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}@media (max-width:720px){.tabbar{gap:6px;padding:8px}.tabbar-tabs{gap:6px}.tab-btn{flex:1 1 0;min-width:0;padding:8px 6px;font-size:13px}.menu-trigger{width:38px;height:34px}.app{gap:12px;padding:12px 10px 18px}aside{padding:14px 12px}.section-body{padding:10px 12px 14px}.bar{flex-wrap:wrap;gap:6px}.bar .pill{text-align:center;flex:calc(50% - 4px)}select,input[type=range],input[type=file]{width:100%}.vessel-toolbar{flex-direction:column;align-items:stretch;gap:10px}.vessel-field{width:100%;min-width:0}.vessel-count-control{justify-content:space-between;width:100%}.vessel-count-control .button{flex:none;width:auto}.mask-comp{flex-basis:auto}.share-popup{width:min(92vw,100% - 12px);right:0}.welcome-card{gap:14px;width:min(420px,96vw);padding:16px 14px}}@media (max-width:560px){.welcome-card{gap:12px;max-height:calc(100dvh - clamp(10px,3.4vh,28px));padding:14px 14px 18px}.welcome-brand{font-size:28px}.welcome-tagline{font-size:14px}.welcome-steps{gap:10px}.welcome-steps li{gap:7px;padding:10px 10px 11px}.welcome-step-image{width:min(100%,clamp(68px,min(24vw,24vh),116px))}.welcome-step-label{min-height:clamp(24px,4vh,34px);font-size:13px}.welcome-actions{gap:10px}.welcome-action{padding:8px 20px;font-size:14px}}@media (max-width:420px){.welcome-card{gap:10px;max-height:calc(100dvh - clamp(8px,3.2vh,24px));padding:12px 12px 16px}.welcome-brand{font-size:26px}.welcome-tagline{font-size:13px}.welcome-steps{gap:9px}.welcome-steps li{gap:6px;padding:9px 9px 10px}.welcome-step-image{width:min(100%,clamp(62px,min(24vw,22vh),104px))}.welcome-step-label{min-height:clamp(22px,3.6vh,30px);font-size:12.5px}.welcome-actions{gap:9px}.welcome-action{padding:7px 18px;font-size:13.5px}}@media (max-width:360px){.welcome-card{gap:9px;padding:11px 11px 14px}.welcome-brand{font-size:24px}.welcome-tagline{font-size:12.5px}.welcome-steps{gap:8px}.welcome-steps li{gap:5px;padding:8px 8px 9px}.welcome-step-image{width:min(100%,clamp(56px,min(24vw,20vh),96px))}.welcome-step-label{min-height:clamp(20px,3.4vh,28px);font-size:12px}.welcome-actions{gap:8px}.welcome-action{padding:6px 16px;font-size:13px}}@media (max-height:640px){.welcome-card{gap:12px;padding:14px 14px 16px}.welcome-brand{font-size:28px}.welcome-tagline{font-size:14px}.welcome-steps{gap:10px}.welcome-step-image{width:min(100%,clamp(84px,min(24vw,26vh),116px))}.welcome-step-label{font-size:13px}.welcome-action{padding:9px 22px;font-size:14px}}@media (max-height:520px){.welcome-card{gap:10px;padding:12px 12px 14px}.welcome-brand{font-size:26px}.welcome-tagline{font-size:13px}.welcome-steps{gap:9px}.welcome-step-image{width:min(100%,clamp(72px,min(22vw,24vh),100px))}.welcome-step-label{font-size:12.5px}.welcome-action{padding:8px 20px;font-size:13px}}@media (max-height:460px){.welcome-card{gap:8px;padding:10px 11px 12px}.welcome-brand{font-size:24px}.welcome-tagline{font-size:12.5px}.welcome-steps{gap:8px}.welcome-steps li{gap:6px;padding:9px 9px 8px}.welcome-step-image{width:min(100%,clamp(64px,min(22vw,24vh),92px))}.welcome-step-label{padding:2px 6px 4px;font-size:12px}.welcome-action{padding:7px 18px;font-size:12.5px}}@media (max-height:400px){.welcome-card{gap:6px;padding:8px 10px 10px}.welcome-brand{font-size:22px}.welcome-tagline{font-size:12px}.welcome-steps{gap:6px}.welcome-steps li{gap:5px;padding:8px 8px 7px}.welcome-step-image{width:min(100%,clamp(58px,min(22vw,22vh),84px))}.welcome-step-label{padding:2px 5px 4px;font-size:11.5px}.welcome-action{padding:6px 16px;font-size:12px}}@media (max-height:340px){.welcome-card{gap:5px;padding:7px 9px 9px}.welcome-brand{font-size:20px}.welcome-tagline{font-size:11.5px}.welcome-steps{gap:5px}.welcome-steps li{gap:4px;padding:7px 7px 6px}.welcome-step-image{width:min(100%,clamp(52px,min(20vw,20vh),76px))}.welcome-step-label{font-size:10.8px}.welcome-action{padding:6px 14px;font-size:11.5px}}@media (max-height:320px){.welcome-card{padding:6px 8px 8px}.welcome-step-image{width:min(100%,clamp(48px,min(18vw,18vh),70px))}.welcome-step-label{font-size:10.5px}.welcome-action{padding:5px 12px;font-size:11px}}@media (min-width:600px){.two,.mask-split{grid-template-columns:1fr 1fr}.mask-split.pattern-only{grid-template-columns:1fr}}@media (max-width:600px){.material-picker-backdrop{padding:0}.material-picker-shell{width:100vw;max-width:100vw;max-height:100dvh}.material-picker{border-radius:0}.material-picker-actions{padding:12px 16px 18px}}@media (max-width:480px){.material-picker-backdrop{justify-content:flex-start;align-items:stretch}.material-picker-shell{justify-content:flex-start;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh}.material-picker{box-shadow:none;border-radius:0;flex:auto}.material-picker-toolbar{padding:12px 16px 12px 14px}.material-picker-actions{padding:16px 18px 20px}#materialPickerApply{width:100%}}@supports (height:100svh){@media (max-width:480px){.material-picker-shell{height:100svh;max-height:100svh}}}@media (max-width:840px){.material-picker-backdrop{align-items:stretch;padding:0}.material-picker-shell{max-width:none;height:100%;max-height:none}.material-picker{border-radius:0;flex-direction:column;height:100%;max-height:none;display:flex}.material-picker-close{top:12px;right:12px}.material-picker-toolbar{gap:10px;padding:10px 62px 10px 14px}.material-picker-toolbar-top{flex-flow:row;align-items:flex-end;gap:8px}.material-picker-toolbar-top .material-picker-series-select{width:auto;min-width:120px}.material-picker-series-select{font-size:10px}.material-picker-series-select select{min-height:32px}.material-picker-filter-group{gap:5px;padding-bottom:2px}.material-picker-list{flex:65%;min-height:0;padding-bottom:12px}.material-picker-detail{flex:none;gap:14px;min-height:0;max-height:40vh;padding:14px 16px 12px}.material-picker-header{gap:14px}.material-picker-preview{width:140px;height:140px}.material-picker-thumbs{-webkit-overflow-scrolling:touch;flex-flow:row;gap:6px;overflow-x:auto}.material-thumb{flex:none;width:48px;height:48px}.material-picker-actions{padding-top:12px}}@media (max-width:520px){.material-picker-toolbar-top{flex-wrap:wrap;align-items:stretch;position:relative}.material-picker-toolbar-top .material-picker-series-select{width:100%;min-width:0}.material-picker-toolbar-top .material-picker-search{padding-right:52px}.material-picker-toolbar-top .material-picker-search input{width:100%}.material-picker-toolbar{padding-right:16px}.material-picker-series-select{flex-direction:row;align-items:center;gap:8px;font-size:11px}.material-picker-series-select span{display:inline-flex}.material-picker-series-select select{width:100%}.material-picker-preview{width:120px;height:120px}}@media (min-width:960px){body{width:100%;max-width:100%;height:100vh;min-height:100vh;display:flex;position:fixed;inset:0;overflow:hidden}@supports (height:100svh){body{height:100svh;min-height:100svh}}.layout{height:100vh}.tabbar{display:none}.panel-toolbar.desktop-only{display:flex}.app{grid-template-rows:1fr;grid-template-columns:minmax(320px,420px) 1fr 1fr;gap:10px;height:100%;padding:16px;display:grid}.tab-panel{display:flex}.tab-panel[data-tab=editor]{grid-area:1/1}.tab-panel[data-tab=mask2d]{grid-area:1/2}.tab-panel[data-tab=viewer3d]{grid-area:1/3}#appGrid[data-view-mode=mask] .tab-panel[data-tab=mask2d]{grid-column:2/4}#appGrid[data-view-mode=mask] .tab-panel[data-tab=viewer3d]{display:none}#appGrid[data-view-mode=viewer] .tab-panel[data-tab=viewer3d]{grid-column:2/4}#appGrid[data-view-mode=viewer] .tab-panel[data-tab=mask2d]{display:none}aside{border-radius:12px}}@media (max-width:959px){.mask-header{display:none}}#commissionModal[aria-hidden=true]{display:none}#commissionModal{--modal-padding:clamp(14px, 4vh, 28px);z-index:2600;padding:var(--modal-padding);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#060810c7;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.commission-modal__dialog{width:min(720px,96vw);max-width:960px;height:calc(100vh - (var(--modal-padding) * 2));background:#101321;border:1px solid #5c68b459;border-radius:18px;flex-direction:column;max-height:none;display:flex;position:relative;overflow:hidden;box-shadow:0 30px 120px #0000008c}@supports (height:100svh){.commission-modal__dialog{height:calc(100svh - (var(--modal-padding) * 2))}}.commission-modal__header{flex-direction:column;gap:6px;padding:clamp(16px,3.2vw,22px) clamp(20px,4vw,28px) clamp(10px,2.8vw,16px);display:flex}.commission-modal__title{margin:0;font-size:clamp(20px,2.8vw,26px)}.commission-modal__subtitle{color:var(--muted);margin:0;font-size:14px}.commission-modal__close{color:#f6f7ff;cursor:pointer;background:#181b2ee6;border:1px solid #7b85ff66;border-radius:999px;justify-content:center;align-items:center;width:36px;height:36px;font-size:18px;transition:transform .18s,background .18s;display:inline-flex;position:absolute;top:14px;right:14px}.commission-modal__close:hover,.commission-modal__close:focus-visible{background:#22263cf2;outline:none;transform:scale(1.05)}.commission-modal__body{overscroll-behavior:contain;flex-direction:column;flex:auto;gap:clamp(14px,2vw,24px);min-height:0;padding:0 clamp(18px,4vw,26px) clamp(18px,4vw,28px);display:flex;overflow-y:auto}.commission-preview{background:#131624cc;border:1px solid #50587e59;border-radius:12px;flex-direction:column;gap:10px;min-height:0;padding:14px;display:flex}.commission-preview__frame{background:#05060c;border:1px solid #5c66a059;border-radius:10px;justify-content:center;align-items:center;min-height:0;display:flex;position:relative;overflow:hidden}.commission-preview__refresh{color:#f0f3ff;cursor:pointer;background:#141828e6;border:1px solid #727ecc8c;border-radius:999px;justify-content:center;align-items:center;width:36px;height:36px;transition:transform .18s,background .18s,box-shadow .18s;display:inline-flex;position:absolute;top:10px;right:10px}.commission-preview__refresh:hover,.commission-preview__refresh:focus-visible{outline-offset:2px;background:#21263ef2;outline:2px solid #7c86ff99;transform:translateY(-1px);box-shadow:0 12px 32px #0c0e1880}.commission-preview__refresh svg{width:18px;height:18px}.commission-preview__img{-o-object-fit:contain;object-fit:contain;width:100%;height:min(50vh,320px);max-height:50vh;display:block}.commission-preview__meta{color:#d6dcff;white-space:pre-wrap;word-break:break-word;background:#0c0e18e6;border:1px solid #46528a66;border-radius:10px;max-height:clamp(120px,18vh,180px);margin:8px 0 0;padding:10px 12px;font-family:SFMono-Regular,ui-monospace,Menlo,Monaco,Cascadia Mono,Segoe UI Mono,Roboto Mono,monospace;font-size:12px;line-height:1.5;overflow-y:auto}.commission-form{flex-direction:column;flex:auto;gap:12px;min-height:0;display:flex}.commission-form label{color:var(--muted);flex-direction:column;gap:6px;font-size:13px;display:flex}.commission-form input,.commission-form textarea{width:100%;color:var(--text);font:inherit;resize:vertical;background:#0e101ce6;border:1px solid #4a528073;border-radius:10px;min-height:44px;padding:10px 12px}.commission-form input:focus,.commission-form textarea:focus{outline-offset:2px;outline:2px solid #7b85ff8c}.commission-form textarea{min-height:80px}.commission-form__actions{flex-direction:column;gap:10px;margin-top:auto;display:flex}.commission-form__actions button{color:#fff;cursor:pointer;background:linear-gradient(135deg,#6f7bff,#9a6dff);border:none;border-radius:999px;padding:12px 18px;font-weight:600;transition:transform .18s,box-shadow .18s}.commission-form__actions button:hover,.commission-form__actions button:focus-visible{outline:none;transform:translateY(-1px);box-shadow:0 14px 36px #181a2c99}.commission-status{min-height:20px;font-size:13px}@media (min-width:960px){#commissionModal{--modal-padding:clamp(18px, 3vh, 32px)}.commission-modal__dialog{width:min(1040px,94vw)}.commission-modal__body{flex-direction:row;align-items:stretch;gap:clamp(18px,2vw,32px);overflow:hidden}.commission-preview{flex:0 0 clamp(260px,36%,360px);height:auto}.commission-preview__frame{height:100%}.commission-preview__img{height:auto;max-height:none}}@media (max-width:600px){#commissionModal{--modal-padding:clamp(12px, 4vh, 20px)}.commission-modal__dialog{border-radius:16px;width:min(94vw,420px)}.commission-modal__header{gap:4px;padding:clamp(14px,5vw,20px) clamp(16px,6vw,24px) clamp(10px,4vw,16px)}.commission-modal__title{font-size:clamp(18px,5.6vw,24px)}.commission-modal__subtitle{font-size:13px}.commission-modal__body{gap:16px;padding:0 clamp(14px,6vw,22px) clamp(14px,6vw,22px)}.commission-preview{gap:8px;padding:12px}.commission-preview__refresh{width:34px;height:34px}.commission-preview__img{height:min(48vh,260px);max-height:48vh}.commission-form{gap:10px}.commission-form label{gap:4px;font-size:12px}.commission-form input,.commission-form textarea{min-height:40px;padding:9px 11px;font-size:13px}.commission-form textarea{min-height:72px}.commission-form__actions button{padding:11px 16px;font-size:14px}}.brand-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.editor-toolbar{flex:none;gap:6px;display:flex}.editor-toolbar .panel-toggle{align-items:center;gap:6px;display:inline-flex}.editor-toolbar .panel-toggle svg{width:15px;height:15px}.panel-toggle[disabled]{opacity:.4;cursor:not-allowed;pointer-events:none}.check-label{color:var(--muted);cursor:pointer;align-items:center;gap:8px;font-size:13px;display:flex}.check-label input[type=checkbox]{accent-color:#5b6eff;width:16px;height:16px}.color-swatch-wrap{align-items:center;gap:10px;display:flex}.color-swatch-wrap input[type=color]{border:1px solid var(--panel-border-strong);cursor:pointer;background:0 0;border-radius:8px;block-size:32px;inline-size:44px;padding:0}.color-swatch-label{color:var(--muted);font-size:13px}.color-catalog-open{align-self:flex-start}.color-catalog-selected{align-items:center;gap:10px;display:flex}.color-catalog-swatch{border:1px solid var(--panel-border-strong);border-radius:8px;flex:none;width:36px;height:36px}.color-catalog-text{flex-direction:column;gap:1px;min-width:0;display:flex}.color-catalog-text strong{color:var(--text);font-size:13px}.color-catalog-clear{flex:none;margin-left:auto;padding:4px 8px;font-size:12px}.gradient-placeholder{border:1px dashed var(--panel-border-strong);color:var(--muted);border-radius:10px;margin-top:8px;padding:12px}.mask-header{justify-content:flex-start;align-items:center}.mask-mode-bar{flex:none;gap:6px;margin-right:auto;display:inline-flex}.mask-mode-bar .pill{cursor:pointer}.mask-header .panel-toolbar{margin-left:0}.share-trigger svg{width:16px;height:16px}.btn-primary{appearance:none;color:var(--text-inverse);background:linear-gradient(120deg,var(--brand-gradient-start),var(--brand-gradient-end));cursor:pointer;border:1px solid #0000;border-radius:10px;padding:9px 16px;font:600 14px/1 system-ui,-apple-system,Segoe UI,Roboto;transition:filter .15s,opacity .15s}.btn-primary:hover:not(:disabled){filter:brightness(1.08)}.btn-primary:disabled{opacity:.55;cursor:not-allowed}.btn-secondary{appearance:none;border:1px solid var(--panel-border-strong);color:var(--text);background:var(--surface-subtle);cursor:pointer;border-radius:10px;padding:9px 16px;font:600 14px/1 system-ui,-apple-system,Segoe UI,Roboto;transition:background .15s}.btn-secondary:hover:not(:disabled){background:var(--surface-subtle-hover)}.btn-secondary:disabled{opacity:.55;cursor:not-allowed}.save-modal-body .field,.field{flex-direction:column;gap:6px;display:flex}.field-label{color:var(--muted-strong);font-size:12.5px;font-weight:600}.field-input{box-sizing:border-box;background:var(--surface-subtle);border:1px solid var(--panel-border);width:100%;color:var(--text);border-radius:8px;padding:8px 10px;font:14px/1.3 system-ui,-apple-system,Segoe UI,Roboto}.field-input:focus-visible{border-color:var(--panel-border-strong);outline:none}.field--checkbox{color:var(--muted);flex-direction:row;align-items:flex-start;gap:8px;font-size:13px}.field--checkbox input{margin-top:2px}.field-error{color:#ff8080;margin:0;font-size:13px}.modal-actions{justify-content:flex-end;gap:10px;margin-top:4px;display:flex}.modal-card--saves{width:min(720px,96vw)}.saves-empty{flex-direction:column;align-items:flex-start;gap:12px;display:flex}.saves-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;margin:0;padding:0;list-style:none;display:grid}.saves-card{background:var(--surface-subtle);border:1px solid var(--panel-border);border-radius:12px;flex-direction:column;gap:8px;min-width:0;padding:8px;display:flex}.saves-thumb{aspect-ratio:1;background:var(--surface-elevated);cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;padding:0;display:flex;overflow:hidden}.saves-thumb img{object-fit:cover;width:100%;height:100%;display:block}.saves-thumb-placeholder{color:var(--muted-strong);font-size:28px}.saves-meta{flex-direction:column;gap:6px;min-width:0;display:flex}.saves-title-link{text-align:left;color:var(--text);cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:none;padding:0;font:600 13px/1.3 system-ui,-apple-system,Segoe UI,Roboto;overflow:hidden}.saves-rename{padding:4px 6px;font-size:13px}.saves-actions{flex-wrap:wrap;align-items:center;gap:4px 6px;display:flex}.saves-action{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:2px 4px;font-size:12px}.saves-action:hover:not(:disabled){color:var(--text);background:var(--surface-subtle-hover)}.saves-action:disabled{opacity:.5;cursor:not-allowed}.saves-action--danger{color:#ff9a9a}.saves-action[aria-pressed=true]{color:var(--brand-gradient-start);font-weight:600}.saves-confirm{align-items:center;gap:4px;display:inline-flex}.share-url-row{align-items:center;gap:8px;display:flex}.share-url-input{background:var(--surface-subtle);border:1px solid var(--panel-border);min-width:0;color:var(--text);border-radius:8px;flex:auto;padding:7px 9px;font:12.5px/1.3 system-ui,-apple-system,Segoe UI,Roboto}.share-copy-btn{flex:none;padding:7px 12px;font-size:13px}.share-hint{color:var(--muted-strong);margin:0;font-size:12px}.d-remix-banner{background:var(--surface-overlay);border-bottom:1px solid var(--panel-border);color:var(--muted);z-index:30;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;font-size:13px;display:flex}.d-remix-banner strong{color:var(--text)}.d-loading{height:100dvh;color:var(--muted);justify-content:center;align-items:center;display:flex}.field--inline{flex-direction:row;align-items:center;gap:8px}.field--inline .field-label{white-space:nowrap}.gallery-filters{flex-wrap:wrap;align-items:flex-end;gap:12px;margin:4px 0 14px;display:flex}.gallery-community-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px;margin:0;padding:0;list-style:none;display:grid}.gallery-community-card{background:var(--surface-subtle);border:1px solid var(--panel-border);border-radius:12px;flex-direction:column;gap:6px;min-width:0;padding:8px;display:flex}.gallery-community-thumb{aspect-ratio:1;background:var(--surface-elevated);cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;padding:0;text-decoration:none;display:flex;overflow:hidden}.gallery-community-thumb img{object-fit:cover;width:100%;height:100%;display:block}.gallery-community-placeholder{color:var(--muted-strong);font-size:28px}.gallery-community-meta{flex-direction:column;gap:2px;min-width:0;display:flex}.gallery-community-title{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font:600 13px/1.3 system-ui,-apple-system,Segoe UI,Roboto;overflow:hidden}.gallery-community-creator{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.gallery-pagination{color:var(--muted);justify-content:center;align-items:center;gap:14px;margin-top:16px;font-size:13px;display:flex}.gallery-detail-back{margin-bottom:14px}.gallery-detail-body{flex-wrap:wrap;gap:20px;display:flex}.gallery-detail-figure{aspect-ratio:1;background:var(--surface-elevated);border-radius:12px;flex:none;justify-content:center;align-items:center;width:320px;max-width:100%;margin:0;display:flex;overflow:hidden}.gallery-detail-figure img{object-fit:cover;width:100%;height:100%;display:block}.gallery-detail-placeholder{font-size:64px}.gallery-detail-copy{flex-direction:column;flex:220px;gap:10px;min-width:0;display:flex}.gallery-detail-title{color:var(--text);margin:0;font-size:20px}.gallery-detail-creator{color:var(--muted);margin:0;font-size:14px}.gallery-detail-creator a{color:var(--brand-gradient-start,#8aa8ff)}.gallery-detail-tags{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.gallery-tag-chip{background:var(--surface-subtle);border:1px solid var(--panel-border);color:var(--muted);border-radius:999px;padding:3px 10px;font-size:12px}.gallery-detail-remix{align-self:flex-start;margin-top:6px;text-decoration:none}.profile-avatar-row{align-items:center;gap:12px;display:flex}.profile-avatar-preview{object-fit:cover;border:1px solid var(--panel-border);border-radius:16px;width:64px;height:64px;display:block}.profile-avatar-placeholder{border:1px dashed var(--panel-border);width:64px;height:64px;color:var(--muted-strong);border-radius:16px;justify-content:center;align-items:center;font-size:24px;display:flex}.creator-page{max-width:1000px;color:var(--text);margin:0 auto;padding:32px 20px}.creator-header{flex-wrap:wrap;align-items:center;gap:18px;margin-bottom:28px;display:flex}.creator-avatar{object-fit:cover;border:1px solid var(--panel-border);border-radius:24px;width:96px;height:96px}.creator-avatar--placeholder{color:var(--muted-strong);border-style:dashed;justify-content:center;align-items:center;font-size:36px;display:flex}.creator-header-copy{flex:260px;min-width:0}.creator-name{margin:0;font-size:26px}.creator-handle{color:var(--muted);margin:2px 0 0;font-size:14px}.creator-bio{color:var(--muted-strong);margin:10px 0 0;font-size:15px;line-height:1.5}.creator-links{flex-wrap:wrap;gap:12px;margin:10px 0 0;padding:0;list-style:none;display:flex}.creator-links a{color:var(--brand-gradient-start,#8aa8ff);font-size:14px}.creator-designs{margin-top:8px}
