@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Noto+Sans+KR:wght@400;500;600;700;800&family=Playfair+Display:ital,wght@0,500;1,500&display=swap');

/* All five designs share the same interaction order inside the right panel. */
*{box-sizing:border-box}
[hidden]{display:none!important}
:root{font-family:'DM Sans','Noto Sans KR',sans-serif;color-scheme:light;--bg:#edf0ef;--panel:#fff;--ink:#232b2b;--muted:#6c7774;--line:#dce2df;--accent:#c94d38;--tint:#fbe9e3;--on-accent:#fff;--card:#fff;--radius:9px;--panel-width:510px}
body{margin:0;background:var(--bg);color:var(--ink)}
button,a{-webkit-tap-highlight-color:transparent}
button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}
a{color:inherit;text-decoration:none}
button:disabled{opacity:.3;cursor:default}
button:focus-visible,a:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.comparison{height:60px;padding:0 24px;display:flex;align-items:center;gap:24px;background:#191e20;color:#e2e7e7;position:relative;z-index:50;font-size:11px}
.comparison-title{font-size:9px;letter-spacing:.13em;white-space:nowrap}
.comparison-title b{margin-left:8px;color:#969f9f;font-weight:400}
.design-options{display:flex;align-items:center;gap:4px;margin:auto}
.design-options button{padding:10px 15px;border-radius:5px;color:#aeb6b7;white-space:nowrap;font-size:11px}
.design-options b{font-size:10px;margin-right:7px;color:#778484}
.design-options button[aria-pressed=true]{background:#edf1ef;color:#172422}
.design-options button[aria-pressed=true] b{color:#546963}
.design-options button:hover{box-shadow:inset 0 0 0 1px #6d7a78}
.original-link{white-space:nowrap;font-size:10px;color:#abb7b6}
.layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(410px,var(--panel-width));min-height:calc(100dvh - 104px);max-width:1800px;margin:0 auto}
.preview-pane{min-width:0;display:flex;flex-direction:column;padding:32px clamp(28px,4.5vw,76px) 24px;position:relative}
.intro{width:100%;max-width:640px;margin:0 auto 22px}
.brand{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:700}
.brand small{display:block;font-size:7px;font-weight:500;letter-spacing:.2em;color:var(--muted);margin-top:3px}
.brand-emblem{display:grid;place-items:center;border:1px solid currentColor;width:31px;height:31px;border-radius:50%;font:italic 15px 'Playfair Display',serif}
.headline-row{display:flex;justify-content:space-between;align-items:flex-end;margin-top:24px}
h1{font-size:clamp(29px,2.7vw,44px);line-height:1.25;letter-spacing:-.065em;margin:0;font-weight:800}
h1 span{color:var(--accent)}
.edition{font-size:8px;line-height:1.65;letter-spacing:.1em;color:var(--muted);text-align:right;padding-bottom:5px}
.edition b{display:block;font-family:'Playfair Display',serif;font-size:22px;font-weight:500;margin-top:5px;color:var(--ink)}
.artboard{width:min(100%,620px,max(290px,calc(100dvh - 340px)));margin:auto;position:relative;padding:12px;background:#fff;box-shadow:0 18px 40px -28px #38443e70;border:1px solid var(--line)}
.canvas-wrap{width:100%;aspect-ratio:1}
.character-canvas{width:100%;height:100%;position:relative;overflow:hidden;background:white;touch-action:none}
.character-canvas img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none;user-select:none}
.empty-canvas{display:grid;height:100%;place-items:center;font-size:13px;color:#75817c}
.artboard-corner{display:none}
.art-caption{display:flex;justify-content:space-between;width:100%;max-width:min(620px,max(290px,calc(100dvh - 340px)));margin:19px auto 0;font-size:10px;color:var(--muted)}
.art-caption>span{display:flex;align-items:center;gap:7px}
.art-caption>span:last-child{font-size:8px;letter-spacing:.15em}
.art-caption i{width:5px;height:5px;border-radius:50%;background:var(--accent)}
.editor-pane{min-width:0;background:var(--panel);padding:28px 26px 18px;display:flex;flex-direction:column;height:calc(100dvh - 104px);min-height:580px;border-left:1px solid var(--line);position:sticky;top:0}
.editor-head{margin-bottom:22px;flex-shrink:0}
.eyebrow-label{font-size:9px;font-weight:600;letter-spacing:.17em;color:var(--accent)}
h2{font-size:19px;letter-spacing:-.045em;margin:7px 0 0}
.editor-navigation{flex-shrink:0}
.category-nav{margin:0 0 12px}
.group-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
.group-tab{min-width:0;min-height:50px;display:flex;align-items:center;justify-content:center;gap:7px;padding:7px 6px;font-size:12px;font-weight:600;border:1px solid var(--line);border-radius:var(--radius);color:var(--muted);position:relative;white-space:nowrap}
.group-tab svg{width:18px;height:18px}
.group-tab:hover{background:var(--bg);color:var(--ink)}
.group-tab.active{background:var(--tint);color:var(--accent);border-color:var(--accent)}
.subcategory-scroll{display:flex;flex-wrap:wrap;gap:6px;padding-bottom:16px;border-bottom:1px solid var(--line)}
.subcategory-tab{display:flex;align-items:center;justify-content:center;gap:6px;min-height:38px;padding:8px 10px;border:1px solid var(--line);border-radius:5px;font-size:12px;font-weight:600;color:var(--muted)}
.subcategory-tab small{font-size:9px;font-weight:400;opacity:.7}
.subcategory-tab{transition:background-color .18s ease-out,color .18s ease-out,border-color .18s ease-out}
.subcategory-tab.active{background:var(--ink);color:var(--panel);border-color:var(--ink)}
.subcategory-tab:hover:not(.active){border-color:var(--accent);color:var(--accent)}
.selection-summary{display:flex;justify-content:space-between;align-items:center;margin:18px 0 14px;flex-shrink:0}
#categoryKicker{font-size:8px;letter-spacing:.15em;color:var(--muted)}
h3{font-size:20px;letter-spacing:-.04em;margin:4px 0 0}
.remove-button{font-size:11px;color:var(--muted);border-bottom:1px solid var(--line);padding:6px 0}
.palette-section{display:flex;gap:15px;align-items:center;margin-bottom:18px;flex-shrink:0}
.section-label-row{display:flex;gap:7px;font-size:10px;color:var(--muted)}
#colorName{display:none}
.color-palette{display:flex;flex-wrap:wrap;gap:10px}
.color-swatch{width:24px;height:24px;border:3px solid var(--panel);background:var(--swatch);border-radius:50%;box-shadow:0 0 0 1px var(--line)}
.color-swatch.active{box-shadow:0 0 0 2px var(--accent)}
.parts-scroll{flex:1;min-height:120px;overflow:auto;padding:3px 6px 8px 3px;margin-left:-3px;scrollbar-width:thin;scrollbar-color:var(--line) transparent}
.parts-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;align-content:start}
.part-card{aspect-ratio:1;position:relative;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:var(--card);transition:box-shadow .15s,transform .15s}
.part-card:hover{transform:translateY(-2px);border-color:var(--accent)}
.part-card.active{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}
.part-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.layer-thumb.upper{z-index:2}
.part-card-number{position:absolute;top:7px;left:8px;color:#65716d;font-size:9px;z-index:3;background:#ffffffd9;padding:2px 3px;border-radius:3px}
.part-card-check{position:absolute;bottom:7px;right:7px;display:none;width:19px;height:19px;place-items:center;background:var(--accent);color:var(--on-accent);font-size:10px;border-radius:50%;z-index:3}
.part-card.active .part-card-check{display:grid}
.position-panel{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-top:1px solid var(--line);gap:8px;flex-shrink:0}
.position-panel.iris-position-panel{padding:8px 0;margin-bottom:10px;border-bottom:1px solid var(--line)}
.position-copy{display:grid;gap:5px}
.position-copy strong{font-size:11px}
.position-copy small{font-size:9px;color:var(--muted)}
.nudge-grid{display:grid;grid-template-columns:repeat(3,25px);grid-template-rows:repeat(3,23px);gap:2px}
.nudge-grid button{background:var(--bg);border-radius:3px}
.nudge-grid button:hover{background:var(--tint);color:var(--accent)}
[data-nudge=up]{grid-area:1/2}[data-nudge=left]{grid-area:2/1}[data-nudge=reset]{grid-area:2/2}[data-nudge=right]{grid-area:2/3}[data-nudge=down]{grid-area:3/2}
.bottom-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding-top:16px;margin-top:12px;border-top:1px solid var(--line);flex-shrink:0}
.secondary-actions{display:flex;gap:3px;align-items:center}
.secondary-actions button{display:flex;align-items:center;gap:5px;padding:9px 6px;font-size:10px;border-radius:5px;color:var(--muted);min-height:40px}
.secondary-actions button:hover:not(:disabled){color:var(--ink);background:var(--bg)}
.secondary-actions svg{width:16px;height:16px}
.save-button{display:flex;align-items:center;justify-content:center;gap:14px;padding:13px 18px;border-radius:7px;background:var(--accent);color:var(--on-accent);font-size:12px;font-weight:600;min-height:44px}
.study-note{min-height:44px;background:#191e20;color:#aeb8b8;padding:10px 25px;display:flex;gap:22px;align-items:center;font-size:10px}
.study-note>span:first-child{color:#e6ebea;font-size:9px;letter-spacing:.1em}
.study-note p{margin:0;font-size:10px}
.note-tag{margin-left:auto;font-size:8px;letter-spacing:.12em;color:#6f8080;white-space:nowrap}
.toast{position:fixed;bottom:65px;left:50%;transform:translate(-50%,12px);padding:13px 22px;background:#172322;color:white;font-size:12px;border-radius:8px;z-index:100;opacity:0;pointer-events:none;transition:.2s}
.toast.show{opacity:1;transform:translate(-50%,0)}

/* 01 — approved studio palette */
[data-design=studio] .group-tab.active{background:var(--tint)}
[data-design=studio] .parts-grid{grid-template-columns:repeat(3,minmax(0,1fr))}

/* 02 — precision: flat, slate-blue, denser */
body[data-design=precision]{--bg:#e7ebee;--panel:#fafbfc;--ink:#253441;--muted:#6c7a85;--line:#d3dce2;--accent:#466580;--tint:#e1e8ee;--radius:3px;--panel-width:540px}
[data-design=precision] .editor-head{padding-bottom:17px;border-bottom:1px solid var(--line)}
[data-design=precision] .group-tabs{gap:0;border-bottom:1px solid var(--line)}
[data-design=precision] .group-tab{flex-direction:row;gap:7px;border:0;border-radius:0;min-height:48px}
[data-design=precision] .group-tab svg{width:18px;height:18px}
[data-design=precision] .group-tab.active{background:none;box-shadow:inset 0 -3px var(--accent);color:var(--ink)}
[data-design=precision] .subcategory-scroll{padding:0;border:0;gap:4px;background:#e9eef2}
[data-design=precision] .subcategory-tab{flex:1;border:0;border-radius:0;padding:9px 7px;font-size:11px}
[data-design=precision] .subcategory-tab.active{background:var(--ink);color:#fff}
[data-design=precision] .artboard{padding:0;border:1px solid #d4dde2;box-shadow:0 8px 30px #344b6010}
[data-design=precision] .save-button{border-radius:3px}
[data-design=precision] .part-card.active{box-shadow:0 0 0 1px var(--accent)}

/* 03 — linen: warm stone surfaces, no magazine typography */
body[data-design=linen]{--bg:#eeece7;--panel:#faf9f6;--ink:#39362f;--muted:#827a70;--line:#ded9d0;--accent:#896c50;--tint:#ebe3d8;--radius:10px;--panel-width:530px}
[data-design=linen] .layout{padding:22px;gap:22px}
[data-design=linen] .preview-pane{padding:14px 32px 22px}
[data-design=linen] .editor-pane{border:1px solid var(--line);border-radius:16px;height:calc(100dvh - 148px);padding:25px 24px 18px}
[data-design=linen] .editor-navigation{background:#eeebe5;border-radius:11px;padding:7px 9px 0}
[data-design=linen] .group-tabs{gap:3px}
[data-design=linen] .group-tab{border:0;min-height:50px}
[data-design=linen] .group-tab.active{background:var(--panel);color:var(--ink);box-shadow:0 2px 5px #42382b0c}
[data-design=linen] .category-nav{margin-bottom:7px}
[data-design=linen] .subcategory-scroll{border:0;gap:3px;padding:0}
[data-design=linen] .subcategory-tab{flex:1;border:0;background:none;border-radius:0;padding:10px 3px;font-size:11px}
[data-design=linen] .subcategory-tab.active{background:none;color:var(--accent);box-shadow:inset 0 -3px var(--accent)}
[data-design=linen] .artboard{border-radius:4px;border:0;box-shadow:0 16px 35px -20px #51412e35}
[data-design=linen] .save-button{background:var(--ink);border-radius:8px}
[data-design=linen] .part-card.active{box-shadow:0 0 0 1px var(--accent)}

/* 04 — dark: related neutral surfaces and quieter thumbnail contrast */
body[data-design=nocturne]{color-scheme:dark;--bg:#252a2c;--panel:#2e3436;--ink:#e5e8e7;--muted:#a7b0ad;--line:#454e4c;--accent:#aec5b8;--tint:#404e47;--on-accent:#24332b;--card:#bdc4c1;--radius:7px}
[data-design=nocturne] .editor-pane{border-left-color:#414a47}
[data-design=nocturne] .group-tab{border-color:transparent;background:#353d3c}
[data-design=nocturne] .group-tab.active{background:var(--tint);border-color:#829e8e;color:#deebe3}
[data-design=nocturne] .subcategory-tab{border-color:transparent}
[data-design=nocturne] .subcategory-tab.active{background:#475b50;color:#e2eee6;border-color:#718b7c}
[data-design=nocturne] .artboard{background:#444d49;padding:8px;border-color:#54635b;box-shadow:0 18px 40px -25px #0008}
[data-design=nocturne] .part-card{border-color:#8c9b94}
[data-design=nocturne] .part-card.active{box-shadow:0 0 0 2px var(--accent)}
[data-design=nocturne] .part-card-number{background:#35423c;color:#e5ece8}
[data-design=nocturne] .save-button{background:#acc3b5}
[data-design=nocturne] .eyebrow-label{color:#a7b0ad}

/* 05 — mineral: a contained graphite and forest-green tool panel */
body[data-design=mineral]{--bg:#e7ebe8;--panel:#f5f7f4;--ink:#263d34;--muted:#718078;--line:#cfd8d0;--accent:#365e4b;--tint:#dde7dd;--radius:6px;--panel-width:550px}
[data-design=mineral] .layout{padding:22px;gap:14px}
[data-design=mineral] .preview-pane{padding:14px 32px 22px}
[data-design=mineral] .editor-pane{height:calc(100dvh - 148px);border:1px solid var(--line);border-radius:10px;padding:26px 24px 18px;box-shadow:0 12px 32px -24px #20392a40}
[data-design=mineral] .editor-navigation{border:1px solid var(--line);border-radius:7px;overflow:hidden}
[data-design=mineral] .category-nav{margin:0;background:#e4eae3;padding:5px}
[data-design=mineral] .group-tabs{gap:2px}
[data-design=mineral] .group-tab{min-height:48px;border:0;border-radius:4px;gap:6px;font-size:12px}
[data-design=mineral] .group-tab svg{width:17px;height:17px}
[data-design=mineral] .group-tab.active{background:var(--accent);color:#fff}
[data-design=mineral] .subcategory-scroll{border:0;padding:7px;gap:4px}
[data-design=mineral] .subcategory-tab{flex:1;border:0;border-radius:3px;padding:7px 3px;font-size:11px;min-height:36px}
[data-design=mineral] .subcategory-tab.active{background:var(--tint);color:var(--ink)}
[data-design=mineral] .artboard{padding:0;border:8px solid #f7f9f6;border-radius:4px;box-shadow:0 15px 35px -22px #293b3060}
[data-design=mineral] .part-card{background:#fcfdfb}
[data-design=mineral] .part-card.active{box-shadow:0 0 0 1px var(--accent)}
[data-design=mineral] .save-button{border-radius:5px}
[data-design=mineral] .bottom-actions{background:#e7ede6;padding:12px;border:0;margin:16px -24px -18px;border-radius:0 0 10px 10px}

/* Standalone app — Precision is the approved working direction. */
.standalone .layout{min-height:100dvh}
.standalone .editor-pane{height:100dvh}
.standalone .brand-row{display:flex;align-items:center;justify-content:space-between;gap:20px}
.standalone .archive-link{padding:7px 0;border-bottom:1px solid transparent;color:var(--muted);font-size:9px;letter-spacing:.08em;white-space:nowrap}
.standalone .archive-link:hover{border-bottom-color:var(--accent);color:var(--accent)}
.collection-actions{display:flex;align-items:center;gap:7px}
.collection-button,.archive-work-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:10px 9px;border:1px solid var(--line);border-radius:3px;font-size:11px;white-space:nowrap}
.collection-button{color:var(--muted)}
.collection-button svg{width:16px;height:16px}
.collection-button span{font-size:9px;color:var(--accent)}
.archive-work-button{border-color:var(--accent);color:var(--accent);font-weight:600}
.collection-button:hover,.archive-work-button:hover{background:var(--tint)}
.collection-actions .save-button{padding:11px 12px;gap:7px;font-size:11px;white-space:nowrap}
.collection-dialog{color:var(--ink);background:rgba(250,251,252,.82);border:1px solid rgba(255,255,255,.8);border-radius:8px;padding:25px;max-height:calc(100dvh - 40px);box-shadow:0 24px 80px #18263335,inset 0 1px 0 #fff9;backdrop-filter:blur(22px) saturate(1.2);-webkit-backdrop-filter:blur(22px) saturate(1.2)}
.collection-dialog::backdrop{background:rgba(37,52,65,.25);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}
.gallery-dialog{width:min(850px,calc(100% - 36px))}
.save-work-dialog{width:min(430px,calc(100% - 36px))}
.collection-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}
.collection-dialog h2{font-size:23px}
.collection-dialog-head{position:relative;padding-right:24px}
.dialog-close{position:absolute;top:-12px;right:-12px;width:32px;height:32px;min-width:32px;min-height:32px;padding:0;font-size:27px;line-height:1;color:var(--muted);border:0;background:transparent;border-radius:3px}
.dialog-close:hover{background:var(--tint)}
.collection-help{font-size:12px;line-height:1.7;color:var(--muted);margin:12px 0 20px}
.work-name-label{display:block;font-size:12px;font-weight:600;margin-bottom:8px}
#workName{width:100%;padding:12px;border:1px solid var(--line);border-radius:3px;background:var(--card);color:var(--ink);font:inherit;font-size:14px}
#workName:focus{outline:2px solid var(--accent);outline-offset:2px}
.save-work-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px}
.collection-error{font-size:12px;line-height:1.6;color:#a13e3e}
.collection-status{font-size:12px;color:var(--muted);line-height:1.7;margin-bottom:14px}
.collection-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.collection-card{min-width:0;padding:10px;background:rgba(255,255,255,.7);border:1px solid rgba(211,220,226,.8);border-radius:3px}
.collection-card>img{display:block;width:100%;aspect-ratio:1;object-fit:contain;background:#fff;margin-bottom:12px}
.collection-card-number{font-size:10px;letter-spacing:.06em;color:var(--accent)}
.collection-card h3{font-size:15px;line-height:1.5;overflow-wrap:anywhere;margin:5px 0}
.collection-card time{font-size:10px;color:var(--muted)}
.collection-card-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:24px}
.collection-delete{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;flex:0 0 24px;padding:0;border:0;background:transparent;color:var(--muted);border-radius:3px}
.collection-delete svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.collection-delete:hover:not(:disabled){background:var(--tint);color:var(--ink)}
.collection-delete:focus-visible,.dialog-close:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.collection-card-actions{display:flex;gap:7px;border-top:0;margin-top:6px;padding-top:0}
.collection-card-actions button{flex:1;font-size:11px;line-height:18px;padding:4px 3px;min-height:28px;border:1px solid var(--line);border-radius:3px}
.collection-card-actions button:first-child{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.collection-card-actions button:hover:not(:disabled){filter:brightness(.94)}
@media(max-width:600px){
  .collection-dialog{padding:18px}
  .collection-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .collection-dialog h2{font-size:21px}
  .standalone .bottom-actions{gap:4px}
  .collection-actions{margin-left:auto;gap:5px}
  .collection-actions .save-button,.collection-button,.archive-work-button{font-size:10px;padding:10px 8px}
}

@media(min-width:901px) and (max-height:850px){
  .editor-pane{padding-top:20px}
  .editor-head{margin-bottom:14px}
  .group-tab{min-height:48px;gap:6px}
  .category-nav{margin-bottom:9px}
  .subcategory-scroll{padding-bottom:11px}
  .selection-summary{margin:10px 0}
  #categoryKicker{display:none}
  .palette-section{margin-bottom:12px}
  .bottom-actions{margin-top:9px;padding-top:10px}
  [data-design=studio] .parts-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  [data-design=linen] .group-tab{min-height:48px}
  [data-design=linen] .editor-pane,[data-design=mineral] .editor-pane{padding-top:20px;min-height:555px}
}
@media(min-width:1600px){
  :root{--panel-width:560px}
  .editor-pane{padding:36px 32px 24px}
  .preview-pane{padding-top:38px}
  .parts-grid{gap:13px}
}
@media(min-width:901px) and (max-width:1150px){
  .layout{grid-template-columns:minmax(0,1fr) minmax(410px,46%)}
  .preview-pane{padding:28px 25px 20px}
  .editor-pane{padding-left:20px;padding-right:20px}
  .edition{display:none}
  .comparison{gap:12px;padding:0 16px}
  .comparison-title b{display:none}
  .design-options button{padding:10px}
  [data-design=linen] .layout,[data-design=mineral] .layout{padding:16px;gap:10px}
  [data-design=linen] .preview-pane,[data-design=mineral] .preview-pane{padding:14px 12px 20px}
}
@media(max-width:900px){
  .comparison{height:auto;min-height:78px;padding:10px 12px;flex-wrap:wrap;gap:7px}
  .comparison-title{order:0;font-size:8px}
  .original-link{order:1;margin-left:auto}
  .design-options{order:2;width:100%;margin:0;justify-content:space-between;gap:3px}
  .design-options button{padding:9px 5px;flex:1;font-size:10px}
  .design-options b{font-size:8px;margin-right:4px}
  .layout,[data-design=linen] .layout,[data-design=mineral] .layout{grid-template-columns:minmax(0,1fr);padding:0;gap:0;min-height:0}
  .preview-pane,[data-design=linen] .preview-pane,[data-design=mineral] .preview-pane{padding:23px 22px 24px}
  .intro{max-width:520px;margin-bottom:20px}
  .brand{font-size:12px}
  .brand small{font-size:6px}
  .headline-row{margin-top:17px}
  h1{font-size:29px}
  .edition{font-size:7px}
  .edition b{font-size:18px}
  .artboard{width:min(100%,390px,max(280px,calc(100dvh - 330px)));max-width:none}
  .art-caption{max-width:min(390px,max(280px,calc(100dvh - 330px)));font-size:9px}
  .editor-pane,[data-design=linen] .editor-pane,[data-design=mineral] .editor-pane{position:relative;top:auto;border:0;border-top:1px solid var(--line);border-radius:0;box-shadow:none;height:auto;min-height:0;padding:23px 20px 0}
  .editor-head{margin-bottom:20px}
  .editor-navigation{position:sticky;top:0;z-index:30;background:var(--panel);padding-top:8px}
  .group-tab{min-height:48px;font-size:11px;gap:5px;padding:6px 4px}
  .group-tab svg{width:17px;height:17px}
  .subcategory-tab{font-size:11px;padding:8px}
  .parts-scroll{overflow:visible;min-height:0;flex:none;padding-bottom:20px}
  .parts-grid,[data-design=studio] .parts-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
  .bottom-actions{position:sticky;bottom:0;z-index:35;padding:13px 0 calc(13px + env(safe-area-inset-bottom));background:var(--panel);margin:0}
  .secondary-actions button{min-height:44px}
  .study-note{flex-wrap:wrap;padding:14px 20px;gap:7px}
  .study-note p{width:100%;font-size:10px;line-height:1.7}
  .note-tag{display:none}
  .position-copy small{font-size:10px}
  [data-design=precision] .group-tab{min-height:48px;gap:5px}
  [data-design=mineral] .group-tab{font-size:11px;gap:5px}
  [data-design=mineral] .bottom-actions{margin:0 -20px;padding:12px 20px calc(12px + env(safe-area-inset-bottom));border-radius:0}
  [data-design=linen] .editor-navigation{border-radius:0}
  [data-design=mineral] .editor-navigation{padding-top:0}

  /* The working page follows Picrew's compact, at-a-glance mobile rhythm. */
  .standalone .preview-pane{padding:16px 18px 18px}
  .standalone .intro{margin-bottom:13px}
  .standalone .brand-row{gap:12px}
  .standalone .archive-link{font-size:8px}
  .standalone .headline-row{margin-top:12px}
  .standalone h1{font-size:25px;line-height:1.2}
  .standalone .edition{display:none}
  .standalone .artboard{width:min(100%,340px)}
  .standalone .art-caption{max-width:340px;margin-top:10px}
  .standalone .editor-pane{height:auto;padding:15px 14px 0}
  .standalone .editor-head{margin-bottom:9px;padding-bottom:10px}
  .standalone .editor-head .eyebrow-label{display:none}
  .standalone h2{margin:0;font-size:17px}
  .standalone .editor-navigation{padding-top:0}
  .standalone .category-nav{margin-bottom:5px}
  .standalone .group-tab{min-height:45px;padding:5px 3px;font-size:11px}
  .standalone .subcategory-tab{min-height:34px;padding:7px 5px;font-size:10px}
  .standalone .selection-summary{margin:13px 0 10px}
  .standalone h3{font-size:18px}
  .standalone .palette-section{margin-bottom:13px}
  .standalone .color-palette{gap:8px}
  .standalone .color-swatch{width:22px;height:22px}
  .standalone .parts-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}
  .standalone .parts-scroll{padding-bottom:12px}
}
@media(max-width:430px){
  .parts-grid,[data-design=studio] .parts-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .design-options button{font-size:9px}
  .design-options b{display:block;margin:0 0 2px}
  .comparison{padding:8px 10px}
  .save-button{gap:10px;padding:13px}
  .brand small{letter-spacing:.13em}
  .edition{display:none}
  [data-design=linen] .subcategory-tab,[data-design=mineral] .subcategory-tab,[data-design=precision] .subcategory-tab{flex:auto}
  .standalone .preview-pane{padding:13px 12px 15px}
  .standalone .brand small{display:none}
  .standalone .archive-link{letter-spacing:0}
  .standalone h1{font-size:23px}
  .standalone .artboard{width:min(100%,300px)}
  .standalone .art-caption{max-width:300px}
  .standalone .editor-pane{padding-left:10px;padding-right:10px}
  .standalone .editor-head{display:none}
  .standalone .group-tab{flex-direction:column;gap:2px;min-height:51px;font-size:10px}
  .standalone .group-tab svg{width:16px;height:16px}
  .standalone .parts-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;scroll-behavior:auto!important}}
.character-switch { display:flex; gap:4px; width:fit-content; padding:4px; margin:16px 0 12px; background:#f8fafce6; border:1px solid #afc1cf; border-radius:6px; box-shadow:0 3px 10px #344b6010; }
.character-switch button { border:0; background:transparent; color:#40596d; min-width:78px; min-height:42px; padding:9px 22px; font:inherit; font-size:14px; font-weight:700; cursor:pointer; border-radius:4px; transition:background .15s,color .15s; }
.character-switch button:hover:not(.active) { background:#e7ebee; color:#243b4e; }
.character-switch button.active { background:#456783; color:#fff; box-shadow:0 2px 5px #344b6026; }
.character-switch button:focus-visible { outline:2px solid #456783; outline-offset:2px; }
[data-character-type=male] .subcategory-tab { flex:0 0 auto; white-space:nowrap; min-width:76px; }
.variation-swatch { font-size:10px; display:grid; place-items:center; color:var(--ink); }
.background-color-controls{padding:16px 0 10px}
.free-color-row{display:flex;align-items:center;gap:22px}
.hue-wheel{width:176px;height:176px;flex:none;position:relative;border-radius:50%;background:conic-gradient(#f00,#ff0,#0f0,#0ff,#00f,#f0f,#f00);touch-action:none;cursor:crosshair;box-shadow:inset 0 0 0 1px #00000016}
.hue-wheel:before{content:"";position:absolute;inset:18px;border-radius:50%;background:var(--panel)}
.sv-square{position:absolute;inset:33px;background-image:linear-gradient(to top,#000,transparent),linear-gradient(to right,#fff,transparent);touch-action:none;border:1px solid #ffffffb0;cursor:crosshair}
.hue-marker,.sv-marker{position:absolute;width:12px;height:12px;border:2px solid #fff;box-shadow:0 0 0 1px #243b4e;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none}
.hue-marker{z-index:2}.free-color-copy{display:grid;gap:10px;min-width:0}.free-color-copy strong{font-size:13px}.free-color-copy small{font-size:10px;color:var(--muted);line-height:1.7}.free-color-copy label{display:flex;align-items:center;gap:8px;font-size:9px;letter-spacing:.08em;color:var(--muted)}
.color-hex{width:94px;padding:8px;border:1px solid var(--line);background:var(--card);color:var(--ink);font:12px monospace;border-radius:3px}
.chosen-color{width:34px;height:22px;border:1px solid var(--line);border-radius:3px}.original-color{text-align:left;font-size:10px;color:var(--muted);padding:0}.preset-color-label{margin:20px 0 10px;font-size:10px;color:var(--muted)}.preset-colors{display:flex;flex-wrap:wrap;gap:10px}.preset-colors button{width:28px;height:28px;border-radius:3px;background:var(--chip);border:1px solid #b7c4cf}.preset-colors button.active{outline:2px solid var(--accent);outline-offset:3px}
.none-card svg{position:absolute;left:50%;top:50%;width:30px;height:30px;transform:translate(-50%,-50%);color:var(--muted)}
.palette-section[aria-disabled="true"] button{opacity:.45;cursor:not-allowed}
#partsGrid.geometry-grid{grid-template-columns:repeat(var(--geometry-columns),minmax(0,1fr))}
.detail-grid .part-card:not(.none-card){background:#e2eaf0}
.tear-grid .part-card:not(.none-card){background:#bdccd8}
.eye-light-grid .part-card:not(.none-card){background:#8595a3}
.multi-select-hint{display:block;margin-top:7px;font-size:10px;color:var(--muted)}
.part-card canvas.layer-thumb{position:absolute;object-fit:contain}
.part-base-color,.part-picker-toggle{font-size:10px;min-height:28px;padding:4px 8px;border:1px solid var(--line);border-radius:3px;color:var(--ink);background:var(--panel)}
.part-picker-toggle{display:flex;align-items:center;gap:5px}.part-picker-toggle i{font-style:normal;color:var(--accent);font-size:16px;line-height:1}
.sclera-picker-toggle i{display:block;width:13px;height:13px;border:1px solid var(--line);border-radius:50%}
.part-color-popover{position:fixed;inset:auto;margin:0;padding:14px;border:1px solid #afc1cf;border-radius:6px;background:rgb(248 250 252 / 85%);color:#243746;box-shadow:0 12px 34px #243b4e30;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);overflow:auto;max-height:calc(100dvh - 24px)}
.hair-gradient-controls{margin-top:12px;padding-top:10px;border-top:1px solid var(--line);font-size:11px}.hair-gradient-controls[hidden],.hair-gradient-stops[hidden]{display:none}.hair-gradient-toggle{display:flex;align-items:center;gap:6px}.hair-gradient-toggle input{accent-color:var(--accent)}.hair-gradient-stops{display:flex;gap:6px;margin-top:8px}.hair-gradient-stops button{display:flex;align-items:center;gap:6px;flex:1;padding:5px 7px;min-height:28px;border:1px solid var(--line);background:transparent;color:var(--ink);font:inherit;font-size:11px;line-height:1.3;cursor:pointer}.hair-gradient-stops button[aria-pressed="true"]{border-color:var(--accent);background:rgb(232 238 243 / 65%)}.hair-gradient-stops i{width:14px;height:14px;border:1px solid #afc1cf;border-radius:2px}.part-color-popover [data-all-hair]{display:block;width:auto!important;margin:9px 0 0 auto!important;padding:5px 9px!important;min-height:28px;font-size:11px;line-height:1.3;border-radius:3px}.part-color-popover [data-all-hair][hidden]{display:none}
.part-picker-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;font-size:12px}.part-picker-head button{font-size:22px;line-height:1;padding:2px 5px}
.part-color-popover .free-color-row{gap:14px}.part-color-popover .hue-wheel{width:150px;height:150px}.part-color-popover .sv-square{inset:29px}.part-color-popover .hue-wheel:before{inset:16px}
.part-color-popover .free-color-copy{gap:7px}.part-color-popover .free-color-copy small,.part-color-popover .preset-color-label,.part-color-popover .preset-colors{display:none}
.color-comparison{display:flex;gap:16px;align-items:flex-start}.color-comparison>div{display:grid;gap:5px;justify-items:start}.color-comparison .chosen-color,.color-comparison .base-color-box{display:block;width:34px;height:24px;border:1px solid var(--line);border-radius:3px;padding:0}.color-comparison small,.part-color-popover .color-comparison small{display:block;font-size:10px;color:var(--muted);line-height:1.4}.base-color-box:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.hair-gradient-stops button,.part-color-popover .color-hex,.part-color-popover [data-all-hair],.part-picker-toggle,.part-base-color{border-radius:3px}
.group-tab,.subcategory-tab,.character-switch button,.hair-gradient-stops button,.part-color-popover [data-all-hair],.part-picker-toggle,.part-base-color{transition:background-color .18s ease-out,color .18s ease-out,border-color .18s ease-out,box-shadow .18s ease-out}
.hair-gradient-stops button:hover:not([aria-pressed="true"]),.part-color-popover [data-all-hair]:hover,.part-picker-toggle:hover,.part-base-color:hover{background-color:#e4ecf2;color:#243b4e}
.hair-gradient-stops button:focus-visible,.part-color-popover [data-all-hair]:focus-visible,.part-picker-toggle:focus-visible,.part-base-color:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.position-panel{justify-content:flex-start;gap:16px}.position-copy{flex:0 0 100px}.position-copy strong{font-size:13px;line-height:1.35;white-space:normal}.iris-position-panel .position-copy strong{white-space:nowrap}.position-copy small{font-size:11px;line-height:1.45;white-space:pre-line;word-break:keep-all}
.nudge-grid{grid-template-columns:repeat(3,18px);grid-template-rows:repeat(3,18px);gap:0}
.nudge-grid button{display:grid;place-items:center;border-radius:0;background:#e3e7ec;color:#596876;padding:0}
.nudge-grid button:hover{background:#cdd6df;color:#394b5d}.nudge-grid button:focus-visible{outline:2px solid var(--accent);outline-offset:1px;z-index:1}
.nudge-grid svg{width:10px;height:10px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.nudge-grid [data-nudge=up]{border-radius:3px 3px 0 0}.nudge-grid [data-nudge=up] svg{transform:rotate(90deg)}
.nudge-grid [data-nudge=left]{border-radius:3px 0 0 3px}.nudge-grid [data-nudge=right]{border-radius:0 3px 3px 0}.nudge-grid [data-nudge=right] svg{transform:rotate(180deg)}
.nudge-grid [data-nudge=down]{border-radius:0 0 3px 3px}.nudge-grid [data-nudge=down] svg{transform:rotate(270deg)}
.position-panel.preview-position-panel{position:absolute;right:0;top:auto;bottom:20px;z-index:20;padding:0;margin:0;border:0;background:transparent;box-shadow:none}
.artboard.has-preview-controls{overflow:hidden}
.preview-move-handle{display:none}
.preview-position-panel .preview-move-handle{display:grid;place-items:center;width:64px;height:40px;padding:0;border:0;border-radius:13px 0 0 13px;background:color-mix(in srgb,var(--ink) 60%,transparent);color:#fff;box-shadow:none;touch-action:none;cursor:grab}
.preview-position-panel .preview-move-handle:active{cursor:grabbing}
.preview-position-panel .preview-move-handle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.preview-move-handle svg{width:24px;height:24px;stroke-width:1.65}
.preview-position-panel .position-copy,.preview-position-panel .nudge-grid{display:none}
.preview-position-panel .position-copy{flex:0 0 auto}
.preview-position-panel .position-copy strong{display:none}
.preview-position-panel .position-copy small{display:block;margin:0;font-size:11px;line-height:1.45;color:var(--muted);white-space:nowrap;text-align:right}
.preview-position-panel .nudge-grid button{background:#c4cdd6}
.preview-position-panel .nudge-grid button:hover{background:#b5c1cd}
.iris-side-choice[aria-pressed=true]{background:var(--ink);color:#fff;border-color:var(--ink)}
.category-title-row{display:flex;align-items:center;gap:12px}.iris-side-controls{display:flex;gap:6px;flex-shrink:0}.iris-side-controls[hidden]{display:none}.iris-side-choice{font-size:13px;min-height:30px;padding:5px 10px}.section-label-row{flex-shrink:0;white-space:nowrap}
.standalone .editor-head{display:none}
[data-design=precision] .group-tabs{background:#f3f8fc;border-bottom:0;border-radius:3px}
[data-design=precision] .group-tab.active{background:var(--ink);color:#fff;box-shadow:none;border-radius:3px}
body[data-design=precision] .subcategory-scroll{background:transparent;border-radius:0;border-bottom:1px solid var(--line);gap:0}
body[data-design=precision] .subcategory-tab{border-radius:0}
body[data-design=precision] .subcategory-tab.active{background:transparent;color:var(--ink);box-shadow:inset 0 -3px var(--accent);border-radius:0}
[data-character-type=male] .subcategory-tab{min-width:0;flex:1 1 auto}
.character-switch{padding:3px;gap:3px;border-radius:4px;border-color:var(--line);box-shadow:none}
.character-switch button{min-width:62px;min-height:30px;padding:5px 12px;font-size:11px;font-weight:600;border-radius:3px}
.character-switch button.active{background:var(--ink);box-shadow:none}
[data-design=precision] .subcategory-tab{position:relative;border-radius:3px}
[data-design=precision] .subcategory-scroll{border-radius:3px}
[data-design=precision] .group-tab:not(:first-child)::before{content:"";position:absolute;left:0;top:50%;width:1px;height:12px;background:#bdc7d0;transform:translateY(-50%);pointer-events:none}
[data-design=precision] .group-tab.active::before{display:none}
[data-design=precision] .subcategory-tab::before{content:none}
.shape-thumb{position:absolute;inset:0;background:var(--shape-color);mask-size:contain;mask-repeat:no-repeat;mask-position:center}
.character-canvas canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
@media(max-width:430px){.free-color-row{gap:16px}.hue-wheel{width:152px;height:152px}.sv-square{inset:29px}}

/* Mobile navigation and preview must not depend on the selected part count. */
.category-title-row{gap:20px;flex-wrap:wrap}
.unavailable-color-note{font-size:10px;color:var(--muted)}
.palette-section:has(.unavailable-color-note) .section-label-row{display:none}
.selection-summary{gap:8px}
.selection-summary>div{min-width:0;align-self:flex-start}
.reset-position-button{display:flex;align-items:center;gap:4px;flex-shrink:0;align-self:center;padding:5px 0 5px 6px;font-size:10px;color:var(--muted);white-space:nowrap}
.reset-position-button svg{width:14px;height:14px}
.reset-position-button:hover:not(:disabled){color:var(--accent)}
.standalone .portrait-frame{position:relative;flex:none;width:min(100%,620px,max(290px,calc(100dvh - 340px)));margin:auto}
.standalone .portrait-frame .artboard{width:100%;margin:0}
.standalone .portrait-frame .edition{display:block;position:absolute;right:14px;bottom:calc(100% + 14px);padding:0;font-size:8px}
.standalone .portrait-frame .edition b{font-size:22px}
@media(min-width:901px){
  .standalone .layout{max-width:1240px}
  .standalone .preview-pane{height:100dvh;min-height:580px;padding-left:32px;padding-right:32px;--portrait-width:min(100%,620px,max(290px,calc(100dvh - 340px)))}
  .standalone .intro{width:var(--portrait-width);max-width:none}
  .standalone .portrait-frame{width:var(--portrait-width)}
  .standalone .art-caption{width:var(--portrait-width);max-width:none}
  .standalone .editor-pane{height:100dvh;min-height:0;padding-bottom:18px;align-self:start}
  .standalone .selection-summary{height:64px;margin:18px 0 14px}
  .standalone .palette-section{height:64px}
  .standalone .palette-section[hidden]{display:flex!important;visibility:hidden;pointer-events:none}
}
@media(max-width:900px){
  html:has(body.standalone){scrollbar-gutter:stable}
  .standalone .layout{align-items:start;overflow-anchor:none}
  .standalone .preview-pane{align-self:start}
  .standalone .artboard{flex:none;margin:12px auto 0}
  .standalone .art-caption{flex:none}
  .standalone .portrait-frame{width:min(100%,620px);margin:70px auto 0}
  .standalone .intro{max-width:620px}
  .standalone .art-caption{max-width:620px}
  .standalone .parts-grid{grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:7px}
  .standalone .headline-row h1 br{display:none}
  .standalone .headline-row h1 span{display:inline-block;margin-left:.35em}
  body.standalone[data-design=precision] .subcategory-scroll{flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;height:39px;scrollbar-width:none;overscroll-behavior-x:contain}
  .standalone .subcategory-scroll::-webkit-scrollbar{display:none}
  body.standalone[data-design=precision] .subcategory-tab{flex:0 0 auto;min-width:76px;min-height:38px;padding:9px 14px;font-size:12px;white-space:nowrap}
  .standalone .selection-summary{height:64px;margin:13px 0 10px}
  .standalone .palette-section{height:64px;margin-bottom:13px}
  .standalone .palette-section[hidden]{display:flex!important;visibility:hidden;pointer-events:none}
  .standalone .color-palette{align-content:center}
}
@media(max-width:430px){
  .standalone .headline-row h1 span{margin-left:0}
  .standalone .headline-row h1{display:flex;flex-wrap:wrap;column-gap:.35em}
}
