:root{--ink:#20234c;--blue:#385bfa;--coral:#ff685a;--yellow:#ffe27b;--paper:#fffaf2;--line:#272948;--muted:#6a6780;font-family:'Malgun Gothic','맑은 고딕',sans-serif;color:var(--ink);background:#fff6e5;font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 12% 9%,#ffccbd 0,transparent 33%),radial-gradient(circle at 95% 60%,#d8dcff 0,transparent 30%),#fff6e5;min-height:100vh}[hidden]{display:none!important}button,input,select{font:inherit}button,a,input,summary{touch-action:manipulation}button,a,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:2px solid var(--line);border-radius:15px;padding:14px 22px;background:white;color:var(--ink);font-weight:800;box-shadow:0 4px 0 var(--line);transition:transform .16s,box-shadow .16s,background .16s}button:hover{transform:translateY(-2px);box-shadow:0 6px 0 var(--line)}button:active{transform:translateY(3px);box-shadow:0 1px 0 var(--line)}button:disabled{opacity:.4;cursor:default}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--blue);outline-offset:5px}.primary{background:var(--coral);color:#212243;min-height:58px}.secondary{padding:11px 16px;background:var(--paper);font-size:14px}.button-row{display:flex;gap:10px;margin:16px 0}.button-row>*{flex:1}header{max-width:1160px;margin:auto;padding:28px 28px 14px;display:flex;align-items:center;justify-content:space-between}.wordmark{text-decoration:none;color:var(--ink);font-size:33px;font-weight:1000;letter-spacing:-2px;transform:rotate(-3deg);text-shadow:2px 3px 0 #ffbe7c}.wordmark span{display:block;font-size:11px;letter-spacing:4px;text-shadow:none;margin-top:2px}.badge{font-size:12px;font-weight:800;background:var(--yellow);padding:10px 18px;border:2px solid var(--ink);border-radius:40px;transform:rotate(2deg)}main{max-width:1160px;margin:auto;padding:12px 28px 0}.setup-intro{margin:26px 0 36px;position:relative}.eyebrow{text-transform:uppercase;font-size:12px;font-weight:900;letter-spacing:2px;color:var(--blue);margin:0 0 14px}h1{font-size:clamp(32px,4.5vw,54px);font-weight:1000;letter-spacing:-2.5px;line-height:1.22;margin:0 0 15px}.setup-intro>p:last-child{font-size:15px;color:var(--muted)}.setup-layout{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start}.sample-choices{display:grid;grid-template-columns:1fr 1fr;gap:18px}.sample-pick{min-height:160px;display:flex;flex-direction:column;align-items:start;padding:24px;position:relative;border-radius:22px}.sample-pick.mint-pick{background:#ffd5c7;transform:rotate(-2deg)}.sample-pick.sand-pick{background:#dfe5ff;transform:rotate(2deg)}.sample-pick[aria-pressed=true]{box-shadow:0 6px 0 var(--line),inset 0 0 0 4px white}.sample-pick[aria-pressed=true]:after{content:'✓';position:absolute;right:16px;top:14px;background:white;border:2px solid var(--ink);width:25px;height:25px;border-radius:50%;line-height:21px}.mini-person{font-size:36px;line-height:1;color:var(--coral);margin-bottom:16px;text-shadow:2px 2px #272948}.sand-pick .mini-person{color:var(--blue)}.sample-pick strong{font-size:17px}.sample-pick small{font-size:11px;font-weight:500;margin-top:7px}.hint{font-size:12px;line-height:1.8;color:var(--muted);font-weight:400}.selection-column>.hint{margin:22px 0}details{border:2px solid #ded9d8;border-radius:17px;background:#ffffffae;margin:20px 0;overflow:hidden}summary{cursor:pointer;padding:19px;font-weight:800;font-size:14px}summary span{font-size:10px;margin-left:9px;color:var(--muted)}details[open]>summary{border-bottom:1px solid #e7e0d9}.panel{padding:25px;background:#fffdf9;border:2px solid var(--line);border-radius:26px}.editor{border:0;background:transparent;padding:20px}.panel-heading{display:flex;align-items:center;gap:10px;margin-bottom:18px}.panel-heading h2{font-size:14px;margin:0}.step{display:grid;place-items:center;background:var(--yellow);color:var(--ink);width:28px;height:28px;border:1px solid var(--ink);border-radius:50%;font-weight:900;font-size:13px}.character-panel{background:#fffdf8;box-shadow:8px 9px 0 #ffccba;position:relative;transform:rotate(1deg)}.character-stage{background:radial-gradient(ellipse at 50% 85%,#cfbb9870 0,transparent 38%),radial-gradient(circle at 50% 35%,#fff9e9,#ffe19d);border-radius:18px;position:relative;border:1px solid #e6cfa5;overflow:hidden}.character-stage:before{content:'ME!';position:absolute;font-size:95px;font-weight:1000;color:#fff9ea95;letter-spacing:-7px;top:38px;left:25px;transform:rotate(-12deg)}#character{width:100%;height:355px;object-fit:contain;position:relative;display:block}.stage-caption{display:block;text-align:center;font-size:11px;font-weight:800;color:#977052;padding:0 0 15px}.character-panel>label{display:block;margin:22px 0 9px;font-size:13px;font-weight:800}.character-panel>label .hint{float:right}input[type=text]{width:100%;border:2px solid #ded8d0;border-radius:12px;padding:13px;background:#fffaf1;color:var(--ink);font-weight:700}fieldset{border:0;padding:0;margin:20px 0 0;display:flex;gap:20px;font-size:12px}legend{font-size:11px;font-weight:800;margin-bottom:10px}.color-option{display:flex;align-items:center;gap:7px}input{accent-color:var(--blue)}.departure{margin-top:30px}.departure strong{font-size:14px;display:block;text-align:center}.departure .primary{width:100%;margin:16px 0 5px;font-size:19px}.privacy{font-size:11px;text-align:center;line-height:1.9;color:var(--muted);margin-top:19px}.file-button{display:block;border:2px dashed #9c9dcd;border-radius:12px;text-align:center;padding:14px;background:#edefff;font-weight:800;font-size:13px;cursor:pointer}input[type=file]{width:100%;font-size:11px;margin-top:10px}#crop{display:block;width:100%;max-width:340px;margin:20px auto 0;border-radius:16px;touch-action:none}.crop-hint{text-align:center}.range-label{display:block;font-size:12px;font-weight:700;margin:18px 0 8px}output{float:right;color:var(--blue)}input[type=range]{width:100%;height:20px}#photo-status,#save-status{font-size:12px;line-height:1.7;color:var(--blue)}footer{display:flex;justify-content:space-between;border-top:1px solid #ded7ce;margin-top:42px;padding:23px 0;font-size:10px;color:#8c8491}body[data-screen=play]{background:#f5eddd}body[data-screen=play]>header{display:none}body[data-screen=play] main{max-width:1600px;padding:14px 22px}body[data-screen=play] footer{display:none}.play-top{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:9px 0 17px}.play-top>div{display:flex;align-items:center;gap:18px}.small-brand{font-size:20px;font-weight:1000;color:var(--ink);text-decoration:none;transform:rotate(-3deg)}#game-phase{font-size:12px;font-weight:800;color:var(--blue)}#game-time{font-size:22px}.clip-hud,.coin-hud{font-size:12px;color:#8c6730;white-space:nowrap}.coin-hud{background:#ffe27b;padding:8px 10px;border-radius:12px;font-weight:900}.progress-track{height:6px;background:#d6cee0;border-radius:4px;margin-bottom:16px;overflow:hidden}#progress-fill{height:100%;width:0;background:linear-gradient(90deg,var(--coral),var(--yellow));border-radius:4px}.game-wrap{position:relative;max-width:1280px;margin:auto;border:3px solid var(--ink);border-radius:24px;overflow:hidden;box-shadow:0 8px 0 #27294820}#game{display:block;width:100%;aspect-ratio:16/9;outline:none;background:#e9d6bd}.play-bottom{display:flex;justify-content:space-between;align-items:center;max-width:1280px;margin:auto;font-size:11px;color:#797189}#game-status{text-align:center;font-size:13px;min-height:20px;color:#655272;font-weight:700}#pause-panel{position:absolute;inset:0;background:#20234c75;display:grid;place-items:center;overflow:auto;padding:20px}#pause-panel>div{background:var(--paper);border:2px solid var(--ink);border-radius:24px;padding:25px;width:390px;max-width:100%;box-shadow:7px 7px 0 #20234c}#pause-panel h2{font-size:23px;margin:10px 0 24px}#pause-panel button{display:block;width:100%;margin:14px 0}#pause-panel select{padding:8px;margin-left:12px;border:1px solid var(--ink);border-radius:10px}.pause-help p{font-size:12px;padding:0 18px 15px;line-height:1.8}.hearts{display:flex;gap:7px;align-items:center;min-width:92px}.hearts span{position:relative;display:inline-block;color:var(--coral);font-size:30px;line-height:1;text-shadow:0 2px 0 #b94d54;transition:color .2s,transform .2s}.hearts span.lost{color:#bab3c4;text-shadow:none;transform:scale(.82)}.hearts span.breaking{animation:heart-break .75s ease-out}.hearts span.breaking:after{content:'';position:absolute;left:46%;top:10%;width:3px;height:70%;background:#fff6e5;transform:rotate(24deg)}@keyframes heart-break{20%{transform:scale(1.45) rotate(-15deg)}60%{transform:scale(.8) rotate(15deg)}100%{transform:scale(.82)}}#sound{font-size:11px;min-width:82px}#finish-screen{text-align:center;padding:22px 0 30px;position:relative}.finish-stamp{font-size:53px;color:var(--coral);text-shadow:3px 3px 0 var(--blue);transform:rotate(-12deg);margin-bottom:22px}#finish-title{font-size:40px}#result-description{font-size:14px;color:var(--muted)}.foil-shell{width:350px;max-width:88%;position:relative;margin:30px auto 25px;transform:rotate(-3deg);border-radius:22px;overflow:hidden;box-shadow:0 22px 45px #26308345;isolation:isolate;transition:transform .4s}.foil-shell:hover{transform:rotate(2deg) scale(1.04)}#finish-card{width:100%;display:block}.foil-shine{position:absolute;inset:-35%;background:linear-gradient(120deg,transparent 28%,#69faff20 38%,#fffab580 44%,#ffffffb0 48%,#fa94fa45 54%,transparent 67%);mix-blend-mode:screen;animation:foil-sweep 5s ease-in-out infinite;pointer-events:none}@keyframes foil-sweep{0%,100%{transform:translateX(-40%) rotate(-10deg);opacity:.35}50%{transform:translateX(40%) rotate(10deg);opacity:.8}}#finish-save{width:350px;max-width:90%;margin:auto}.finish-stats{display:flex;justify-content:center;gap:40px;margin:32px 0 14px}.finish-stats small{display:block;color:var(--muted);font-size:11px;margin-bottom:8px}.finish-stats strong{font-size:17px}#finish-note{font-size:12px;color:var(--muted)}.finish-actions{display:flex;justify-content:center;gap:18px;margin:26px 0}.finish-actions button{font-size:13px}@media(max-width:760px){header{padding:22px 20px}.badge{display:none}main{padding:10px 20px}.setup-layout{grid-template-columns:1fr;gap:28px}.character-panel{grid-row:1}.setup-intro{margin:15px 0 28px}h1{letter-spacing:-1.8px}.play-top{flex-wrap:wrap;gap:12px}.play-top>div{gap:10px;flex:1;justify-content:flex-end}#game-phase{display:none}.play-top .clip-hud{display:none}#game-time{font-size:16px}.hearts{min-width:65px;gap:2px}.hearts span{font-size:24px}.game-wrap{border-radius:14px}footer{gap:20px}.finish-stats{gap:20px}.finish-actions{flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

#launch-art{position:absolute;right:0;top:-45px;width:330px;height:200px;object-fit:cover;border-radius:42% 58% 48% 52%;border:3px solid #fff4dc;box-shadow:7px 8px 0 #e4bfa254;transform:rotate(5deg)}.setup-intro{padding-right:340px;min-height:144px}.setup-intro h1{font-size:46px;white-space:nowrap}@media(max-width:1100px){#launch-art{width:250px;height:165px;top:-8px}.setup-intro{padding-right:260px}.setup-intro h1{font-size:36px}}@media(max-width:760px){#launch-art{position:relative;display:block;top:0;right:auto;width:100%;height:190px;margin-bottom:24px;border-radius:28px;transform:rotate(-2deg)}.setup-intro{padding-right:0}.setup-intro h1{white-space:normal;font-size:34px}}

/* Compact studio, readable HUD and local OFL typeface. */
body,button,input,select,summary{font-family:TinyJua,sans-serif;font-weight:400}h1,h2,strong{font-weight:400}header{padding-top:20px;padding-bottom:16px}main{max-width:1180px}.setup-intro{padding:0;min-height:0;margin:12px 0 22px}.setup-intro h1{font-size:clamp(26px,3.2vw,42px);white-space:normal;letter-spacing:-1px}.setup-intro .eyebrow{margin:0 0 8px}.setup-layout{gap:24px;align-items:stretch;grid-template-columns:1.08fr 1fr}.selection-column{display:flex;flex-direction:column}.sample-choices{gap:12px}.sample-pick{min-height:66px;flex-direction:row;align-items:center;gap:12px;padding:14px 18px;transform:none!important}.sample-pick strong{font-size:18px}.mini-person{font-size:24px;margin:0}.selection-column>.hint{margin:10px 0;font-size:13px}.sample-pick[aria-pressed=true]:after{right:10px;top:18px}.sample-pick{padding-right:35px}#photo-options{margin:0;flex:1}summary{padding:12px 16px}.editor{padding:12px 16px}.editor .panel-heading{display:none}.file-button{padding:10px}.visually-hidden{position:absolute;width:1px!important;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}#selected-file{margin:8px 0;overflow-wrap:anywhere}.crop-layout{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}#crop{width:100%;margin:0;max-width:238px}.crop-hint{font-size:11px;line-height:1.4;margin:8px 0}.range-label{margin:3px 0 2px;font-size:13px}.crop-controls .button-row{display:flex;gap:6px;margin:6px 0 10px}.crop-controls button{font-size:12px;padding:7px 9px;box-shadow:0 2px 0 var(--line)}#photo-status{margin:8px 0 0;min-height:34px}.character-panel{padding:16px 20px;transform:none;display:flex;flex-direction:column}.panel-heading{margin-bottom:10px}#character{height:245px}.stage-caption{padding-bottom:6px}.character-panel>label{margin:12px 0 6px}#nickname{padding:9px 12px}#nickname-hint{margin:3px 0}fieldset{margin:6px 0;font-size:13px}legend{display:none}.departure{margin-top:auto;padding-top:10px}.departure .primary{margin:8px 0 0;padding:13px;font-size:21px}.privacy{margin:9px 0 0;line-height:1.45}.departure strong{font-size:15px}footer{margin-top:22px;padding:16px 0}.play-top{gap:12px}#game-phase{font-size:24px;color:#3e3458}.coin-hud{font-size:19px;border:2px solid #bf8d1c;color:#51390a;padding:9px 14px}.coin-hud b{font-size:27px}.coin-hud small{font-size:14px;margin-left:4px}#pause{font-size:17px;padding:10px 14px;white-space:nowrap}.foil-shell{width:450px}#finish-save{width:450px}.finish-stats strong{font-size:24px}.finish-stats small{font-size:17px}#result-description{font-size:20px}#finish-note{font-size:17px}.play-bottom{font-size:15px}#game-status{font-size:17px}.character-stage:before{display:none}@media(max-width:850px){.setup-layout{grid-template-columns:1fr}.character-panel{grid-row:auto}.crop-layout{grid-template-columns:1fr 1fr}#game-phase{font-size:18px;display:inline}.play-top{flex-wrap:wrap}.coin-hud{font-size:15px}.play-top>div{gap:9px;flex-wrap:wrap}.setup-intro h1{font-size:30px}}@media(max-height:800px) and (min-width:851px){header{padding-top:10px;padding-bottom:10px}.setup-intro{margin:5px 0 15px}.setup-intro h1{font-size:33px}#character{height:215px}.crop-layout{gap:10px}#crop{max-width:208px}footer{margin-top:15px}}

/* Full-width desktop studio and always-readable controls. */
main{max-width:1460px;width:96%;padding:12px 24px}.setup-intro h1{font-size:clamp(34px,3.5vw,52px)}.setup-layout{gap:28px}.sample-pick strong{font-size:23px}.sample-pick{min-height:72px}.hint,.selection-column>.hint,#selected-file{font-size:16px}.file-button,summary{font-size:19px}.range-label{font-size:18px}#photo-status{font-size:17px;min-height:42px}#crop{max-width:285px}.crop-controls button{font-size:16px;padding:8px 12px}.crop-hint{font-size:15px}.character-panel>label{font-size:20px}#nickname{font-size:21px}.panel-heading h2{font-size:19px}.departure strong{font-size:19px}.departure .primary{font-size:25px}.privacy{font-size:15px}.stage-caption{font-size:16px}#character{height:290px}.play-bottom{font-size:20px;font-weight:400;color:#202e48;background:#fff7e5;border:2px solid #b5a990;border-radius:14px;padding:10px 18px;margin-top:14px;max-width:1360px;gap:15px}.play-bottom p{margin:3px 0}.play-bottom>span{font-size:17px;white-space:nowrap}#game-status{font-size:21px;color:#35365a;min-height:30px;margin:9px 0}#game-phase{font-size:27px}.pause-help p{font-size:18px;line-height:1.8}#sound{font-size:16px}.game-wrap{max-width:1360px}.coin-hud{font-size:21px}#pause{font-size:19px}.character-panel{padding:18px 24px}footer{font-size:14px}@media(max-height:850px) and (min-width:851px){header{padding-top:8px;padding-bottom:8px}.setup-intro{margin:4px 0 13px}.setup-intro h1{font-size:36px}.setup-layout{gap:22px}#character{height:230px}#crop{max-width:218px}.sample-pick{min-height:58px;padding:10px 18px}.editor{padding:10px 14px}.hint,.selection-column>.hint,#selected-file{font-size:14px}.crop-hint{font-size:13px}.range-label{font-size:16px}.crop-controls button{font-size:14px}.character-panel{padding:14px 18px}#photo-status{font-size:15px}.privacy{font-size:13px}footer{margin-top:14px}.departure .primary{padding:10px}body[data-screen=play] main{padding:8px 16px}.game-wrap{max-width:min(1360px,calc((100vh - 215px)*16/9))}.play-top{margin:4px 0 10px}.progress-track{margin-bottom:8px}.play-bottom{margin-top:10px}}@media(max-width:850px){main{width:100%;padding:12px 16px}.play-bottom{font-size:17px;flex-wrap:wrap}.setup-intro h1{font-size:31px}#crop{max-width:245px}.sample-pick strong{font-size:20px}}

@media(min-width:851px){body[data-screen=play] .game-wrap{max-width:min(1360px,calc((100dvh - 260px)*16/9));margin-inline:auto}body[data-screen=play] .play-bottom{max-width:1360px;margin-inline:auto}body[data-screen=play] #game-instruction{font-size:20px}}

#result-description{white-space:pre-line;line-height:1.65}.finish-stats{grid-template-columns:repeat(2,1fr)}

/* One independent choice for each look, shared by portrait, play and card. */
.look-pickers{margin-bottom:15px}.look-label{font-size:18px;margin:0 0 7px}.look-label:not(:first-child){margin-top:13px}.sample-choices,.hair-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.look-pickers .sample-pick{min-height:49px;padding:9px 12px;gap:8px;justify-content:center;border-radius:12px}.look-pickers .sample-pick strong{font-size:21px}.sample-pick[aria-pressed=true]:after{display:none}.color-dot{width:18px;height:18px;flex:none;border:2px solid #ffffffbb;border-radius:50%;background:#ef745d;box-shadow:0 0 0 1px #57392d33}.sand-pick .color-dot{background:#488be2}.lilac-pick .color-dot{background:#a48ad9}.hair-pick{padding:10px 7px;border-radius:12px;font-size:19px;min-height:46px}.hair-pick[aria-pressed=true],.sample-pick[aria-pressed=true]{background:#fff0ad;border-color:#6442a0;box-shadow:0 3px 0 #6442a0}.look-pickers button:focus-visible{outline:3px solid #385bfa;outline-offset:3px}@media(max-height:850px) and (min-width:851px){.look-pickers{margin-bottom:12px}.look-label{font-size:16px;margin-bottom:5px}.look-label:not(:first-child){margin-top:10px}.look-pickers .sample-pick{min-height:43px;padding:7px 8px}.hair-pick{min-height:40px;padding:7px;font-size:18px}.look-pickers .sample-pick strong{font-size:19px}#crop{max-width:205px}}@media(max-width:420px){.sample-choices,.hair-choices{gap:6px}.look-pickers .sample-pick strong{font-size:18px}.hair-pick{font-size:16px}.color-dot{width:14px;height:14px}}

@media(max-height:850px) and (min-width:851px){.crop-controls input[type=range]{height:16px;margin:2px 0 6px}.crop-controls .button-row{margin:3px 0 7px}.crop-controls button{padding:5px 8px}.crop-hint{margin-bottom:2px}#photo-status{min-height:25px;margin:5px 0 0}.character-panel .privacy{margin-top:5px}.setup-intro{margin-bottom:9px}}

#character{touch-action:none;cursor:grab}#character:active{cursor:grabbing}#character:focus-visible{outline:3px solid #6d56b2;outline-offset:-4px}.preview-turn{display:flex;gap:12px;align-items:center;margin:8px 0 2px}.preview-turn input{min-width:0;flex:1}.preview-turn button{padding:7px 12px;font-size:16px;white-space:nowrap}@media(max-height:850px) and (min-width:851px){.preview-turn{margin-top:5px}.preview-turn button{padding:5px 10px;font-size:15px}}

/* One clear page title, readable subtitle and consistent supporting text. */
.setup-intro{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0;margin:20px 0 24px;min-height:0}.setup-intro h1{font-size:clamp(38px,3.4vw,52px);line-height:1.15;margin:0 0 8px;letter-spacing:-1px}.setup-intro .eyebrow{font-size:clamp(22px,1.8vw,27px);line-height:1.4;letter-spacing:.2px;text-transform:none;color:#3547a4;margin:0}.setup-intro .badge{display:inline-block;font-size:20px;line-height:1.35;font-weight:400;padding:12px 20px;transform:rotate(2deg);flex-shrink:0}.hint,.privacy,.crop-hint,#selected-file,footer,.stage-caption{font-size:16px;line-height:1.5}.editor summary span,summary span{font-size:14px}.crop-hint{font-size:14px}.look-label{font-size:18px}#photo-status,#save-status{font-size:17px;line-height:1.45}.finish-stats small{font-size:18px}.finish-actions button{font-size:19px}.finish-screen .eyebrow,#finish-screen>.eyebrow{font-size:18px;letter-spacing:.5px}#finish-screen>.hint{font-size:16px}.preview-turn button{font-size:17px}.play-bottom>span{font-size:17px}.selection-column>.hint{font-size:16px}
@media(max-height:850px) and (min-width:851px){.setup-intro{margin:12px 0 18px}.setup-intro h1{font-size:38px}.setup-intro .eyebrow{font-size:23px}.setup-intro .badge{font-size:18px}.hint,.privacy,.crop-hint,#selected-file,footer{font-size:14px}.look-label{font-size:17px}#photo-status{font-size:16px}.preview-turn button{font-size:16px}.departure strong{font-size:18px}}
@media(max-width:850px){.setup-intro{align-items:flex-start;margin:12px 0 22px;gap:16px;flex-wrap:wrap}.setup-intro h1{font-size:38px}.setup-intro .eyebrow{font-size:23px}.setup-intro .badge{font-size:17px;padding:10px 15px;margin-left:auto}footer{font-size:14px;flex-wrap:wrap;gap:8px}.privacy{font-size:14px}}
