:root{
  --ink:#25313b;--muted:#76828d;--line:#dfe5e9;--paper:#fff;--bg:#f3f6f7;
  --mint:#2f9e88;--mint-dark:#237663;--mint-soft:#e7f6f1;--coral:#ed806d;
  --boy:#4389c7;--boy-soft:#e9f3fc;--girl:#d87099;--girl-soft:#fcecf3;
  --shadow:0 18px 55px rgba(35,52,65,.12)
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:var(--bg);color:var(--ink);font-family:Pretendard,"Noto Sans KR",system-ui,-apple-system,sans-serif}
button,input{font:inherit}button{cursor:pointer}.material-symbols-outlined{font-size:19px;line-height:1}
.app{width:min(100%,2200px);margin:auto;padding:17px 22px 35px}
.topbar{display:flex;align-items:center;gap:14px;margin-bottom:14px}.back{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--line);border-radius:14px;background:#fff;color:#65727d;text-decoration:none}.title-block{min-width:0;flex:1}.eyebrow{font-size:10px;letter-spacing:.23em;text-transform:uppercase;color:#8a959e;font-weight:950}.title-block h1{margin:3px 0 2px;font-size:clamp(23px,2vw,35px);letter-spacing:-.045em}.title-block p{margin:0;color:var(--muted);font-size:13px}.count{padding:7px 11px;border-radius:999px;background:var(--mint-soft);color:var(--mint-dark);font-size:11px;font-weight:950}
.workspace{display:grid;grid-template-columns:minmax(390px,.84fr) minmax(650px,1.38fr);gap:18px;align-items:start}.panel{border:1px solid var(--line);border-radius:22px;background:rgba(255,255,255,.96);box-shadow:0 8px 30px rgba(31,41,55,.055)}
.library{height:calc(100vh - 118px);min-height:680px;display:flex;flex-direction:column;overflow:hidden}.library-head{padding:17px 17px 13px;border-bottom:1px solid var(--line)}.library-title{display:flex;justify-content:space-between;gap:10px;align-items:center}.library-title strong{font-size:17px}.library-title span{color:var(--muted);font-size:11px}.step-label{display:flex;align-items:center;gap:7px;margin:13px 0 8px;color:#697681;font-size:10px;font-weight:950;letter-spacing:.06em}.step-label b{display:grid;place-items:center;width:19px;height:19px;border-radius:50%;background:var(--ink);color:#fff;font-size:9px}
.gender-chooser{display:grid;grid-template-columns:1fr 1fr;gap:8px}.gender-btn{display:flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:13px;background:#fff;padding:10px 12px;color:#66737e;font-weight:900;text-align:left}.gender-btn i{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;font-style:normal;font-size:18px}.gender-btn small{display:block;margin-top:2px;color:#94a0a9;font-size:9px;font-weight:800}.gender-btn[data-gender=girl] i{background:var(--girl-soft)}.gender-btn[data-gender=boy] i{background:var(--boy-soft)}.gender-btn.on[data-gender=girl]{border-color:var(--girl);background:var(--girl-soft);color:#a6426b;box-shadow:0 0 0 3px rgba(216,112,153,.12)}.gender-btn.on[data-gender=boy]{border-color:var(--boy);background:var(--boy-soft);color:#286b9f;box-shadow:0 0 0 3px rgba(67,137,199,.12)}
.filters{display:none}.filters.ready{display:block}.search-wrap{position:relative;margin-top:10px}.search-wrap .material-symbols-outlined{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:#98a3ab}.search{width:100%;border:1px solid var(--line);border-radius:12px;background:#f8fafb;padding:10px 12px 10px 38px;outline:0;color:#55616c}.search:focus{border-color:#72bba9;box-shadow:0 0 0 3px rgba(47,158,136,.11)}.chip-row{display:flex;gap:6px;overflow:auto;padding:9px 1px 2px;scrollbar-width:thin}.chip{flex:0 0 auto;border:1px solid var(--line);border-radius:999px;background:#fff;padding:7px 9px;color:#707d87;font-size:10px;font-weight:900}.chip.on{border-color:var(--mint);background:var(--mint);color:#fff}.chip.featured{border-color:#f2a9bd;color:#c5436a;background:#fff7fa}.chip.featured.on{border-color:#d94f78;background:#d94f78;color:#fff}.chip.format.on{border-color:#6c7983;background:#6c7983}
.gallery{flex:1;overflow:auto;padding:12px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:max-content;gap:10px;align-content:start}.welcome{grid-column:1/-1;align-self:center;padding:50px 26px;text-align:center;color:var(--muted)}.welcome i{display:block;font-style:normal;font-size:58px;margin-bottom:14px}.welcome strong{display:block;color:#52606b;font-size:18px}.welcome p{margin:8px 0 0;font-size:12px;line-height:1.65}.thumb{position:relative;overflow:hidden;border:2px solid transparent;border-radius:14px;background:#eaf0f1;padding:0;aspect-ratio:3/4;box-shadow:0 2px 9px rgba(20,30,50,.06);text-align:left}.thumb img{width:100%;height:100%;display:block;object-fit:cover;transition:.22s transform}.thumb:hover img{transform:scale(1.035)}.thumb.is-active{border-color:var(--mint);box-shadow:0 0 0 3px rgba(47,158,136,.13)}.thumb-info{position:absolute;left:5px;right:5px;bottom:5px;padding:6px 7px;border-radius:9px;background:rgba(20,34,42,.82);backdrop-filter:blur(6px);color:#fff}.thumb-info strong,.thumb-info small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.thumb-info strong{font-size:10px}.thumb-info small{margin-top:2px;color:#d7e2e6;font-size:8px}.variant-count,.featured-badge{position:absolute;top:6px;padding:4px 6px;border-radius:999px;font-size:8px;font-weight:950}.variant-count{right:6px;background:rgba(255,255,255,.9);color:#4a5964}.featured-badge{left:6px;background:rgba(217,79,120,.94);color:#fff;box-shadow:0 2px 8px rgba(123,25,58,.2)}.empty{grid-column:1/-1;padding:45px 15px;text-align:center;color:var(--muted);font-size:12px;font-weight:850}
.studio{position:sticky;top:12px;max-height:calc(100vh - 24px);overflow:auto;padding:15px}.studio-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.studio-head h2{margin:0;font-size:20px;letter-spacing:-.035em}.studio-head p{margin:4px 0 0;color:var(--muted);font-size:11px}.actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.action{display:inline-flex;align-items:center;justify-content:center;gap:5px;border:1px solid var(--line);border-radius:11px;background:#fff;padding:9px 11px;color:#5d6974;font-size:11px;font-weight:900}.action.primary{border-color:transparent;background:linear-gradient(135deg,#43ad96,#278e78);color:#fff;box-shadow:0 7px 18px rgba(39,142,120,.22)}.action:disabled{opacity:.5;cursor:wait}
.selection-summary{display:flex;align-items:center;gap:10px;margin-bottom:10px;padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:#f9fbfb}.selection-summary[hidden]{display:none}.selection-summary i{display:grid;place-items:center;flex:0 0 36px;width:36px;height:36px;border-radius:11px;background:var(--mint-soft);font-style:normal;font-size:19px}.selection-summary div{min-width:0;flex:1}.selection-summary strong,.selection-summary span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.selection-summary strong{font-size:13px}.selection-summary span{margin-top:3px;color:var(--muted);font-size:9px}.selection-summary b{color:var(--mint-dark);font-size:9px}
.variant-row{display:flex;gap:7px;overflow:auto;margin-bottom:10px;padding:1px 1px 7px}.variant{position:relative;flex:0 0 58px;overflow:hidden;border:2px solid transparent;border-radius:10px;background:#e8edef;padding:0;aspect-ratio:3/4}.variant img{width:100%;height:100%;display:block;object-fit:cover}.variant.on{border-color:var(--coral);box-shadow:0 0 0 2px rgba(237,128,109,.15)}.variant span{position:absolute;right:3px;bottom:3px;display:grid;place-items:center;width:17px;height:17px;border-radius:50%;background:rgba(31,44,52,.78);color:#fff;font-size:8px;font-weight:900}
.control-grid{display:grid;grid-template-columns:1.05fr 1.25fr;gap:9px;margin-bottom:11px}.control-card{border:1px solid var(--line);border-radius:14px;background:#f9fbfc;padding:10px}.control-label{display:flex;justify-content:space-between;gap:8px;margin-bottom:7px;color:#87939d;font-size:9px;font-weight:950;letter-spacing:.08em}.seg{display:flex;gap:5px;flex-wrap:wrap}.seg button{flex:1;border:1px solid var(--line);border-radius:9px;background:#fff;padding:7px 8px;color:#67737d;font-size:9px;font-weight:900}.seg button.on{border-color:var(--mint);background:var(--mint);color:#fff}.sketch-style-seg{margin-bottom:7px}.sketch-style-seg button{padding:8px 5px;font-size:8px}.sketch-style-seg button.on{border-color:#7c98ab;background:#7c98ab}.range-row{display:grid;grid-template-columns:76px 1fr 31px;align-items:center;gap:7px;margin-top:6px}.range-row label{color:#6d7983;font-size:9px;font-weight:850}.range-row input{width:100%;accent-color:var(--mint)}.range-row output{text-align:right;color:var(--mint-dark);font-size:9px;font-weight:950}.reset{margin-top:7px;border:0;background:transparent;color:#7b8790;font-size:9px;font-weight:900;padding:0}
.preview-shell{overflow:auto;border:1px solid var(--line);border-radius:17px;background:#e7edef;padding:12px}.paper{width:100%;min-height:680px;display:flex;flex-direction:column;gap:12px;border-radius:5px;background:#fff;padding:24px;box-shadow:var(--shadow)}#sheetContent{display:flex;flex:1;flex-direction:column;gap:12px}#sheetContent[hidden]{display:none}.sheet-head{display:flex;align-items:center;gap:11px;padding-bottom:10px;border-bottom:2px solid #e2e8ea}.sheet-mark{display:grid;place-items:center;flex:0 0 40px;width:40px;height:40px;border-radius:12px;background:linear-gradient(145deg,#4fb19c,#267a68);color:#fff;font-size:20px}.sheet-copy{min-width:0;flex:1}.sheet-copy strong,.sheet-copy span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sheet-copy strong{font-size:18px;letter-spacing:-.03em}.sheet-copy span{margin-top:2px;color:#82909a;font-size:9px;letter-spacing:.04em}.sheet-code{text-align:right}.sheet-code b{display:block;color:#55636d;font-size:11px}.sheet-code small{color:var(--mint-dark);font-size:8px;font-weight:900}.visual-area{flex:1;display:grid;grid-template-columns:1fr;gap:15px;align-items:center;justify-items:center}.paper[data-mode=pair] .visual-area{grid-template-columns:repeat(2,minmax(0,1fr));align-items:center}.frame{position:relative;overflow:hidden;width:min(62%,520px);aspect-ratio:3/4;border:1px solid #dce3e6;border-radius:13px;background:#fff}.paper[data-mode=pair] .frame{width:100%}.frame img,.frame canvas{width:100%;height:100%;display:block;object-fit:contain}.frame[hidden]{display:none}.frame-label{position:absolute;z-index:2;left:9px;top:9px;padding:5px 8px;border-radius:999px;background:rgba(25,39,47,.78);color:#fff;font-size:8px;font-weight:900;letter-spacing:.08em}.sketch-frame{background:#fff}.sheet-foot{display:flex;justify-content:space-between;gap:12px;padding-top:8px;border-top:1px solid #e7ebed;color:#94a0a8;font-size:8px;font-weight:850;letter-spacing:.05em}.placeholder-sheet{display:grid;place-items:center;flex:1;min-height:520px;text-align:center;color:#89959d}.placeholder-sheet[hidden]{display:none}.placeholder-sheet i{display:block;font-style:normal;font-size:64px}.placeholder-sheet strong{display:block;margin-top:12px;color:#64717a;font-size:17px}.placeholder-sheet p{margin:6px 0 0;font-size:11px}.status{display:flex;justify-content:space-between;gap:10px;padding:8px 3px 0;color:#839099;font-size:10px}
.toast{position:fixed;z-index:100;left:50%;bottom:26px;transform:translate(-50%,18px);opacity:0;pointer-events:none;border-radius:999px;background:#22313a;color:#fff;padding:11px 16px;font-size:12px;font-weight:850;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}#printStage{display:none}
@media(max-width:1100px){.workspace{grid-template-columns:1fr}.library{height:620px;min-height:0}.studio{position:static;max-height:none}}
@media(max-width:680px){.app{padding:10px}.title-block p,.count{display:none}.workspace{gap:10px}.library{height:590px}.gallery{grid-template-columns:repeat(2,1fr)}.studio-head{flex-direction:column}.actions{justify-content:flex-start}.control-grid{grid-template-columns:1fr}.paper{min-height:0;padding:13px}.paper[data-mode=pair] .visual-area{grid-template-columns:1fr}.frame,.paper[data-mode=pair] .frame{width:100%}.sheet-copy span,.sheet-code{display:none}.status{flex-direction:column}}
@media print{
  body{background:#fff}body>*:not(#printStage){display:none!important}#printStage{display:grid!important;position:fixed;inset:0;place-items:center;background:#fff}#printStage img{display:block;width:100%;height:100%;object-fit:contain}
}
