/* 마지막 배가 떠나는 날: 1987 여객선 승선권 레트로 UI (둥근 모서리) */
@font-face{font-family:Paperlogy;src:url(../fonts/Paperlogy-500.woff2) format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:Paperlogy;src:url(../fonts/Paperlogy-700.woff2) format('woff2');font-weight:700;font-display:swap}
@font-face{font-family:Paperlogy;src:url(../fonts/Paperlogy-800.woff2) format('woff2');font-weight:800;font-display:swap}
:root{--paper:#f1eee4;--cream:#fffdf5;--ink:#14284b;--ink2:#0b1830;--red:#e8402a;--red2:#c5311d;--sea:#7ea7c4;--sea2:#d4e4ef;--gold:#f0b429;--good:#2e8b57;--bad:#d1352b;--r:20px;--mono:Paperlogy,'Malgun Gothic',sans-serif}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;overflow:hidden;background:#0b1830;font-family:Paperlogy,'Malgun Gothic',sans-serif;font-weight:500;color:var(--ink);word-break:keep-all;overflow-wrap:break-word;-webkit-font-smoothing:antialiased}
button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}
img{display:block;max-width:100%}
#stage{position:fixed;left:0;top:0;width:1920px;height:1080px;transform-origin:0 0;overflow:hidden;background:var(--paper);font-size:30px;line-height:1.5;
  background-image:radial-gradient(rgba(20,40,75,.08) 1px,transparent 1.5px);background-size:7px 7px}
[hidden]{display:none!important}
b,strong{font-weight:800}
.dim{color:#5b6985}.hl{color:var(--red);font-weight:800}
.lbl{display:block;font-size:22px;font-weight:800;color:var(--red);letter-spacing:.02em;margin-bottom:4px}

/* ── 버튼 · 입력 ── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:64px;padding:8px 34px;border-radius:999px;background:var(--red);color:#fff;font-size:28px;font-weight:800;border:3px solid var(--ink);box-shadow:0 5px 0 var(--ink);transition:transform .08s,box-shadow .08s}
.btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 7px 0 var(--ink)}
.btn:active:not(:disabled){transform:translateY(4px);box-shadow:0 1px 0 var(--ink)}
.btn:disabled{background:#c9ccd3;color:#7b8294;box-shadow:0 5px 0 #8e95a6;border-color:#8e95a6;cursor:not-allowed}
.btn.line{background:var(--cream);color:var(--ink)}.btn.blue,.btn.go{background:var(--ink);color:var(--cream)}.btn.red{background:var(--red)}
.btn.sm{min-height:50px;font-size:22px;padding:4px 24px}
.field{width:100%;font:inherit;font-size:30px;padding:14px 22px;border-radius:18px;border:3px solid var(--ink);background:var(--cream);color:var(--ink);outline:none}
.field:focus{box-shadow:0 0 0 5px rgba(232,64,42,.28)}
.field.area{resize:none;height:190px;line-height:1.55}
.cnt{text-align:right;font-size:20px;color:#5b6985;margin-top:4px}
.shake{animation:shake .4s}
@keyframes shake{20%{transform:translateX(-9px)}40%{transform:translateX(9px)}60%{transform:translateX(-6px)}80%{transform:translateX(6px)}}
.pill{display:inline-block;padding:2px 18px;border-radius:999px;font-size:21px;font-weight:800;border:2px solid var(--ink);background:var(--cream)}
.pill.b{background:var(--sea2)}.pill.r{background:var(--red);color:#fff}.pill.g{background:var(--gold)}
.card{background:var(--cream);border:3px solid var(--ink);border-radius:var(--r);padding:18px 24px}
.fb{margin-top:16px;padding:10px 20px;border-radius:18px;background:#e6f3ea;border:3px solid var(--good);font-size:24px;line-height:1.5}
.fb b{color:var(--good);margin-right:6px}

/* ── 승선권 카드 ── */
.tkcard{display:flex;background:var(--cream);border:4px solid var(--ink);border-radius:26px;box-shadow:8px 8px 0 var(--ink);overflow:hidden}
.tkstub{flex:0 0 190px;background:var(--red);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:20px 10px;text-align:center;position:relative;border-right:4px solid var(--ink)}
.tkstub span{font-size:22px;font-weight:700;letter-spacing:.06em}.tkstub b{font-family:var(--mono);font-size:30px;font-weight:700;letter-spacing:.04em}
.tkstub::before,.tkstub::after{content:"";position:absolute;right:-17px;width:30px;height:30px;border-radius:50%;background:var(--paper);border:4px solid var(--ink)}
.tkstub::before{top:-17px}.tkstub::after{bottom:-17px}
.tkbody{flex:1;padding:26px 36px}

/* ── 표지 ── */
#cover{position:absolute;inset:0;background:linear-gradient(rgba(11,24,48,.1),rgba(11,24,48,.35)),url(../images/cover.webp) center/cover #14284b}
.cvmain{position:absolute;inset:0;display:flex;align-items:flex-end;justify-content:flex-end;padding:0 90px 52px 0;background:linear-gradient(to top,rgba(11,24,48,.45),rgba(11,24,48,0) 45%)}
.cvgrp{display:flex;flex-direction:column;align-items:center;gap:26px}
#cover .logoLink{background:none;border:0;padding:0;border-radius:0}#cover .tlogo{filter:drop-shadow(0 0 3px #fff) drop-shadow(0 0 8px rgba(255,255,255,.9))}
.titlewrap{margin:0 auto}.titleimg{max-height:420px;margin:0 auto;filter:drop-shadow(0 6px 0 rgba(20,40,75,.18))}
.cvsub{font-family:var(--mono);font-weight:700;font-size:25px;color:var(--ink);letter-spacing:.03em;margin:4px 0 16px}
.cvbtns{display:flex;gap:18px;justify-content:center;flex-wrap:wrap}
.dial{max-width:620px;margin:0 auto;text-align:center;display:grid;gap:14px}.dial .field{text-align:center}
.tlogo{height:56px;width:auto}
.logoLink{display:inline-block;background:var(--cream);border:3px solid var(--ink);border-radius:999px;padding:4px 16px}
#cover .dial{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:14px 18px;max-width:1000px}#cover .dial .lbl{flex:0 0 100%;color:#fff;font-size:32px;font-weight:800;text-shadow:0 2px 0 var(--ink),2px 0 0 var(--ink),-2px 0 0 var(--ink),0 -2px 0 var(--ink),0 3px 8px rgba(0,0,0,.5)}#cover .dial .field{width:300px;font-size:26px;padding:8px 14px}

/* ── 홈(대합실) ── */
#home{position:absolute;left:0;right:0;top:0;bottom:78px;background:linear-gradient(rgba(241,238,228,.25),rgba(241,238,228,.45)),url(../images/lobby.webp) center/cover #cfe0ec}
#homebody{position:absolute;inset:0}
.board{position:absolute;left:56px;top:40px;right:650px;bottom:34px;background:rgba(20,40,75,.86);backdrop-filter:blur(3px);border:5px solid var(--ink2);border-radius:30px;box-shadow:8px 8px 0 rgba(11,24,48,.55);padding:22px 24px;display:flex;flex-direction:column;color:#f6e7b4}
.bh{display:flex;justify-content:space-between;align-items:baseline;padding:2px 18px 14px;border-bottom:3px solid rgba(246,231,180,.35)}
.bh b{font-size:44px;color:var(--gold);letter-spacing:.08em}.bh span{font-size:24px;color:#cfd9e6}
.brows{flex:1;display:grid;grid-template-rows:repeat(9,1fr);gap:7px;padding-top:12px}
.row{display:grid;grid-template-columns:70px 78px 1fr 190px;align-items:center;gap:12px;padding:0 18px;border-radius:18px;background:rgba(255,255,255,.06);text-align:left;color:#f6e7b4;transition:background .12s,transform .12s}
.row:hover:not(.lock){background:rgba(255,255,255,.16);transform:translateX(4px)}
.row .no{font-family:var(--mono);font-size:36px;font-weight:700;color:var(--gold)}
.row .aico{width:66px;height:66px;object-fit:contain;background:var(--cream);border-radius:50%;padding:3px}
.row .nm b{display:block;font-size:31px;line-height:1.2;color:#fff7dc}.row .nm small{display:block;font-size:21px;color:#b9c7da}
.row .st{justify-self:end;font-size:21px;font-weight:800;padding:2px 14px;border-radius:999px;border:2px solid rgba(246,231,180,.5);color:#f6e7b4;white-space:nowrap}
.row.done .st{border-color:#ff7b63;color:#ff9a86}
.row.next{background:rgba(240,180,41,.2);outline:3px solid var(--gold);animation:blink 1.4s infinite}
.row.next .st{background:var(--gold);color:var(--ink);border-color:var(--gold)}
.row.lock{opacity:.45;cursor:not-allowed}
@keyframes blink{50%{background:rgba(240,180,41,.36)}}
.dside{position:absolute;right:56px;top:40px;width:560px;bottom:34px;display:flex;flex-direction:column;gap:26px}
.hello.tkcard{flex-direction:column}.hello .tkstub{flex:0 0 auto;flex-direction:row;justify-content:space-between;padding:10px 26px;border-right:0;border-bottom:4px solid var(--ink)}
.hello .tkstub::before,.hello .tkstub::after{display:none}
.hello .tkbody{padding:20px 30px 26px}.hello h2{font-size:36px;line-height:1.25;margin:2px 0 4px}.hello p{font-size:25px;color:#43506b}
.prog{height:22px;border-radius:99px;background:#dde3ee;border:3px solid var(--ink);margin-top:16px;overflow:hidden}.prog i{display:block;height:100%;background:var(--red);border-radius:99px}
.pgt{font-family:var(--mono);font-weight:700;font-size:24px;margin:6px 0 10px}
.stamps{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;padding:22px;background:rgba(255,253,245,.68);backdrop-filter:blur(3px);border:4px solid var(--ink);border-radius:26px}
.stp{aspect-ratio:1;border-radius:50%;border:3px solid #aeb6c6;display:grid;place-items:center;opacity:.9}
.stp .aico{width:78%;filter:grayscale(1);opacity:.28}.stp.on{border-color:var(--red);background:#fff}.stp.on .aico{filter:none;opacity:1}

/* ── 작업 표시줄 ── */
#task{position:absolute;left:0;right:0;bottom:0;height:78px;background:var(--ink);border-top:4px solid var(--ink2);display:flex;align-items:center;gap:16px;padding:0 20px;color:var(--cream);z-index:5}
.start{height:54px;padding:0 30px;border-radius:999px;background:var(--red);color:#fff;font-size:26px;font-weight:800;border:3px solid #fff3}
#steps{display:flex;gap:10px;align-items:center}
.stp2{min-width:54px;height:46px;display:grid;place-items:center;padding:0 16px;border-radius:999px;font-size:23px;font-weight:800;background:rgba(255,255,255,.1);color:#b9c7da}
.stp2.on{background:var(--cream);color:var(--ink)}.stp2.dn{background:#2e8b57;color:#fff}
.sp{flex:1}.tray{display:flex;align-items:center;gap:18px;font-size:23px}
#sndBtn{padding:4px 18px;border-radius:999px;border:2px solid #fff6;font-size:21px;color:var(--cream)}
#clock{font-family:var(--mono);font-weight:700;color:var(--gold)}
.tray .logoLink{padding:2px 12px;border-width:2px}.tray .tlogo{height:42px}

/* ── 활동 창 ── */
#layer{position:absolute;inset:0;pointer-events:none}#layer>*{pointer-events:auto}
.win{position:absolute;display:flex;flex-direction:column;background:var(--paper);border:5px solid var(--ink);border-radius:30px;box-shadow:8px 8px 0 rgba(11,24,48,.6);overflow:hidden}
.win.full{left:34px;right:34px;top:24px;bottom:22px}
.wt{display:flex;align-items:center;gap:18px;height:78px;background:var(--ink);color:var(--cream);padding:0 22px 0 0;flex:0 0 auto}
.wno{align-self:stretch;display:grid;place-items:center;padding:0 30px;background:var(--red);font-family:var(--mono);font-size:30px;font-weight:700;border-right:4px solid var(--ink2);position:relative}
.wtl{display:flex;align-items:center;gap:14px;font-size:32px;font-weight:800;flex:1}.wico{width:54px;height:54px;object-fit:contain;background:var(--cream);border-radius:50%;padding:2px}
.wbtn .x{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--cream);color:var(--ink);font-weight:800;font-size:26px;cursor:pointer;border:3px solid var(--red)}
.wbtn .x:hover{background:var(--red);color:#fff}
.wb{flex:1;min-height:0;position:relative}
.act{display:grid;grid-template-columns:470px 1fr;gap:28px;height:100%;padding:26px 32px 22px}
.side{display:flex;flex-direction:column;gap:20px;min-height:0}
.shot{flex:0 0 auto;aspect-ratio:3/2;border:4px solid var(--ink);border-radius:22px;overflow:hidden;background:var(--sea2);box-shadow:5px 5px 0 var(--ink)}
.shot img{width:100%;height:100%;object-fit:cover}.shot img.sunny{filter:saturate(1.35) brightness(1.14) contrast(1.02)}
.mission{flex:1;min-height:0;overflow:hidden;font-size:25px;line-height:1.55}.mission h3{font-size:32px;margin:6px 0 6px;line-height:1.25}.mission ul{margin:8px 0 0 22px;font-size:23px;color:#43506b}.mission li{margin-top:3px}
.main{display:flex;flex-direction:column;min-height:0;min-width:0}
.mainbody{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column;gap:10px;padding:2px 6px 0 2px}
.foot{flex:0 0 96px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:12px}
.foot #fbtn{display:flex;gap:14px}
.say{flex:1;font-size:25px;color:#43506b;min-width:0;display:flex;justify-content:center}.say .sy{display:block;text-align:center;background:var(--cream);border:3px solid var(--ink);border-radius:18px;padding:8px 24px;box-shadow:0 4px 0 var(--ink)}.say.bad .sy{color:var(--bad)}.say.good .sy{color:var(--good)}.say .sy{font-weight:700}
.qhead{display:flex;gap:10px;align-items:center}
.qtext{font-size:38px;line-height:1.38;margin:2px 0}.qtext.sm{font-size:28px;margin-top:2px;line-height:1.35}
.opts{display:grid;gap:12px}.opts.three .opt,.opts.ev1 .opt{padding:9px 20px;font-size:26px;gap:14px}.opts.three .n,.opts.ev1 .n{flex-basis:40px;height:40px;font-size:22px}
.opts.four{grid-template-columns:1fr 1fr}.opts.ox{grid-template-columns:1fr 1fr}.opts.ox .opt{justify-content:center;font-size:56px;min-height:150px}.opts.ox .n{display:none}
.opt{display:flex;align-items:center;gap:18px;text-align:left;padding:16px 24px;border-radius:20px;border:3px solid var(--ink);background:var(--cream);font-size:30px;line-height:1.38;box-shadow:0 5px 0 var(--ink);transition:transform .08s}
.opt:hover:not(:disabled){transform:translateY(-2px);background:#fff8de}
.opt .n{flex:0 0 46px;height:46px;border-radius:50%;background:var(--ink);color:var(--cream);display:grid;place-items:center;font-size:24px;font-weight:800}
.opt.sel{background:var(--sea2);outline:4px solid var(--red)}
.opt.right{background:#d9f0e1;border-color:var(--good);box-shadow:0 5px 0 var(--good)}.opt.right .n{background:var(--good)}
.opt.wrong{background:#ffe2de;border-color:var(--bad);box-shadow:0 5px 0 var(--bad)}
.opt:disabled:not(.right){opacity:.6;cursor:default}

/* ── 출항 전 짐작 ── */
.gpeople{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.pcard{background:var(--cream);border:3px solid var(--ink);border-radius:var(--r);padding:12px 16px 14px;text-align:center}
.pcard img{height:260px;margin:0 auto 4px;object-fit:contain}.pcard b{font-size:32px}.pcard p{font-size:23px;line-height:1.45;margin-top:2px;color:#43506b}
.bgnote p{font-size:27px;line-height:1.55;margin-top:6px}
.gq{display:grid;gap:12px}.gq>b{font-size:31px;line-height:1.4}.gq .opt{font-size:27px}

/* ── e북 ── */
.wb.paper{background:#d9e6ef}
.reader{--z:1;position:absolute;inset:0;display:flex;flex-direction:column;padding:18px 30px 16px;gap:12px}
.rtop{display:flex;justify-content:space-between;align-items:center;font-size:25px;flex:0 0 auto}
.rtools{display:flex;align-items:center;gap:10px;font-size:22px}.rtools button{padding:3px 18px;border-radius:999px;border:3px solid var(--ink);background:var(--cream);font-weight:800;font-size:22px}
.rtools button.on{background:var(--red);color:#fff}.rtools #rpn{font-family:var(--mono);font-weight:700;margin-right:10px}
.spread{flex:1;min-height:0;display:grid;grid-template-columns:44% 56%;border:4px solid var(--ink);border-radius:26px;overflow:hidden;box-shadow:8px 8px 0 var(--ink);background:var(--cream)}
.spread.flip{animation:flip .35s}@keyframes flip{from{opacity:.3;transform:translateX(18px)}to{opacity:1;transform:none}}
.lpg{position:relative;border-right:4px solid var(--ink);background:var(--sea2);min-height:0}.ph{position:absolute;inset:0}.ph img{width:100%;height:100%;object-fit:cover}
.place{position:absolute;left:18px;bottom:18px;padding:5px 20px;border-radius:999px;background:var(--cream);border:3px solid var(--red);color:var(--red);font-size:23px;font-weight:800}
.rpg{position:relative;padding:30px 44px 26px 44px;overflow:hidden;min-height:0;font-size:calc(35px*var(--z));background:linear-gradient(transparent 0,transparent 100%),var(--cream)}
.rt{display:flex;align-items:center;gap:16px;margin-bottom:14px;padding-bottom:12px;border-bottom:4px solid var(--ink)}
.rt .pn{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:var(--red);color:#fff;font-family:var(--mono);font-weight:800;font-size:32px;flex:0 0 auto}
.rt h2{font-size:calc(40px*var(--z));line-height:1.2}
.rtext p{line-height:1.82;margin:0}
.rbot{display:flex;align-items:center;gap:20px;flex:0 0 auto}.rprog{flex:1;height:20px;border-radius:99px;background:#fff;border:3px solid var(--ink);overflow:hidden}.rprog i{display:block;height:100%;background:var(--red);border-radius:99px;transition:width .3s}
.rbot .btn{min-height:56px;font-size:25px;padding:4px 30px}
.toc{display:grid;grid-template-columns:1fr 1fr;gap:10px}.toc button{display:flex;align-items:center;gap:14px;text-align:left;padding:10px 16px;border-radius:16px;border:3px solid var(--ink);background:var(--cream);font-size:26px;font-weight:700}.toc button:disabled{opacity:.4}.toc .pn{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--ink);color:#fff;font-family:var(--mono)}
.cmp{list-style:none;display:grid;gap:12px;margin-bottom:12px}.cmp li{padding:12px 18px;border:3px solid var(--ink);border-radius:16px;background:var(--cream);font-size:26px;line-height:1.5}
.iq{display:grid;gap:12px}.iq>b{font-size:31px;line-height:1.4}.iq .opt{font-size:27px;padding:12px 22px}

/* ── 성격 탐정 ── */
.evid{background:#fff8de}.evid{padding:12px 22px}.evid p{font-size:27px;line-height:1.5;margin-top:0}
.proofs{display:grid;gap:10px}.prf{display:flex;align-items:center;gap:16px;text-align:left;padding:7px 20px;border-radius:18px;border:3px solid var(--ink);background:var(--cream);font-size:24px;line-height:1.4;box-shadow:0 4px 0 var(--ink)}
.prf .ck{flex:0 0 38px;height:38px;border-radius:12px;border:3px solid var(--ink);background:#fff}.prf.on{background:var(--sea2);outline:4px solid var(--red)}.prf.on .ck{background:var(--red);box-shadow:inset 0 0 0 6px #fff}
.prf.right{background:#d9f0e1;border-color:var(--good);outline:0}.prf.lock:not(.right){opacity:.55}

/* ── 마음 온도계 ── */
.thermo{background:var(--cream);border:3px solid var(--ink);border-radius:var(--r);padding:10px 26px 6px;position:relative}
.tl{display:flex;justify-content:space-between;font-size:23px;font-weight:700;line-height:1.3}.tl small{font-weight:500;color:#5b6985;font-size:20px}.tl .tr{text-align:right}
.trk{position:relative;height:52px;margin:4px 0 2px}
.trk input{--p:50%;-webkit-appearance:none;appearance:none;width:100%;height:30px;border-radius:99px;border:3px solid var(--ink);margin-top:11px;outline:none;background:linear-gradient(90deg,#4f86c6,#9bc4e6 35%,#ffe29a 65%,#ff6a4a);position:absolute;left:0;top:0}
.trk input::-webkit-slider-thumb{-webkit-appearance:none;width:50px;height:50px;border-radius:50%;background:var(--cream);border:5px solid var(--red);box-shadow:0 3px 0 var(--ink);cursor:grab}
.trk input::-moz-range-thumb{width:40px;height:40px;border-radius:50%;background:var(--cream);border:5px solid var(--red);cursor:grab}
.trk input:disabled{opacity:.85}
.refmk{position:absolute;top:-6px;width:0;height:0;margin-left:-14px;border-left:14px solid transparent;border-right:14px solid transparent;border-top:20px solid var(--ink)}
.tv{position:absolute;left:50%;top:9px;transform:translateX(-50%);font-family:var(--mono);font-weight:800;font-size:36px;color:var(--red);background:var(--cream);padding:0 14px;border-radius:99px;border:3px solid var(--red);line-height:1.15}
.gbox{background:var(--cream);border:3px solid var(--ink);border-radius:var(--r);padding:10px 16px 8px;position:relative}.gbox canvas{width:100%;height:auto;display:block}
.gleg{position:absolute;right:26px;top:12px;display:flex;gap:18px;font-size:21px;font-weight:800}.gleg .l1::before,.gleg .l2::before{content:"";display:inline-block;width:34px;height:8px;border-radius:5px;background:var(--red);margin-right:8px;vertical-align:middle}.gleg .l2::before{background:var(--sea)}

/* ── 배경 바꾸기 ── */
.clues{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.clue{padding:10px 8px;border-radius:18px;border:3px solid var(--ink);background:var(--cream);box-shadow:0 5px 0 var(--ink);display:grid;gap:0;text-align:center}.clue small{font-size:22px;font-weight:800;color:var(--red)}.clue span{font-size:25px;font-weight:800}
.clue.dn{background:#d9f0e1}.clue.on{outline:5px solid var(--red)}
.swap{display:grid;grid-template-columns:1fr 56px 1fr;gap:10px;align-items:stretch}.swap .card p{font-size:26px;line-height:1.5}.swap .chg{background:#fff1d9;border-color:var(--red)}.arrow{display:grid;place-items:center;font-size:44px;font-weight:800;color:var(--red)}
.hint2{font-size:30px;text-align:center;padding:60px 20px;color:#43506b}
.sumrow{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.sum{padding:12px;border-radius:18px;border:3px solid var(--ink);text-align:center;background:var(--cream)}.sum small{display:block;font-size:21px;font-weight:800}.sum b{font-size:25px}.sum.big{background:#ffe2de;border-color:var(--red)}.sum.mood{background:var(--sea2)}

/* ── 속마음 말풍선 ── */
.bubwrap{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.bub{position:relative;padding:18px 24px;border:3px solid var(--ink);border-radius:30px;background:var(--cream)}.bub.said b{display:block;font-size:34px;line-height:1.35;margin:4px 0 6px}.bub.said p{font-size:24px;color:#43506b;line-height:1.5}
.bub.thought{background:#fff1d9;border-color:var(--red)}
.bub.said{box-shadow:0 6px 0 var(--ink)}.bub.thought{box-shadow:0 6px 0 var(--red2);border-radius:44px}
.bub.said::after{content:"";position:absolute;bottom:-20px;left:60px;width:30px;height:30px;background:var(--cream);border-right:3px solid var(--ink);border-bottom:3px solid var(--ink);transform:rotate(45deg) skew(10deg,10deg)}
.bub.thought::before,.bub.thought::after{content:"";position:absolute;border:3px solid var(--red);border-radius:50%;background:#fff1d9}.bub.thought::before{width:26px;height:26px;bottom:-34px;right:92px}.bub.thought::after{width:14px;height:14px;bottom:-52px;right:76px}
.bcol{display:flex;flex-direction:column}.bav{height:128px;width:auto;align-self:flex-start;margin:30px 0 0 34px;object-fit:contain}.bav.r{margin-left:0;align-self:flex-end;margin-right:34px}.compact .bav{display:none}
.bub .field.area{height:130px;font-size:27px;background:#fff}

/* ── 전시관 ── */
.galwrap{display:grid;grid-template-columns:1.25fr 1fr;gap:20px;min-height:0;flex:1}
.gal{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;align-content:start}
.gt{position:relative;aspect-ratio:3/2;border:3px solid var(--ink);border-radius:14px;overflow:hidden;background:var(--sea2);box-shadow:0 4px 0 var(--ink);padding:0}.gt img{width:100%;height:100%;object-fit:cover}
.gt{transition:transform .22s cubic-bezier(.2,1.4,.4,1),filter .22s,box-shadow .22s}.gt:hover{transform:translateY(-2px)}
.gal:has(.gt.on):not(.small) .gt:not(.on){filter:brightness(.5) blur(2.5px) saturate(.8)}
.gt.on{transform:translateY(-6px) scale(1.08);z-index:2;border-color:var(--red);box-shadow:0 12px 0 rgba(20,40,75,.35),0 0 0 3px var(--cream)}
.gal.small .gt.on{outline:3px solid var(--red);transform:none}
.gt .gn{position:absolute;left:6px;top:6px;font-size:18px;font-weight:800;padding:0 10px;border-radius:99px;background:var(--cream);border:2px solid var(--ink)}
.stk{position:absolute;right:6px;bottom:2px;font-size:44px;color:var(--gold);text-shadow:0 2px 0 var(--ink),2px 0 0 var(--ink),-2px 0 0 var(--ink),0 -2px 0 var(--ink);font-style:normal}
.gal.small{grid-template-columns:repeat(6,1fr);gap:8px}.gal.small .gt{pointer-events:none}.gal.small .gn{display:none}.gal.small .stk{font-size:30px}
.vt{position:absolute;left:0;bottom:0;padding:0 12px;background:var(--ink);color:#fff;font-family:var(--mono);font-size:20px;border-top-right-radius:12px}
.why{background:var(--cream);border:3px solid var(--ink);border-radius:var(--r);padding:16px 20px;display:flex;flex-direction:column;gap:6px}.why>b{font-size:28px}.why .field.area{height:170px;font-size:26px}
.chips{display:flex;gap:8px;flex-wrap:wrap}.chips button{padding:2px 16px;border-radius:999px;border:2px solid var(--ink);background:var(--sea2);font-size:21px;font-weight:700}
.galhead{font-size:27px;background:#fff8de;border:3px solid var(--ink);border-radius:18px;padding:8px 20px}
.mine{font-size:24px;border:3px solid var(--red);border-radius:18px;padding:8px 18px;background:var(--cream);line-height:1.45}
.ops{display:grid;grid-template-columns:1fr 1fr;gap:10px}.op{position:relative;text-align:left;padding:10px 16px 10px;border-radius:18px;border:3px solid var(--ink);background:var(--cream);font-size:21px;line-height:1.4;display:grid;gap:2px}.op .who{font-weight:800;color:var(--red);font-size:21px}.op .hrt{position:absolute;right:12px;top:6px;font-style:normal;font-weight:800;font-size:20px;color:var(--red)}.op.on{background:#ffe9e2;outline:4px solid var(--red)}
.cmpq{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:22px}.cmpq b{font-size:23px}.cp{padding:3px 16px;border-radius:999px;border:3px solid var(--ink);background:var(--cream);font-size:20px;font-weight:700}.cp.on{background:var(--ink);color:#fff}

/* ── 갈림길 ── */
.tree{display:grid;grid-template-columns:1fr 1fr;gap:14px;position:relative}.tree .br{padding:12px 20px;border-radius:18px;border:3px solid var(--ink);background:var(--cream)}.tree .br small{display:block;font-weight:800;color:var(--red);font-size:21px}.tree .br b{font-size:25px;line-height:1.45;display:block;font-weight:700}.tree .real{background:var(--sea2)}.tree .alt{background:#fff1d9;border-color:var(--red)}
.themes .opt{font-size:26px;padding:10px 20px}

/* ── 팝업 ── */
#modal{position:absolute;inset:0;background:rgba(11,24,48,.62);display:grid;place-items:center;z-index:20;animation:fade .15s}
@keyframes fade{from{opacity:0}}
.pop{width:min(900px,94%);background:var(--cream);border:5px solid var(--ink);border-radius:30px;box-shadow:10px 10px 0 var(--ink2);overflow:hidden;max-height:96%;display:flex;flex-direction:column}
.pop .wt{height:70px;padding-left:28px}.pop .wtl{font-size:30px}
.pb{padding:24px 34px 8px;font-size:28px;line-height:1.55;overflow:hidden;flex:1;min-height:0}.pf{display:flex;justify-content:center;gap:14px;padding:12px 30px 26px}
.pop .pb>p{text-align:center}.pop .pb>.how{display:table;margin:0 auto}.pop.ok .pb{text-align:center}.pop.ok h2{font-size:42px;margin:6px 0}
.how{margin-left:30px;display:grid;gap:8px}
.stampbig{width:220px;height:220px;margin:2px auto 10px;animation:stamp .5s cubic-bezier(.2,1.6,.4,1)}.stampbig img{width:100%;height:100%;display:block}
@keyframes stamp{from{transform:scale(2.6);opacity:0}to{transform:none;opacity:1}}
#toast{position:absolute;left:50%;bottom:112px;transform:translate(-50%,20px);background:var(--ink);color:#fff;padding:10px 30px;border-radius:999px;font-size:26px;font-weight:700;opacity:0;pointer-events:none;transition:.25s;z-index:30}#toast.on{opacity:1;transform:translate(-50%,0)}
#rotate{position:fixed;inset:0;background:var(--ink);color:#fff;display:grid;place-items:center;text-align:center;font-size:24px;z-index:99}

/* ── 도착 증서 ── */
.certpop .pb{padding:20px 30px 4px}
.cert{position:relative;width:1180px;height:787px;margin:0 auto;background:url(../images/certbg.webp) center/100% 100% #fbf3df;color:var(--ink);overflow:hidden;box-sizing:border-box;padding:84px 130px 82px;display:flex;flex-direction:column;align-items:center;justify-content:space-between}
.cert::before{content:"";position:absolute;left:84px;right:84px;top:92px;bottom:70px;background:rgba(255,251,240,.84);border-radius:26px}
.cert>*{position:relative}
.ctitle img{height:104px;display:block}
.cinfo{width:100%;margin-top:6px}
.crow{display:grid;grid-template-columns:230px 1fr;gap:14px;padding:9px 0;border-bottom:2px dashed #b9c3d4;align-items:baseline}.crow span{font-size:22px;font-weight:800;color:var(--red)}.crow b{font-size:25px;line-height:1.4}
.cst{display:flex;gap:6px;justify-content:center;margin:0}.cst img{width:74px;height:74px;object-fit:contain;opacity:.18}.cst img.on{opacity:1}
.cmsg{text-align:center;font-size:22px;font-weight:700;color:#43506b;margin-top:4px}
.cfoot{display:flex;align-items:center;gap:22px;margin:0;font-size:20px;color:#5b6985;font-weight:700}.cfoot img{height:40px}
#printsheet{display:none}
@media print{body{background:#fff}#stage,#rotate{display:none!important}#printsheet{display:block;width:1000px;margin:20px auto;zoom:.95}#printsheet .cert{box-shadow:none}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}}

/* 좁은 화면(16:10 이하): 활동 왼쪽 단을 줄인다 */
#stage.narrow .act{grid-template-columns:400px 1fr}

/* 압축 보기 */
.compact .bub .field.area{height:104px;font-size:24px;padding:8px 18px}.compact .bub.said p{display:none}.compact .bub{padding:10px 20px}.compact .bub.said b{font-size:30px}
.galhead{line-height:1.45;font-size:25px;padding:8px 18px}.galhead .mine{display:block;margin-top:4px;font-size:22px}
.gal.small{grid-template-columns:repeat(12,1fr);gap:6px}.gal.small .gt{border-radius:10px;border-width:2px}.vt{font-size:17px;padding:0 8px}.gal.small .stk{font-size:22px;right:2px}
.op{padding:8px 14px;font-size:20px;line-height:1.38}.ops{gap:8px}.cmpq{gap:8px}
.bubwrap{margin-bottom:22px}

.scaf{background:#fbf3d9;border:3px solid var(--ink);border-left:10px solid var(--gold);border-radius:16px;padding:10px 22px 12px}.scaf .lbl{display:block;font-size:21px;font-weight:800;color:var(--red2);margin-bottom:2px}.scaf p{font-size:25px;line-height:1.5}
.shot img.char{object-fit:cover;object-position:50% 4%}
.thermo+h2{margin-top:0}.evid+.scaf p{font-size:22px;line-height:1.4}.evid+.scaf{padding:6px 18px 8px}.evid+.scaf .lbl{font-size:19px}
.galwrap>.gal:not(.small){min-height:0;grid-template-rows:repeat(4,minmax(0,1fr));align-content:stretch}.galwrap>.gal:not(.small) .gt{aspect-ratio:auto;min-height:0}
