:root{--color-primary:#b83246;--color-primary-dark:#7f2430;--color-secondary:#f3c74b;--color-teal:#2d8c91;--color-cream:#fff7ea;--color-paper:#fffaeff0;--color-ink:#35292d;--color-muted:#725f63;--shadow-soft:0 16px 40px #3c1e233d;--border-strong:3px solid #3a262a;--font-main:"Jua", "Gaegu", system-ui, sans-serif;--font-pixel:"DungGeunMo", "Jua", system-ui, sans-serif;--transition-fast:.16s ease;--transition-normal:.28s ease}*{box-sizing:border-box;-webkit-user-drag:none;margin:0;padding:0}html,body{width:100%;height:100%;color:var(--color-ink);font-family:var(--font-main);background:#161113;overflow:hidden}body{place-items:center;display:grid}button{font:inherit}#game-container{aspect-ratio:9/16;overscroll-behavior:none;touch-action:manipulation;-webkit-user-select:none;user-select:none;background:var(--color-cream);width:min(100vw,56.25dvh);height:min(100dvh,177.778vw);position:relative;overflow:hidden;box-shadow:0 0 60px #0000007a;container:game/size}.scene{opacity:0;pointer-events:none;background-position:50%;background-size:cover;transition:opacity .52s;position:absolute;inset:0}.scene.active{opacity:1;pointer-events:auto}.location-scene.background-changing{animation:.32s sceneFrameFade}@keyframes sceneFrameFade{0%{filter:brightness(.92)}to{filter:brightness()}}.location-scene:after,.title-screen:after,.ending-screen:after{content:"";z-index:1;pointer-events:none;background:linear-gradient(#ffffff05,#2c181c1f),radial-gradient(circle at 50% 80%,#fff7ea26,#0000 55%);position:absolute;inset:0}.screen-scrim{z-index:2;padding:max(14px, env(safe-area-inset-top)) 14px max(18px, env(safe-area-inset-bottom));background:linear-gradient(#fff7ea29,#fff7eadb);place-items:center;display:grid;position:absolute;inset:0}.title-blossom-label{top:max(16px, env(safe-area-inset-top));z-index:4;color:var(--color-primary-dark);white-space:nowrap;background:#fff7fae6;border:2px solid #7f2430b8;border-radius:999px;align-items:center;gap:7px;padding:6px 12px;font-size:clamp(.78rem,3.7cqw,.96rem);display:flex;position:absolute;left:50%;transform:translate(-50%);box-shadow:0 5px #7f243026}.title-blossom-label span:first-child,.title-blossom-label span:last-child{font-family:system-ui,sans-serif;font-size:1.08em}.title-mascot{z-index:3;width:clamp(44px,13cqw,60px);height:auto;bottom:max(18px, env(safe-area-inset-bottom));filter:drop-shadow(0 8px #3a262a2e);pointer-events:none;position:absolute}.title-mascot.hamster{left:5%}.title-mascot.hedgehog{right:5%}.title-card,.ending-card{border:var(--border-strong);background:var(--color-paper);width:min(100%,430px);box-shadow:var(--shadow-soft);text-align:center;border-radius:8px;padding:clamp(20px,5cqw,30px) clamp(16px,5cqw,28px)}.ending-card.compact{text-align:center;flex-direction:column;justify-content:center;width:min(100%,420px);min-height:min(68cqh,560px);max-height:82cqh;padding:clamp(20px,6cqw,30px);display:flex;overflow:hidden}.ending-scrim{overflow:hidden}.ending-card.compact h1{font-size:clamp(2rem,11cqw,3.2rem);line-height:1.05}.ending-items{gap:8px;margin:18px 0 0;padding:0;list-style:none;display:grid}.ending-items li{color:var(--color-ink);background:#ffffff9e;border:2px solid #3a262a2e;border-radius:12px;padding:9px 11px}.ending-links{grid-template-columns:1fr 1fr;gap:8px;margin-top:16px;display:grid}.ending-links a{color:var(--color-primary-dark);background:#ffffffb3;border:2px solid #3a262a47;border-radius:10px;padding:9px 7px;font-size:.84rem;text-decoration:none}.ending-dots{justify-content:center;gap:6px;margin-top:auto;padding-top:18px;display:flex}.ending-dots i{background:#cdbfc1;border-radius:50%;width:8px;height:8px}.ending-dots i.active{background:var(--color-primary)}.ending-actions{justify-content:center;gap:8px;margin-top:12px;display:flex}.ending-actions .primary-button,.ending-actions .secondary-button{margin-top:0}.title-card{max-height:70cqh}.title-card h1,.ending-card h1{color:var(--color-primary-dark);font-family:var(--font-pixel);word-break:keep-all;font-size:clamp(2rem,11cqw,3.25rem);line-height:1.08}.eyebrow{color:var(--color-teal);margin-bottom:12px;font-size:clamp(.88rem,4cqw,1.08rem)}.title-copy,.ending-summary,.ending-recommendation,.next-places{max-width:620px;color:var(--color-muted);margin:18px auto 0;font-size:clamp(.96rem,4.2cqw,1.14rem);line-height:1.48}.primary-button,.secondary-button,.map-ending-button{border:var(--border-strong);cursor:pointer;color:#fff;background:var(--color-primary);min-height:44px;box-shadow:0 5px 0 var(--color-primary-dark);transition:transform var(--transition-fast), box-shadow var(--transition-fast), opacity var(--transition-fast);border-radius:8px;padding:12px 22px}.primary-button{margin-top:clamp(20px,4cqh,28px);font-size:clamp(1.08rem,5cqw,1.3rem)}.secondary-button{background:var(--color-teal);margin-top:18px;box-shadow:0 5px #1b5d61}.primary-button:hover,.secondary-button:hover,.map-ending-button:hover:not(:disabled){transform:translateY(-2px)}.primary-button:active,.secondary-button:active,.map-ending-button:active:not(:disabled){box-shadow:0 2px 0 var(--color-primary-dark);transform:translateY(3px)}.ending-scrim{align-items:center;overflow-y:auto}.ending-card{text-align:left;width:min(920px,94%)}.ending-card h1,.ending-card .eyebrow,.ending-summary,.ending-recommendation,.next-places{text-align:center}.ending-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:22px;display:grid}.ending-grid>div,.info-strip{background:#ffffff94;border:2px solid #3a262a38;border-radius:8px;padding:16px}.ending-grid h2{color:var(--color-primary-dark);margin-bottom:10px;font-size:clamp(1rem,4cqw,1.25rem)}.ending-grid ul{color:var(--color-ink);gap:6px;padding-left:20px;font-size:clamp(.95rem,3.8cqw,1.1rem);line-height:1.45;display:grid}.info-strip{color:var(--color-muted);text-align:center;gap:6px;margin-top:14px;display:grid}.stamp-overlay{z-index:80;pointer-events:none;background:#2d171c2e;place-items:center;display:grid;position:absolute;inset:0}.stamp-burst{aspect-ratio:1;border:8px double var(--color-primary);width:clamp(180px,55cqw,250px);color:var(--color-primary-dark);opacity:0;background:#fff7eaf0;border-radius:50%;align-content:center;place-items:center;gap:8px;animation:.86s cubic-bezier(.2,1.45,.28,1) forwards stampHit;display:grid;transform:rotate(-9deg)scale(.2);box-shadow:0 18px 42px #2d171c47}.stamp-burst strong{font-family:var(--font-pixel);font-size:clamp(2.4rem,14cqw,4rem);line-height:.9}.stamp-location,.stamp-name{text-align:center;word-break:keep-all;padding:0 12px;font-size:clamp(.9rem,4cqw,1.15rem);line-height:1.2}.stamp-overlay.leaving .stamp-burst{animation:.26s forwards stampLeave}@keyframes stampHit{0%{opacity:0;transform:rotate(-9deg)scale(.2)}54%{opacity:1;transform:rotate(-9deg)scale(1.08)}to{opacity:1;transform:rotate(-9deg)scale(1)}}@keyframes stampLeave{to{opacity:0;transform:rotate(-9deg)scale(.92)}}@keyframes talkSquish{0%,to{transform:translateY(0)scaleY(1)}45%{transform:translateY(2px)scaleY(.985)}}@keyframes mascotFloat{0%,to{transform:translateY(0)rotate(-1.5deg)}50%{transform:translateY(-7px)rotate(1.5deg)}}.mini-game-scrim{z-index:3;background:linear-gradient(#2d171c29,#fff7eab8);place-items:center;padding:clamp(14px,5cqw,24px);display:grid;position:absolute;inset:0;overflow-y:auto}.mini-game-card{border:var(--border-strong);background:var(--color-paper);width:min(980px,96%);max-height:calc(100cqh - 28px);box-shadow:var(--shadow-soft);border-radius:12px;padding:clamp(16px,5cqw,24px);overflow-y:auto}.mini-game-copy{text-align:center}.mini-game-copy h1{color:var(--color-primary-dark);font-family:var(--font-pixel);font-size:clamp(1.65rem,8cqw,2.4rem);line-height:1.05}.mini-game-copy p:last-child,.mini-game-status{max-width:720px;color:var(--color-muted);word-break:keep-all;margin:10px auto 0;font-size:clamp(.95rem,4cqw,1.12rem);line-height:1.45}.mini-game-play{margin-top:16px}.puzzle-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;width:min(420px,92%);margin:14px auto 0;display:grid}.puzzle-tile{aspect-ratio:1;cursor:pointer;background:#fff7ea;border:3px solid #3a262a;border-radius:8px;position:relative;overflow:hidden;box-shadow:0 4px #3a262a73}.puzzle-tile i{filter:saturate(1.08)contrast(1.02);background-size:300% 300%;position:absolute;inset:0}.puzzle-tile span{z-index:1;width:24px;height:24px;color:var(--color-primary-dark);background:#fff7eadb;border:2px solid #3a262a;border-radius:50%;place-items:center;font-size:.85rem;display:grid;position:absolute;top:5px;right:5px}.puzzle-tile.selected{outline:4px solid var(--color-secondary);transform:translateY(-2px)}.puzzle-grid.solved .puzzle-tile{animation:.36s both miniPop}.puzzle-grid.showing-complete{background:#fff7ea;border:3px solid #3a262a;border-radius:12px;animation:.42s both miniPop;display:block;overflow:hidden;box-shadow:0 6px #3a262a4d}.puzzle-complete-preview{aspect-ratio:1;background-position:50%;background-size:cover;width:100%;position:relative}.puzzle-complete-preview span{color:#fff;background:var(--color-primary);box-shadow:0 3px 0 var(--color-primary-dark);border:2px solid #3a262a;border-radius:999px;padding:5px 10px;font-size:.82rem;position:absolute;bottom:10px;right:10px}.match-card{border:var(--border-strong);min-height:48px;color:var(--color-ink);cursor:pointer;background:#ffffffb8;border-radius:999px;padding:12px 18px;box-shadow:0 4px #3a262a57}.match-card.matched{color:#35292d}.match-card.match-0.matched{background:#ffd3df}.match-card.match-1.matched{background:#bfeee5}.match-card.match-2.matched{background:#ffe39a}.matching-game{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;max-width:720px;margin:16px auto 0;display:grid}.robot-board{--cols:4;grid-template-columns:repeat(var(--cols), minmax(0, 1fr));background:#dff3ec;border:3px solid #3a262a;border-radius:14px;gap:5px;width:min(270px,88%);margin:14px auto 0;padding:8px;display:grid;box-shadow:0 5px #3a262a47}.robot-cell{aspect-ratio:1;background:#ffffffbd;border:1px solid #3a262a38;border-radius:7px;place-items:center;display:grid}.robot-cell.goal{background:#ffe299}.robot-cell.goal:after{content:"★";color:var(--color-primary)}.robot-cell.checkpoint{background:#c6efe5}.robot-cell.checkpoint:after{content:"D";aspect-ratio:1;background:var(--color-teal);color:#fff;border:2px solid #3a262a;border-radius:4px;place-items:center;width:48%;font-size:clamp(.58rem,2.5cqw,.78rem);font-weight:900;display:grid;box-shadow:inset 0 0 0 2px #fff7ea}.robot-cell.checkpoint.collected:after{opacity:.16;transform:scale(.7)}.robot-cell.wall{background:repeating-linear-gradient(45deg,#8a7479,#8a7479 5px,#6f5b60 5px 10px)}.robot-cell.robot:before{content:"";background:radial-gradient(circle at 7px 8px, #fff 0 2px, transparent 3px), radial-gradient(circle at 17px 8px, #fff 0 2px, transparent 3px), var(--color-teal);width:24px;height:20px;box-shadow:0 -5px 0 -2px var(--color-primary), 0 3px 0 #3a262a40;border:3px solid #3a262a;border-radius:5px}.robot-queue{flex-wrap:wrap;justify-content:center;gap:5px;min-height:36px;margin:8px auto 0;display:flex}.robot-queue span{background:#fff;border:2px solid #3a262a59;border-radius:999px;padding:3px 7px;font-size:.8rem}.robot-queue .empty{color:var(--color-muted);border-style:dashed}.robot-budget{color:var(--color-primary-dark);text-align:center;margin-top:5px;font-size:.86rem}.robot-difficulty-intro{text-align:center}.robot-difficulty-intro>p:last-child{color:var(--color-muted);margin-top:5px;font-size:.88rem}.robot-difficulty-list{gap:8px;width:min(330px,96%);margin:14px auto 0;display:grid}.robot-difficulty-card{width:100%;color:var(--color-ink);text-align:left;cursor:pointer;background:#fff;border:2px solid #3a262a;border-radius:12px;grid-template-rows:auto auto;grid-template-columns:42px 1fr;align-items:center;column-gap:10px;padding:10px 12px;display:grid;position:relative;box-shadow:0 4px #3a262a38}.robot-difficulty-card.recommended:after{content:"추천";color:#fff;background:var(--color-primary);border-radius:999px;padding:2px 8px;font-size:.7rem;position:absolute;top:-7px;right:10px}.difficulty-badge{color:#fff;background:var(--color-teal);border:2px solid #3a262a;border-radius:10px;grid-row:1/3;place-items:center;width:40px;height:40px;font-size:1.15rem;display:grid}.robot-difficulty-card strong{color:var(--color-primary-dark)}.robot-difficulty-card small{color:var(--color-muted);margin-top:2px}.robot-level-heading{min-height:32px;position:relative}.robot-level-heading .mini-game-status{margin-top:0;padding-inline:60px 4px}.robot-change-level{min-height:30px;color:var(--color-primary-dark);cursor:pointer;background:#ffecc5;border:0;border-radius:999px;padding:4px 8px;position:absolute;top:0;left:0}.robot-legend{color:var(--color-muted);justify-content:center;gap:14px;margin-top:7px;font-size:.78rem;display:flex}.robot-legend span{align-items:center;gap:4px;display:inline-flex}.robot-legend i{border:2px solid #3a262a;border-radius:5px;place-items:center;width:20px;height:20px;font-style:normal;font-weight:900;display:inline-grid}.legend-data{color:#fff;background:var(--color-teal)}.legend-goal{color:var(--color-primary);background:#ffe299}.robot-move-guide{color:var(--color-teal);text-align:center;margin-top:6px;font-size:.78rem}.robot-step-picker{justify-content:center;gap:6px;margin-top:7px;display:flex}.robot-step-picker button{min-width:56px;min-height:32px;color:var(--color-ink);background:#fff;border:2px solid #3a262a;border-radius:999px}.robot-step-picker button.selected{color:#fff;background:var(--color-primary);box-shadow:0 3px 0 var(--color-primary-dark)}.robot-controls,.robot-actions{flex-wrap:wrap;justify-content:center;gap:6px;margin-top:8px;display:flex}.robot-controls button{min-height:36px;color:var(--color-ink);cursor:pointer;background:#fff4cd;border:2px solid #3a262a;border-radius:10px;padding:5px 8px;box-shadow:0 3px #3a262a3d}.robot-controls button:disabled,.robot-actions button:disabled,.robot-step-picker button:disabled{opacity:.5}.robot-actions .primary-button,.robot-actions .secondary-button{margin-top:0}.mini-game-status.success{color:var(--color-teal);font-size:1.1rem}.match-column{gap:10px;display:grid}.match-card{text-align:center;border-radius:10px;width:100%}.match-card.selected{color:#fff;background:var(--color-teal)}.mini-claim-button{margin:16px auto 0;display:block}.mini-claim-button:disabled{opacity:.45;cursor:not-allowed}.resource-links{border-top:2px dashed #3a262a3d;margin-top:16px;padding-top:14px}.resource-links>p{color:var(--color-primary-dark);text-align:center;margin-bottom:8px;font-size:clamp(1rem,4cqw,1.18rem)}.resource-links>div{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.resource-card{color:var(--color-ink);background:#ffffffad;border:2px solid #3a262a38;border-radius:10px;gap:5px;padding:12px;text-decoration:none;display:grid}.resource-card strong{color:var(--color-primary-dark)}.resource-card span{color:var(--color-muted);font-size:.95rem;line-height:1.35}@keyframes miniShake{0%,to{transform:translate(0)}35%{transform:translate(-6px)}70%{transform:translate(6px)}}@keyframes miniPop{50%{transform:scale(1.04)}}@media (width<=760px){.ending-grid{grid-template-columns:1fr}.mini-game-scrim{padding:max(10px, env(safe-area-inset-top)) 10px max(14px, env(safe-area-inset-bottom));align-items:start}.mini-game-card{width:100%;max-height:calc(100vh - 24px)}.matching-game,.resource-links>div{grid-template-columns:1fr}.puzzle-grid{gap:6px;width:min(330px,96%)}.match-card{min-height:44px;padding:10px 14px}.title-mascot{width:clamp(46px,14vw,62px)}}@container game (height<=720px){.title-card{padding-block:18px}.title-copy{margin-top:14px}.primary-button{margin-top:18px}.title-mascot{width:48px}}.dialogue-overlay{z-index:20;padding:0 10px max(12px, env(safe-area-inset-bottom));pointer-events:none;flex-direction:column;justify-content:flex-end;display:flex;position:absolute;inset:0;overflow:hidden}.dialogue-wrapper{grid-template-columns:minmax(0,1fr) 92px;align-items:end;width:100%;margin:0 auto;display:grid;position:relative}.dialogue-mascots{z-index:3;pointer-events:none;align-items:flex-end;gap:1px;display:flex;position:absolute;bottom:calc(100% + 6px);left:7px}.dialogue-mascot{object-fit:contain;filter:drop-shadow(0 5px #3a262a2e);transform-origin:bottom;width:clamp(38px,11cqw,50px);height:auto;animation:3.8s ease-in-out infinite mascotFloat}.dialogue-mascot.hedgehog{margin-left:-5px;animation-delay:-1.4s}.dialogue-character{z-index:2;object-fit:contain;object-position:bottom center;filter:drop-shadow(0 6px #3a262a2e);transform-origin:bottom;pointer-events:none;grid-area:1/2;place-self:end center;width:106px;max-height:25cqh;margin-left:-19px}.is-talking .dialogue-character{animation:.7s ease-in-out infinite talkSquish}.dialogue-box{min-height:18cqh;max-height:21cqh;color:var(--color-ink);cursor:pointer;pointer-events:auto;background:#fffaeff5;border:2px solid #3a262a;border-radius:12px;grid-area:1/1/auto/3;padding:14px 98px 14px 14px;position:relative;overflow:hidden;box-shadow:0 10px 24px #3c1e2333}.dialogue-box:focus-visible{outline:3px solid var(--color-secondary);outline-offset:3px}.dialogue-name{display:none!important}.dialogue-text{word-break:keep-all;max-width:100%;font-size:clamp(.92rem,4cqw,1.08rem);line-height:1.38}.dialogue-choices{pointer-events:auto;grid-template-columns:1fr;gap:7px;width:100%;margin:7px auto 8px;display:grid}.choice-button{min-height:38px;color:var(--color-ink);cursor:pointer;word-break:keep-all;transition:transform var(--transition-fast), background var(--transition-fast);background:#fffaeffa;border:2px solid #3a262a;border-radius:10px;padding:8px 10px;font-size:clamp(.88rem,3.6cqw,1rem);line-height:1.24;box-shadow:0 3px #3a262a33}.choice-button:hover,.choice-button:focus-visible{background:#ffe3a1;outline:none;transform:translateY(-1px)}.typing-cursor:after{content:"▼";color:var(--color-primary);font-size:.8rem;animation:.9s ease-in-out infinite cursorBounce;position:absolute;bottom:9px;right:12px}@keyframes cursorBounce{50%{transform:translateY(4px)}}@container game (width>=520px){.dialogue-wrapper{grid-template-columns:minmax(0,1fr) 125px}.dialogue-character{width:142px}.dialogue-box{padding-right:132px}.dialogue-choices{grid-template-columns:repeat(3,minmax(0,1fr))}}@container game (height<=650px){.dialogue-box{min-height:20cqh;max-height:23cqh;padding-block:11px}.dialogue-character{width:91px;max-height:26cqh}.dialogue-text{font-size:.9rem;line-height:1.3}}.map-container{background:radial-gradient(circle at 50% 20%,#ffffffeb,#0000 38%),linear-gradient(#f8e9dc 0%,#fff8ec 58%,#ead8c7 100%);overflow:hidden}.map-heading{z-index:5;top:max(14px, env(safe-area-inset-top));text-align:center;pointer-events:none;width:88%;position:absolute;left:50%;transform:translate(-50%)}.map-heading p{color:var(--color-teal);font-size:clamp(.78rem,3.4cqw,.95rem)}.map-heading h1{color:var(--color-primary-dark);font-family:var(--font-pixel);letter-spacing:-.03em;margin-top:3px;font-size:clamp(1.35rem,7cqw,2rem)}.map-art{place-items:center;display:grid;position:absolute;inset:11cqh 6cqw 21cqh}.puzzle-frame{aspect-ratio:9/16;background:#fffaefb3;border:2px solid #5d363c59;border-radius:18px;width:min(42.075cqh,96cqw);position:relative;overflow:visible;box-shadow:0 14px 34px #4c2a2f2e}.puzzle-campus{width:100%;height:100%;display:block;overflow:visible}.map-base{opacity:.34;pointer-events:none}.map-piece{cursor:pointer;pointer-events:none;outline:none}.map-piece-color{opacity:0;filter:saturate(.2)brightness(1.08);pointer-events:none;transition:opacity .36s,filter .52s}.map-piece.completed .map-piece-color{opacity:1;filter:saturate(1.08)brightness(1.01)}.map-piece-hit{fill:#ffffff05;stroke:#3a262a6b;stroke-width:2px;vector-effect:non-scaling-stroke;pointer-events:all;cursor:pointer;transition:fill .16s,stroke .16s}.map-piece:hover .map-piece-hit,.map-piece:focus-visible .map-piece-hit{fill:#f3c74b2e;stroke:var(--color-primary);stroke-width:3px}.map-piece.just-completed{animation:.72s cubic-bezier(.2,1.4,.3,1) puzzleSnap}.map-game-badge{pointer-events:none}.map-game-badge text{text-anchor:middle;dominant-baseline:central;font-size:18px}@keyframes puzzleSnap{0%{opacity:.48;filter:brightness(1.38)saturate(.55)}58%{opacity:1;filter:brightness(1.16)saturate(1.28)}to{opacity:1;filter:brightness()saturate()}}.map-location-sheet{z-index:8;background:#fffaeffa;border:2px solid #3a262a;border-radius:14px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px 12px;animation:.22s sheetUp;display:grid;position:absolute;bottom:calc(75px - 11.6cqh);left:8px;right:8px;box-shadow:0 10px 24px #3c1e2338}.map-location-sheet div{gap:2px;display:grid}.map-location-sheet strong{color:var(--color-primary-dark);font-size:1rem}.map-location-sheet span{color:var(--color-muted);font-size:.78rem;line-height:1.2}.map-location-sheet button,.map-ending-button{color:#fff;background:var(--color-primary);min-height:40px;box-shadow:0 3px 0 var(--color-primary-dark);cursor:pointer;border:2px solid #3a262a;border-radius:10px;padding:7px 11px}.map-footer{z-index:6;right:14px;bottom:max(6cqh, calc(env(safe-area-inset-bottom) + 12px));justify-content:space-between;align-items:center;gap:10px;display:flex;position:absolute;left:14px}.map-progress{color:var(--color-primary-dark);font-family:var(--font-pixel);background:#fffaeff5;border:2px solid #3a262a8c;border-radius:999px;padding:8px 12px;font-size:.92rem}.map-ending-button:disabled{cursor:default;opacity:.58;background:#827579;box-shadow:0 3px #544c4e}@keyframes sheetUp{0%{opacity:0;transform:translateY(14px)}}@media (prefers-reduced-motion:reduce){.map-piece.just-completed{animation:none}.map-piece-color{transition:opacity .12s linear}}.tour-milestone-overlay{z-index:30;padding:max(12px, env(safe-area-inset-top)) 12px max(12px, env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#2b1c2094;place-items:center;animation:.24s milestoneIn;display:grid;position:absolute;inset:0}.tour-milestone-card{background:#fffaf0;border:3px solid #3a262a;border-radius:18px;width:min(360px,100%);max-height:100%;overflow-y:auto;box-shadow:0 18px 46px #29181d5c}.tour-welcome-art{background:linear-gradient(145deg,#f7d9c7,#fff4d2);height:min(31cqh,250px);position:relative;overflow:hidden}.tour-welcome-art img{object-fit:cover;object-position:center 35%;width:100%;height:100%}.tour-welcome-art.image-missing:after{content:"복자에서 기다릴게!";color:var(--color-primary-dark);place-items:center;font-size:1.25rem;display:grid;position:absolute;inset:0}.tour-welcome-art span{color:#fff;background:var(--color-primary);border:2px solid #3a262a;border-radius:999px;padding:5px 10px;font-size:.78rem;position:absolute;top:10px;left:10px}.tour-milestone-copy{text-align:center;padding:15px 16px 16px}.tour-milestone-copy h2{color:var(--color-primary-dark);font-family:var(--font-pixel);margin-top:3px;font-size:clamp(1.65rem,8cqw,2.1rem)}.tour-invite{color:var(--color-ink);word-break:keep-all;margin-top:6px;font-size:1rem;line-height:1.35}.tour-supporting{color:var(--color-muted);word-break:keep-all;margin-top:5px;font-size:.82rem;line-height:1.3}.briefing-sessions{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:12px;display:grid}.briefing-sessions div{background:#fff0ca;border:2px solid #3a262a3d;border-radius:11px;gap:2px;padding:8px 5px;display:grid}.briefing-sessions strong{color:var(--color-primary-dark);font-size:.78rem}.briefing-sessions span{color:var(--color-ink);font-size:.72rem}.briefing-sessions b{color:var(--color-teal);font-size:1rem}.briefing-notice{color:var(--color-muted);margin-top:7px;font-size:.72rem}.tour-milestone-actions{grid-template-columns:.8fr 1.2fr;gap:7px;margin-top:10px;display:grid}.tour-milestone-actions .primary-button,.tour-milestone-actions .secondary-button{min-height:44px;margin-top:0;padding:8px 7px;font-size:.86rem}.puzzle-celebration{z-index:40;padding:max(12px, env(safe-area-inset-top)) 12px max(12px, env(safe-area-inset-bottom));background:radial-gradient(circle,#fff7ea52,#4a262c85);place-items:center;transition:opacity .24s;display:grid;position:absolute;inset:0;overflow:hidden}.puzzle-celebration.leaving{opacity:0}.confetti-field{position:absolute;inset:0}.confetti-field i{top:-8%;left:var(--x);background:var(--color);width:9px;height:17px;animation:confettiFall 1.55s var(--delay) cubic-bezier(.2,.7,.25,1) forwards;border-radius:2px;position:absolute}.completion-card{z-index:2;text-align:center;background:#fffaeffa;border:3px solid #3a262a;border-radius:18px;width:min(350px,100%);padding:18px 16px 16px;animation:.7s cubic-bezier(.2,1.45,.3,1) completionPop;position:relative;box-shadow:0 14px 36px #3c1e2352}.completion-label{color:var(--color-teal);font-size:.82rem}.completion-card h2{color:var(--color-primary-dark);font-family:var(--font-pixel);word-break:keep-all;margin-top:7px;font-size:clamp(1.45rem,7cqw,1.9rem);line-height:1.12}.completion-body{color:var(--color-ink);margin-top:8px;font-size:.92rem}.completion-supporting{color:var(--color-muted);word-break:keep-all;margin-top:5px;font-size:.8rem;line-height:1.3}.completion-actions{gap:8px;margin-top:12px;display:grid}.completion-actions .primary-button,.completion-actions .secondary-button{width:100%;min-height:44px;margin-top:0}@keyframes milestoneIn{0%{opacity:0;transform:scale(.97)}}@keyframes confettiFall{to{transform:translate3d(calc((var(--x) - 50%) * -.18), 115cqh, 0) rotate(var(--spin))}}@keyframes completionPop{0%{opacity:0;transform:scale(.55)rotate(-4deg)}65%{opacity:1;transform:scale(1.06)rotate(1deg)}to{transform:scale(1)}}@media (prefers-reduced-motion:reduce){.tour-milestone-overlay,.completion-card{animation:none}.confetti-field{display:none}}
