:root{color:#e2e8f0;background:#0b1220;accent-color:#f6c90e;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;line-height:1.5;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html{height:100%}body{min-width:320px;min-height:100%;margin:0;background:#0b1220}button,input{font:inherit}button:focus-visible,input:focus-visible{outline:3px solid #38bdf8;outline-offset:3px}main{width:100%;max-width:none;margin:0;padding:12px 16px;min-height:100vh;box-sizing:border-box}.app-header{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:12px 20px;margin-bottom:12px;min-height:40px}.app-title{margin:0;font-size:1.125rem;font-weight:800;letter-spacing:-.03em;color:#f8fafc}.app-title--center{text-align:center}.app-header-left{justify-self:start}.app-header-meta{margin:0;color:#94a3b8;font-size:.875rem;font-weight:600}.app-header-meta--right{justify-self:end}.app-header-meta--muted{color:#64748b;font-weight:500}.app-header-right{justify-self:end;display:flex;align-items:center;flex-wrap:wrap;gap:10px 12px}.app-header-right .app-header-meta{margin-left:0}.app-header-share-btn{padding:.35rem .75rem;border-radius:8px;border:1px solid #334155;background:#1e293b;color:#e2e8f0;font-size:.8125rem;font-weight:600;cursor:pointer;white-space:nowrap}.app-header-share-btn:hover:not(:disabled){border-color:#38bdf8;background:#0f172a}.app-header-share-btn:disabled{opacity:.45;cursor:not-allowed}.app-header-back-btn{appearance:none;padding:.35rem .75rem;border-radius:8px;border:1px solid #334155;background:#1e293b;color:#e2e8f0;font-size:.8125rem;font-weight:600;cursor:pointer}.app-header-back-btn:hover{border-color:#38bdf8;background:#0f172a}.page-hint{margin:0 0 10px;padding:10px 12px;border-radius:8px;background:#38bdf81f;border:1px solid rgba(56,189,248,.35);color:#bae6fd;font-size:.875rem}.app-header-dot{display:inline-block;width:4px;height:4px;margin:0 8px;border-radius:50%;background:#475569;vertical-align:middle}@media(max-width:620px){.app-header.app-header--compact{display:grid;align-items:center;gap:8px 12px}.app-header.app-header--compact.app-header--with-actions{grid-template-columns:auto minmax(0,1fr) auto}.app-header.app-header--compact:not(.app-header--with-actions){grid-template-columns:auto minmax(0,1fr)}.app-header.app-header--compact .app-title,.app-header.app-header--compact .app-title--center{text-align:center;margin:0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-header.app-header--compact .app-header-left{justify-self:start}.app-header.app-header--compact .app-header-right{justify-self:end;width:auto;justify-content:flex-end;flex-wrap:nowrap}.app-header.app-header--compact .app-header-right .app-header-meta{width:auto;margin-left:0;text-align:inherit}}.app-layout{display:grid;grid-template-columns:minmax(260px,320px) minmax(0,1fr) minmax(280px,360px);gap:16px;align-items:stretch;height:calc(100vh - 76px);min-height:420px}.main-stage-column{min-width:0;display:flex;flex-direction:column;gap:12px;min-height:0;align-self:stretch}.sidebar{min-width:0;max-height:calc(100vh - 76px);overflow-y:auto;overflow-x:hidden;padding-right:6px}.sidebar-configuration{display:flex;flex-direction:column;gap:20px}.sidebar-configuration__config.config-panel{margin:0;padding:0;border:none;background:transparent;box-shadow:none}.main-stage{flex:1;min-width:0;display:flex;flex-direction:column;min-height:0}.mosaic-workspace--stage{flex:1;display:flex;flex-direction:column;min-height:0;margin:0;padding:0;border:none;border-radius:24px;background:transparent;box-shadow:none}.mosaic-workspace--stage .canvas-shell{flex:1;min-height:0;display:flex;flex-direction:column}.right-panel{display:flex;flex-direction:column;min-width:0;max-height:calc(100vh - 76px);padding:16px;overflow:hidden}.right-panel.panel{background:#111827;border:1px solid rgba(255,255,255,.08);box-shadow:0 24px 80px #00000040}.panel{border-radius:20px;background:#111827;border:1px solid rgba(255,255,255,.08);box-shadow:0 20px 50px #00000059;padding:18px}.panel-tabs{display:flex;gap:8px;margin-bottom:12px;flex-shrink:0}.panel-tab{flex:1;min-height:40px;padding:8px 12px;border-radius:12px;border:1px solid rgba(255,255,255,.12);background:#ffffff14;font:inherit;font-weight:800;font-size:.85rem;cursor:pointer;color:#e2e8f0}.panel-tab:hover{background:#ffffff1f}.panel-tab--active{border-color:#f6c90e;background:#f6c90e;color:#111827}.panel-tab:disabled{opacity:.5;cursor:not-allowed}.panel-tab:disabled:hover{background:#ffffff14}.parts-total-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.parts-total-row{box-sizing:border-box;width:100%;display:flex;align-items:center;gap:10px;padding:4px 10px 4px 4px;border-radius:999px;background:#0f172aa6;border:1px solid rgba(255,255,255,.1);font-size:.82rem;line-height:1.25}.parts-total-disc-neutral{flex-shrink:0;width:22px;height:22px;border-radius:4px;background:linear-gradient(160deg,#64748b,#334155);border:1px solid rgba(255,255,255,.12);box-shadow:inset 0 1px #ffffff1a}.parts-total-row .instruction-key-disc{width:22px;height:22px}.parts-total-row .instruction-key-disc .plate-stud-num{font-size:.65rem}.parts-total-name{flex:1;min-width:0;font-weight:600;color:#f1f5f9;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.parts-total-row .instruction-key-count.parts-total-count{flex-shrink:0;margin-left:auto;font-size:.72rem;font-weight:700;color:#cbd5e1}.right-panel-scroll{flex:1;min-height:0;overflow-x:hidden;overflow-y:auto;display:flex;flex-direction:column;gap:20px;padding-right:4px}.right-panel-section{display:flex;flex-direction:column;gap:8px;align-items:stretch}.right-panel-section-heading.field-label{margin:0}.right-panel-readout{margin:0;font-size:.92rem;font-weight:600;line-height:1.35;color:#e2e8f0;font-variant-numeric:tabular-nums}.right-panel-stat-value{margin:0;font-size:1.35rem;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.03em;color:#f8fafc}.right-panel-hint{margin:0;font-size:.8rem;line-height:1.35;color:#94a3b8}.right-panel-hint--muted{color:#64748b;font-weight:500}.piece-type-block{margin-top:4px}.piece-type-group{display:flex;flex-wrap:wrap;align-items:center;gap:14px 20px;margin-top:4px}.piece-type-radio{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-size:.88rem;font-weight:600;color:#e2e8f0;-webkit-user-select:none;user-select:none}.piece-type-radio--disabled{cursor:not-allowed;opacity:.55}.piece-type-radio-input{width:1rem;height:1rem;accent-color:#f6c90e;flex-shrink:0;cursor:inherit}.eyebrow{margin:0 0 6px;color:#f6c90e;font-size:.76rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.panel h2{margin:0;letter-spacing:-.03em;color:#f8fafc}.panel-heading,.output-heading,.preview-heading{display:flex;gap:16px;align-items:start;justify-content:space-between;margin-bottom:18px}.panel-heading p{margin:4px 0 0;color:#94a3b8}.drop-zone{display:grid;gap:20px;min-height:200px;padding:20px;border:2px dashed rgba(246,201,14,.45);border-radius:18px;background:#f6c90e0f}.drop-zone--empty{position:relative;display:grid;place-items:center;gap:0;padding:20px 16px;min-height:160px;cursor:pointer}.drop-zone-file-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.drop-zone-empty-text{display:flex;flex-direction:column;align-items:center;gap:4px;max-width:14rem;font-size:.9rem;font-weight:600;color:#e2e8f0;line-height:1.35;text-wrap:balance;cursor:pointer}.drop-zone-empty-or{font-size:.78rem;font-weight:600;color:#64748b}.drop-zone-upload-icon{display:inline-flex;margin-bottom:6px;color:#f6c90e}.drop-zone-upload-icon :deep(.svgrepo-inline-svg){width:2.75rem;height:2.75rem}.drop-zone-paste-action{display:inline-flex;min-height:36px;align-items:center;justify-content:center;margin-top:8px;padding:8px 14px;border:1px solid rgba(246,201,14,.45);border-radius:999px;background:#f6c90e1f;color:#fef3c7;font:inherit;font-size:.88rem;font-weight:700;cursor:pointer}.drop-zone-paste-action:hover:not(:disabled),.drop-zone-paste-action:focus-visible{border-color:#f6c90e;background:#f6c90e33;outline:none}.drop-zone-paste-action:disabled{opacity:.7;cursor:wait}.drop-zone-url-form{display:grid;width:min(100%,28rem);gap:10px;justify-items:center;cursor:default}.drop-zone-url-row{display:flex;width:100%;gap:8px}.drop-zone-url-input{min-width:0;flex:1;border:1px solid rgba(148,163,184,.35);border-radius:999px;background:#0f172ab8;color:#e2e8f0;font:inherit;font-size:.88rem;padding:9px 13px}.drop-zone-url-input::placeholder{color:#64748b}.drop-zone-url-input:focus{border-color:#f6c90e;outline:none;box-shadow:0 0 0 3px #f6c90e29}.drop-zone-url-action{display:inline-flex;min-height:36px;align-items:center;justify-content:center;padding:8px 14px;border:1px solid rgba(246,201,14,.45);border-radius:999px;background:#f6c90e1f;color:#fef3c7;font:inherit;font-size:.88rem;font-weight:700;white-space:nowrap;cursor:pointer}.drop-zone-url-action:hover:not(:disabled),.drop-zone-url-action:focus-visible{border-color:#f6c90e;background:#f6c90e33;outline:none}.drop-zone-url-input:disabled,.drop-zone-url-action:disabled{opacity:.7}.drop-zone-url-action:disabled{cursor:wait}@media(max-width:420px){.drop-zone-url-row{flex-direction:column}.drop-zone-url-action{width:100%}}.drop-zone.is-dragging{background:#f6c90e1f;border-color:#f6c90e}.drop-zone p{margin:0;color:#94a3b8}.upload-actions,.button-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.button{display:inline-flex;min-height:42px;align-items:center;justify-content:center;border:0;border-radius:999px;cursor:pointer;font-weight:800;padding:10px 16px;text-decoration:none}.button.primary{color:#111827;background:#f6c90e}.button.secondary{color:#e2e8f0;background:#ffffff1a}.button.secondary:hover{background:#ffffff29}.button:disabled{cursor:not-allowed;opacity:.5}.button input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.mosaic-stage-source-sizer{position:absolute;width:1px;height:1px;margin:0;padding:0;opacity:0;overflow:hidden;clip-path:inset(50%);border:none;pointer-events:none}.mosaic-stage-arena{position:relative;display:inline-block;vertical-align:top;overflow:visible}.mosaic-stage-bg-sheet{position:absolute;inset:0;z-index:0;overflow:visible;pointer-events:none;transition:opacity .11s ease,visibility .11s linear}.mosaic-stage-arena:not(.mosaic-stage-arena--source-reveal) .mosaic-stage-bg-sheet{opacity:0;visibility:hidden}.mosaic-stage-arena.mosaic-stage-arena--source-reveal .mosaic-stage-bg-sheet{opacity:1;visibility:visible}.mosaic-stage-bg-img{display:block;max-width:none;-webkit-user-select:none;user-select:none;pointer-events:none;opacity:.38}.mosaic-stage-stack{position:relative;z-index:1;width:fit-content;height:fit-content}.mosaic-stage-interaction-layer{position:absolute;inset:0;z-index:3;cursor:grab;touch-action:none}.mosaic-stage-interaction-layer:active{cursor:grabbing}.mosaic-stage-zoom{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center}.mosaic-stage-zoom-label{font-weight:700;color:#94a3b8;font-size:.82rem;white-space:nowrap}.mosaic-stage-zoom-value{font-variant-numeric:tabular-nums;font-weight:800;font-size:.82rem;color:#e2e8f0;min-width:3.2rem;text-align:right}.mosaic-stage-zoom--overlay{position:absolute;z-index:5;left:8px;right:8px;bottom:8px;padding:8px 12px;border:1px solid rgba(255,255,255,.18);border-radius:999px;background:#0f172ab8;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);box-shadow:0 2px 8px #00000073;color:#f1f5f9}.mosaic-stage-zoom--overlay .mosaic-stage-zoom-label{color:#cbd5e1}.mosaic-stage-zoom--overlay .mosaic-stage-zoom-value{color:#f1f5f9}.mosaic-stage-zoom--overlay input[type=range]{margin:0}.mosaic-stage-corner-btn{position:absolute;z-index:5;display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border:1px solid rgba(255,255,255,.18);border-radius:999px;background:#0f172ab8;color:#f1f5f9;cursor:pointer;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);box-shadow:0 2px 8px #00000073;transition:background-color .12s ease,border-color .12s ease,transform .12s ease}.mosaic-stage-corner-btn:hover{background:#0f172ae6;border-color:#f6c90e99}.mosaic-stage-corner-btn:active{transform:translateY(1px)}.mosaic-stage-icon{width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center}.mosaic-stage-icon :deep(.svgrepo-inline-svg){width:100%;height:100%}.mosaic-stage-corner-btn--tr{top:8px;right:8px}.config-panel{display:grid;gap:14px}.config-panel .field-hint{display:block;color:#94a3b8;font-weight:500;font-size:.82rem;line-height:1.35;margin-bottom:2px}.field-label{display:block;font-weight:700;color:#cbd5e1;font-size:.88rem}.size-select{width:100%;min-height:44px;padding:10px 36px 10px 12px;border-radius:12px;border:1px solid rgba(255,255,255,.12);background-color:#0f172ae6;background-image:linear-gradient(45deg,transparent 50%,#cbd5e1 50%),linear-gradient(135deg,#cbd5e1 50%,transparent 50%);background-position:calc(100% - 18px) 50%,calc(100% - 13px) 50%;background-size:5px 5px,5px 5px;background-repeat:no-repeat;color:#e2e8f0;font:inherit;font-weight:700;appearance:none;cursor:pointer}.size-select:hover:not(:disabled){border-color:#ffffff38;background-color:#1e293bf2}.size-select:disabled{opacity:.55;cursor:not-allowed}.size-select option,.size-select optgroup{background:#0f172a;color:#e2e8f0}label{display:grid;gap:8px;color:#cbd5e1;font-weight:700}label span{color:#94a3b8;font-weight:600}input[type=range]{width:100%;accent-color:#f6c90e}.toggle{display:flex;align-items:center;justify-content:space-between;gap:14px}.toggle small{display:block;color:#667085;font-weight:500}.field-block{display:grid;gap:8px}.field-block .field-label{color:#cbd5e1;font-weight:700}.svgrepo-icon{display:inline-flex;line-height:0;color:inherit}.svgrepo-icon :deep(.svgrepo-inline-svg){width:100%;height:100%;display:block;pointer-events:none}.plate-stud-cell--interactive{cursor:crosshair;touch-action:none}select:focus-visible{outline:3px solid #2563eb;outline-offset:3px}.canvas-shell{position:relative;min-height:560px;border-radius:24px;background:linear-gradient(45deg,rgba(15,23,42,.06) 25%,transparent 25%),linear-gradient(-45deg,rgba(15,23,42,.06) 25%,transparent 25%),#111827;background-size:24px 24px}.canvas-shell--mosaic{display:flex;flex-direction:column;align-items:stretch;justify-content:center;overflow:hidden;flex:1;min-height:0;padding:clamp(12px,2vmin,20px)}.canvas-shell--mosaic.mosaic-build-canvas{flex:1;min-height:0;align-items:stretch;justify-content:stretch}.mosaic-build-canvas-inner{display:flex;flex-direction:column;align-items:center;width:100%;gap:12px}.mosaic-build-preview{flex:1;width:100%;min-height:0;min-width:0;display:flex;flex-direction:column;align-items:stretch}.mosaic-scale-host{flex:1;min-height:0;min-width:0;width:100%;display:flex;align-items:center;justify-content:center;padding:clamp(18px,3.5vmin,40px);box-sizing:border-box}.mosaic-scaler-slot{position:relative;flex-shrink:0}.mosaic-scale-layer{position:absolute;left:0;top:0}.mosaic-frame--preview{line-height:0}.mosaic-inline-empty{margin:0;padding:48px 20px;text-align:center;color:#f8fafcd1;font-weight:800;font-size:.95rem}.mosaic-build-empty-copy{margin:0;color:#e2e8f0cc;text-align:center}.canvas-shell--mosaic .mosaic-viewport{flex-shrink:0}.mosaic-viewport{touch-action:auto}.mosaic-frame{position:relative;width:fit-content;line-height:0}.mosaic-plates-grid{display:grid;margin:0;width:fit-content;background:transparent}.mosaic-plate-block{position:relative;margin:0;padding:0;background:transparent;cursor:pointer}.mosaic-stage-arena .mosaic-plates-grid,.mosaic-stage-arena .mosaic-plate-block{background:#0a0e18eb}.mosaic-stage-arena.mosaic-stage-arena--source-reveal .mosaic-plates-grid,.mosaic-stage-arena.mosaic-stage-arena--source-reveal .mosaic-plate-block{background:transparent}.mosaic-plate-block--detail{cursor:default;width:fit-content}.mosaic-plate-block--selected{box-shadow:0 0 0 2px #2563eb,0 0 0 5px #2563eb47;border-radius:3px}.mosaic-plate-tab{position:absolute;top:-9px;left:4px;z-index:3;min-width:22px;height:22px;padding:0 6px;border:none;border-radius:6px;font-size:.65rem;font-weight:900;font-variant-numeric:tabular-nums;line-height:22px;cursor:pointer;background:#172033;color:#fff;box-shadow:0 1px 4px #0006}.mosaic-plate-tab.active{background:#2563eb}.mosaic-workspace .workspace-lead{margin:8px 0 0;color:#667085;font-size:.92rem;line-height:1.45;max-width:52em}.mosaic-workspace .workspace-heading{margin-bottom:10px}.plate-stud-grid{display:grid;width:fit-content;margin:0;gap:0;line-height:0}.plate-stud-cell--static{display:flex;align-items:center;justify-content:center;flex-shrink:0;box-sizing:border-box;padding:0;margin:0}.plate-stud-disc{width:88%;height:88%;min-width:4px;min-height:4px;border-radius:50%;pointer-events:none;flex-shrink:0;display:flex;align-items:center;justify-content:center;box-shadow:inset 0 1px #ffffff1f,inset 0 -1px #00000014}.plate-stud-disc.plate-stud-disc--square{border-radius:0}.plate-stud-num{font-size:9px;font-weight:900;font-variant-numeric:tabular-nums;line-height:1;letter-spacing:-.02em;pointer-events:none}.plate-stud-num--light{color:#f8fafc;text-shadow:0 0 2px rgba(0,0,0,.9),0 1px 2px rgba(0,0,0,.85)}.plate-stud-num--dark{color:#0f172a;text-shadow:0 1px 0 rgba(255,255,255,.35)}.empty-state{position:absolute;inset:0;display:grid;place-items:center;padding:30px;text-align:center;color:#fff;background:#1118278c;font-weight:800}.instruction-key-disc{flex-shrink:0;width:34px;height:34px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;border:none;box-shadow:inset 0 1px #ffffff1f,inset 0 -1px #00000014}.instruction-key-disc--square{border-radius:0}.instruction-key-disc .plate-stud-num{font-size:.8rem}.instruction-key-count{margin-left:auto;font-weight:700;font-variant-numeric:tabular-nums;color:#cbd5e1;font-size:.82rem}.status,.empty-copy{color:#94a3b8}.mosaic-build-canvas .mosaic-build-empty-copy.empty-copy{color:#e2e8f0d9}.error{color:#991b1b;background:#fee2e2;border-radius:16px;padding:12px 14px}.page-error{margin-bottom:20px}@media(max-width:1100px){.app-layout{height:auto;min-height:calc(100vh - 76px);grid-template-columns:1fr 1fr;grid-template-areas:"sidebar main" "right right"}.sidebar{grid-area:sidebar;max-height:none}.main-stage-column{grid-area:main}.right-panel{grid-area:right;max-height:520px}.studio-layout .main-stage-column{grid-area:main}.studio-layout .right-panel{grid-area:right;max-height:520px}}@media(max-width:720px){.app-layout{height:auto;min-height:calc(100vh - 76px);grid-template-columns:1fr;grid-template-areas:"sidebar" "main" "right"}.main-stage-column{grid-area:main}.right-panel{grid-area:right;max-height:480px}.studio-layout .main-stage-column{grid-area:main}.studio-layout .right-panel{grid-area:right;max-height:480px}}@media(max-width:980px){main{padding:18px}.canvas-shell{min-height:420px}}.studio-layout.app-layout{width:100%;max-width:100%;grid-template-columns:1fr;grid-template-rows:auto auto;grid-template-areas:"main" "right";justify-items:stretch;align-items:stretch}@media(min-width:1101px){.studio-layout.app-layout{grid-template-columns:minmax(0,1fr) minmax(260px,360px);grid-template-rows:minmax(0,1fr);grid-template-areas:"main right";height:calc(100vh - 76px);min-height:420px}}.studio-layout .main-stage-column{grid-area:main;width:100%;min-width:0}.studio-layout .right-panel{grid-area:right;width:100%;min-width:0}.studio-layout .main-stage{width:100%;min-width:0;align-items:stretch}.studio-mosaic-shell{position:relative;flex:1 1 auto;height:100%;min-height:0;min-width:0;width:100%;align-self:stretch;display:flex;flex-direction:column}.studio-mosaic-shell__viewport{position:relative;flex:1 1 auto;min-height:0;min-width:0;width:100%}@media(max-width:1100px){.studio-layout .studio-mosaic-shell__viewport{min-height:min(52dvh,560px)}}.studio-mosaic-viewport-body{position:absolute;inset:0;box-sizing:border-box;min-width:0;min-height:0}.studio-mosaic-viewport-main{position:absolute;inset:0;z-index:1;min-width:0;min-height:0;display:flex;flex-direction:column;align-items:stretch}.studio-mosaic-viewport-top{position:absolute;z-index:42;top:clamp(8px,2vmin,14px);left:50%;transform:translate(-50%);box-sizing:border-box;width:min(560px,calc(100% - clamp(16px,4vw,32px)));max-width:100%;display:flex;justify-content:center;align-items:flex-start;pointer-events:none}.studio-mosaic-viewport-top>*{pointer-events:auto;min-width:0;width:100%;max-width:100%;box-sizing:border-box}.studio-mosaic-viewport-crop{position:absolute;z-index:42;left:max(10px,env(safe-area-inset-left,0px));right:max(10px,env(safe-area-inset-right,0px));bottom:max(10px,env(safe-area-inset-bottom,0px));display:flex;justify-content:center;align-items:center;box-sizing:border-box;pointer-events:none}.studio-mosaic-viewport-crop>*{pointer-events:auto}.studio-layout .studio-mosaic-viewport-main>.mosaic-workspace--stage{flex:1 1 auto;width:100%;max-width:100%;min-width:0;min-height:0}.studio-layout .studio-mosaic-viewport-main .mosaic-workspace--stage .canvas-shell--mosaic{width:100%;max-width:100%;min-width:0;flex:1;min-height:0}.studio-mosaic-shell .mosaic-build-preview{justify-content:center;flex:1 1 auto;min-height:0;height:100%}.studio-mosaic-shell .mosaic-scale-host{flex:0 1 90%;align-self:center;min-height:0;min-width:0;width:90%;max-width:100%;box-sizing:border-box}.studio-float-config{max-width:100%;min-width:0}.studio-float-toolbar-label,.config-panel--floating .field-label{flex-shrink:0;font-weight:700;color:#94a3b8;font-size:.76rem;white-space:nowrap}.studio-float-zoom{min-width:0;padding:10px 14px;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:#0f172ae6;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#f1f5f9;box-shadow:0 4px 18px #0000006b,inset 0 1px #ffffff0d}.studio-float-zoom--bottom{width:min(520px,100%);max-width:100%;box-sizing:border-box;min-width:0;display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:10px;padding:8px 14px 9px;border-radius:999px}.studio-float-zoom-h-track{flex:1 1 auto;min-width:0;display:flex;align-items:center;min-height:2rem}.studio-float-zoom-h-input{box-sizing:border-box;width:100%;min-width:120px;height:2rem;margin:0;padding:0;accent-color:#f6c90e}.studio-float-zoom-h-value.mosaic-stage-zoom-value{flex-shrink:0;font-size:.76rem;min-width:3.2rem;text-align:right}.studio-float-zoom--muted{opacity:.48;pointer-events:none}.studio-float-zoom--muted input{pointer-events:none}.config-panel--floating{margin:0;padding:8px 22px 9px;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:#0f172ae6;box-shadow:0 4px 18px #0000006b,inset 0 1px #ffffff0d;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:center;gap:10px 22px;width:100%;max-width:100%;min-width:0;box-sizing:border-box}.config-panel--floating .field-block{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:10px;min-width:0}.config-panel--floating>.field-block:not(.piece-type-block){flex:1 1 0;min-width:0}.config-panel--floating>.field-block.piece-type-block{flex:0 0 auto;margin-top:0}.config-panel--floating .field-label{margin:0;padding:0;text-align:left}.config-panel--floating .piece-type-group{flex:0 0 auto;margin-top:0;justify-content:flex-start;flex-wrap:nowrap;gap:12px 16px;min-width:0}.config-panel--floating .piece-type-radio{font-size:.76rem;font-weight:700}.config-panel--floating .size-select{box-sizing:border-box;width:100%;max-width:100%;min-width:0;flex:1 1 auto;min-height:2rem;padding:6px 32px 6px 10px;border-radius:999px;font-size:.76rem;font-weight:700}.studio-float-config.config-panel{gap:10px 22px}@media(max-width:720px){.studio-mosaic-viewport-top{top:clamp(6px,1.8vmin,10px);max-width:calc(100% - clamp(14px,4vw,24px))}.studio-mosaic-viewport-crop{left:max(12px,env(safe-area-inset-left,0px));right:max(12px,env(safe-area-inset-right,0px));bottom:max(8px,env(safe-area-inset-bottom,0px))}.studio-float-zoom--bottom{padding:8px 12px 9px;gap:8px}}@media(max-width:480px){.studio-layout .config-panel--floating{gap:8px 14px;padding:8px 18px 9px}.studio-layout .studio-mosaic-viewport-top{left:clamp(8px,3vw,14px);right:clamp(8px,3vw,14px);transform:none;width:auto;max-width:none;display:flex;justify-content:center}.studio-mosaic-viewport-crop{left:clamp(8px,3vw,14px);right:clamp(8px,3vw,14px);bottom:max(8px,env(safe-area-inset-bottom,0px))}}@media(max-height:520px)and (orientation:landscape){.studio-mosaic-viewport-top{top:4px}.studio-layout .config-panel--floating{padding:8px 18px 9px;gap:8px}}.studio-layout .sidebar{display:flex;flex-direction:column;gap:12px}.share-layout .sidebar{display:flex;flex-direction:column;gap:12px;min-height:0}.share-gallery-panel{display:flex;flex-direction:column;gap:0;min-height:0;flex:1;overflow:hidden}.share-gallery-heading{margin:0 0 12px;flex-shrink:0;font-size:.95rem;font-weight:800;color:#e2e8f0}.share-gallery-scroll{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding-right:4px;display:flex;flex-direction:column;gap:12px}.share-gallery-status{margin:0;font-size:.85rem;color:#94a3b8;flex-shrink:0}.share-gallery-status--more{text-align:center;padding-bottom:4px}.share-gallery-muted{margin:0;font-size:.85rem;color:#94a3b8;flex-shrink:0}.share-gallery-error{margin:0;font-size:.85rem;color:#fecaca;flex-shrink:0}.share-gallery-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.share-gallery-sentinel{height:4px;margin:0;padding:0;flex-shrink:0}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.landing-main{max-width:42rem;margin:0 auto;padding-top:24px;padding-bottom:48px}main.landing-main.landing-scene{--landing-hero-band: 90%;--landing-mosaic-start: 30%;max-width:none;margin:0;padding:0;min-height:100vh;height:100vh;max-height:100vh;overflow:hidden;position:relative;box-sizing:border-box}@supports (height: 100dvh){main.landing-main.landing-scene{min-height:100dvh;height:100dvh;max-height:100dvh}}.landing-mosaic-layer{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none}.landing-mosaic-layer .mosaic-thumb-link{pointer-events:auto}.landing-main.landing-scene .landing-foreground{inset:0 0 auto;height:var(--landing-hero-band);max-height:var(--landing-hero-band);align-items:center;padding:clamp(8px,2vmin,20px) clamp(12px,3vw,20px);box-sizing:border-box}.landing-mosaic-stage{position:absolute;left:0;right:0;top:var(--landing-mosaic-start);bottom:0;overflow:hidden;pointer-events:none;perspective:clamp(520px,78vmin,1000px);perspective-origin:50% 50%;transform-style:preserve-3d}.landing-mosaic-stage:after{content:"";position:absolute;left:0;right:0;top:0;height:min(82%,42rem);background:linear-gradient(to bottom,#0b1220 0% 38%,#0b1220fa 58%,#0b1220d1 74%,#0b122061 92%,#0b122000);pointer-events:none;z-index:2}.landing-mosaic-columns{display:flex;height:100%;width:160%;max-width:none;margin-left:-30%;gap:3px;align-items:stretch;align-content:stretch;box-sizing:border-box;background:#070c14;transform-style:preserve-3d;transform-origin:50% 100%;transform:rotateX(27deg) scale(1.06) translateZ(0);backface-visibility:hidden;pointer-events:auto}.landing-mosaic-col{position:relative;flex:1 1 0;min-width:0;height:100%;overflow:visible;z-index:0;pointer-events:auto}.landing-mosaic-col:hover{z-index:20;transform:translateZ(1px)}.landing-mosaic-col-track{display:flex;flex-direction:column;width:100%;animation:landing-mosaic-col-scroll var(--col-duration, 88s) linear infinite;animation-delay:var(--col-delay, 0s);will-change:transform}.landing-mosaic-col-chunk{display:flex;flex-direction:column;gap:3px;flex-shrink:0;background:#070c14;overflow:visible}@keyframes landing-mosaic-col-scroll{0%{transform:translateY(0)}to{transform:translateY(-50%)}}.landing-mosaic-cell{width:100%;aspect-ratio:1;flex-shrink:0}.landing-mosaic-cell .mosaic-thumb-link{width:100%;height:100%;max-width:none;margin-inline:0;aspect-ratio:1;display:block}@media(prefers-reduced-motion:reduce){.landing-mosaic-columns{width:100%;margin-left:0;transform:none}.landing-mosaic-col-track{animation:none;will-change:auto;transform:none}}.landing-foreground{position:absolute;inset:0;z-index:1;pointer-events:none;display:flex;justify-content:center;align-items:flex-start;padding:clamp(10px,2vmin,20px) clamp(12px,3vw,20px) 0;box-sizing:border-box}.landing-main:not(.landing-scene) .landing-foreground{position:relative;inset:auto;padding:0;pointer-events:auto}.landing-foreground--unsupported{align-items:flex-start}.landing-foreground-surface{width:min(92vw,72rem);max-width:72rem;min-height:max(60vh,38rem);pointer-events:none;display:flex;flex-direction:column;padding:clamp(14px,3vmin,22px) clamp(16px,3vw,24px) clamp(16px,3vmin,26px);border-radius:0 0 22px 22px;background:radial-gradient(ellipse 145% 100% at 50% 0%,#0b1220f5,#0b1220c7 38%,#0b122059 62%,#0b122000 88%)}.landing-main:not(.landing-scene) .landing-foreground-surface{padding:0;min-height:0;width:100%;max-width:100%;display:block;background:none;border-radius:0}.landing-header{margin-bottom:clamp(20px,4vmin,36px);text-align:center}.landing-title{font-size:clamp(2.2rem,6.8vmin,4.4rem);line-height:1.02;letter-spacing:-.035em}.landing-tagline{margin:clamp(10px,1.8vmin,16px) 0 0;font-size:clamp(1.05rem,2.6vmin,1.65rem);color:#94a3b8;font-weight:600}.landing-upload-stack{display:flex;flex-direction:column;flex:1;justify-content:center;gap:0;pointer-events:none}.landing-upload-heading{margin:0 0 10px;font-size:1rem;font-weight:800;letter-spacing:-.02em;color:#f1f5f9}.landing-upload-hint{margin:0 0 14px;color:#94a3b8;font-size:.9rem}.landing-drop.drop-zone{margin:0;min-height:clamp(300px,46vh,640px);padding:clamp(24px,4vmin,42px);border-color:#38bdf88c;background:#38bdf817;pointer-events:auto}.landing-drop.drop-zone.is-dragging{border-color:#38bdf8;background:#38bdf829}.landing-drop .drop-zone-empty-text{font-size:clamp(1.05rem,2.1vmin,1.55rem)}.landing-drop .drop-zone-empty-or{font-size:clamp(.9rem,1.2vmin,1.08rem)}.landing-drop .drop-zone-upload-icon{margin-bottom:clamp(8px,1.2vmin,14px);color:#38bdf8}.landing-drop .drop-zone-upload-icon :deep(.svgrepo-inline-svg){width:clamp(3rem,4.6vmin,4.6rem);height:clamp(3rem,4.6vmin,4.6rem)}.landing-drop .drop-zone-paste-action{border-color:#38bdf88c;background:#38bdf821;color:#e0f2fe;font-size:clamp(.9rem,1.3vmin,1.08rem)}.landing-drop .drop-zone-paste-action:hover:not(:disabled),.landing-drop .drop-zone-paste-action:focus-visible{border-color:#38bdf8;background:#38bdf838}.landing-drop .drop-zone-url-form{margin-top:clamp(6px,1.2vmin,12px)}.landing-drop .drop-zone-url-input{border-color:#38bdf866;background:#0f172ac7;font-size:clamp(.88rem,1.15vmin,1rem)}.landing-drop .drop-zone-url-input:focus{border-color:#38bdf8;box-shadow:0 0 0 3px #38bdf82e}.landing-drop .drop-zone-url-action{border-color:#38bdf88c;background:#38bdf821;color:#e0f2fe;font-size:clamp(.88rem,1.15vmin,1rem)}.landing-drop .drop-zone-url-action:hover:not(:disabled),.landing-drop .drop-zone-url-action:focus-visible{border-color:#38bdf8;background:#38bdf838}.landing-muted{margin:0;color:#64748b;font-size:.92rem}.landing-community-inline{margin-top:14px;text-wrap:balance}.landing-unsupported-error{margin-top:12px}@media(max-height:520px){.landing-foreground-surface{padding-top:10px;padding-bottom:12px;border-radius:0 0 14px 14px}.landing-header{margin-bottom:10px}.landing-upload-hint{margin-bottom:8px;font-size:.82rem}.landing-community-inline{margin-top:8px;font-size:.82rem}}.mosaic-thumb-link{display:block;width:min(100%,14rem);aspect-ratio:1 / 1;margin-inline:auto;border-radius:10px;border:2px solid rgba(148,163,184,.25);background:#00000040;overflow:hidden;text-decoration:none;color:inherit;box-sizing:border-box;transition:border-color .15s ease,border-width .15s ease}.mosaic-thumb-link--sidebar{width:100%;max-width:none;margin-inline:0}.mosaic-thumb-link--current{border-color:#38bdf8cc}.mosaic-thumb-link .mosaic-canvas-thumb-host,.mosaic-thumb-skeleton{width:100%;height:100%;display:block}.mosaic-canvas-thumb-host{width:100%;height:100%;min-height:0}.mosaic-canvas-thumb{display:block;width:100%;height:100%;vertical-align:top}.mosaic-thumb-skeleton{background:linear-gradient(110deg,#33415559,#47556973,#33415559 90%);background-size:200% 100%;animation:mosaic-thumb-shimmer 1.2s ease-in-out infinite}@keyframes mosaic-thumb-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@media(prefers-reduced-motion:reduce){.mosaic-thumb-skeleton{animation:none;background:#33415566}}.mosaic-thumb-link:hover{border-width:4px;border-color:#38bdf8a6}.mosaic-thumb-link:focus-visible{outline:3px solid #38bdf8;outline-offset:2px}.mosaic-thumb-link--current:hover{border-color:#38bdf8e6}.landing-mosaic-cell .mosaic-thumb-link{border-radius:3px;border:1px solid rgba(51,65,85,.65);background:#0b1220;position:relative;z-index:0;transition:transform .15s ease,border-color .15s ease,border-width .15s ease,box-shadow .15s ease,filter .15s ease}.landing-mosaic-cell .mosaic-thumb-link:hover{z-index:30;transform:translateY(-10px) scale(1.085);border-width:4px;border-color:#38bdf8a6;box-shadow:0 18px 36px #0206179e;filter:brightness(1.05)}.landing-mosaic-cell .mosaic-thumb-link:focus-visible{outline:3px solid #38bdf8;outline-offset:2px}.share-modal-root{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:clamp(12px,3vw,28px);box-sizing:border-box}.share-modal-backdrop{position:absolute;inset:0;cursor:pointer;background:#070c14b8;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.share-modal-dialog{position:relative;z-index:1;width:min(1160px,100%);max-height:min(90dvh,920px);display:flex;flex-direction:column;min-height:0;overflow:hidden;border-radius:20px;background:#111827;border:1px solid rgba(255,255,255,.08);box-shadow:0 24px 80px #00000073,inset 0 1px #ffffff0a}.share-modal-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:14px clamp(14px,3vw,18px);flex-shrink:0;border-bottom:1px solid rgba(148,163,184,.12);background:#0f172a8c}.share-modal-nav{display:flex;gap:10px;flex-shrink:0}.share-modal-close,.share-modal-nav-btn{flex-shrink:0;appearance:none;border-radius:10px;border:1px solid rgba(255,255,255,.12);background:#1e293be6;color:#e2e8f0;font-weight:700;font-size:.88rem;padding:8px 16px;cursor:pointer}.share-modal-close:hover,.share-modal-nav-btn:not(:disabled):hover{background:#334155f2}.share-modal-nav-btn:disabled{opacity:.38;cursor:not-allowed}.share-modal-close{margin-left:auto}.share-modal-error{margin:12px clamp(14px,3vw,18px) 0;flex-shrink:0}.share-modal-body{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;padding:clamp(12px,2vw,16px);flex:1;min-height:0;overflow:auto}@media(min-width:901px){.share-modal-body{grid-template-columns:minmax(0,1fr) minmax(260px,320px);align-items:stretch;overflow:hidden;padding-right:clamp(12px,2vw,16px)}}.share-modal-stage{min-width:0;min-height:min(52dvh,480px);display:flex;flex-direction:column}@media(min-width:901px){.share-modal-stage{min-height:min(360px,42dvh)}}.share-modal-stage .mosaic-workspace--stage{flex:1;min-height:0;display:flex;flex-direction:column}.share-modal-stage .mosaic-workspace--stage .canvas-shell{flex:1;min-height:0}.share-modal-dialog .right-panel{max-height:none;min-height:0}@media(min-width:901px){.share-modal-dialog .right-panel{overflow:hidden auto;max-height:100%}}
