:root{--night:#081426;--panel:#10233d;--gold:#f6c453;--cream:#fff8df;--red:#ef5350;--green:#40c878;--muted:#aebbd0;--safe-bottom:env(safe-area-inset-bottom,0px)}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;min-height:100%;background:radial-gradient(circle at 50% -15%,#27476b 0,var(--night) 55%);color:var(--cream);font-family:system-ui,-apple-system,"Noto Sans KR",sans-serif}body{min-height:100dvh;overscroll-behavior:none}button,input{font:inherit}.app{width:min(100%,540px);min-height:100dvh;margin:auto;padding:20px 18px calc(24px + var(--safe-bottom));display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;min-height:42px}.brand{color:var(--gold);font-weight:900;letter-spacing:-.03em}.icon-btn{border:1px solid #ffffff30;background:#ffffff0d;color:white;border-radius:50%;width:42px;height:42px;font-size:20px}.card{background:linear-gradient(160deg,#142b49,#0d1e34);border:1px solid #ffffff1f;border-radius:24px;padding:24px;box-shadow:0 18px 50px #0007}.hero{margin:auto 0;text-align:center}.eyebrow{font-size:13px;letter-spacing:.18em;color:var(--gold);font-weight:900}.hero h1{font-size:clamp(30px,9vw,48px);line-height:1.08;margin:12px 0}.hero p{color:var(--muted);line-height:1.65}.sheep{font-size:72px;filter:drop-shadow(0 8px 18px #0008)}.btn{width:100%;min-height:56px;border:0;border-radius:16px;background:var(--gold);color:#201600;font-weight:900;padding:13px 18px;cursor:pointer}.btn:active{transform:scale(.98)}.btn.secondary{background:#ffffff10;color:white;border:1px solid #ffffff28}.btn.danger{background:var(--red);color:white}.btnrow{display:grid;gap:10px;margin-top:20px}.meta{display:flex;justify-content:center;gap:14px;color:var(--muted);font-size:14px;margin:18px 0}.notice{padding:13px;border-radius:14px;background:#ffffff0b;color:var(--muted);font-size:14px;line-height:1.5}.mission-stage{flex:1;display:flex;flex-direction:column;justify-content:center;text-align:center;touch-action:none;user-select:none}.hidden{display:none!important}.countdown{font-size:96px;font-weight:900;color:var(--gold);animation:pulse .7s infinite alternate}.timer{font-variant-numeric:tabular-nums;font-size:28px;font-weight:900}.progress{height:12px;background:#ffffff18;border-radius:99px;overflow:hidden;margin:14px 0}.progress>i{height:100%;width:0;display:block;background:linear-gradient(90deg,var(--gold),#fff1a5);transition:width .12s linear}.big-number{font-size:clamp(100px,38vw,190px);font-weight:1000;line-height:1;color:var(--gold);text-shadow:0 0 40px #f6c45355}.success{color:var(--green)}.failure{color:var(--red)}.hold-target{width:min(76vw,330px);aspect-ratio:1;margin:18px auto;border:4px solid var(--gold);border-radius:50%;display:grid;place-items:center;font-size:84px;background:#f6c45312;touch-action:none}.balance-board{height:320px;position:relative;border-radius:50%;border:3px solid #ffffff28;margin:20px auto;width:min(84vw,360px);background:repeating-radial-gradient(circle,#fff0 0 38px,#ffffff12 40px 42px)}.balance-target{position:absolute;width:90px;height:90px;border:3px solid var(--green);border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%)}.ball{position:absolute;width:46px;height:46px;border-radius:50%;background:#fff7ad;box-shadow:0 0 28px var(--gold);left:50%;top:50%;transform:translate(-50%,-50%)}.tap-button{width:min(75vw,320px);aspect-ratio:1;border-radius:50%;border:6px solid #ffffff22;background:linear-gradient(#4cb7ee,#1879bb);color:white;font-size:72px;margin:20px auto;touch-action:manipulation}.maze{position:relative;width:100%;height:380px;margin:12px 0;background:#091628;border-radius:20px;overflow:hidden;border:2px solid #ffffff20}.maze-path{position:absolute;inset:0;width:100%;height:100%}.maze-path path{fill:none;stroke:#d6b96b;stroke-width:var(--path-width,42);stroke-linecap:round;stroke-linejoin:round}.maze-sheep{position:absolute;width:52px;height:52px;display:grid;place-items:center;font-size:40px;transform:translate(-50%,-50%);touch-action:none}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:22px auto;width:min(86vw,360px)}.shield{aspect-ratio:1;border:2px solid #ffffff26;border-radius:18px;background:#1c3654;color:#d5deeb;font-size:38px}.shield.lit{background:var(--gold);color:#211700;box-shadow:0 0 25px #f6c45399}.initials{font-size:28px;line-height:1.7;letter-spacing:.08em;color:var(--gold);word-break:keep-all}.answer{width:100%;border:2px solid #ffffff26;background:#071426;color:white;border-radius:15px;padding:16px;font-size:18px;margin-top:18px}.touches{display:grid;grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,150px);gap:18px;margin:18px 0}.touch-pad{border:3px solid #ffffff40;background:#183553;color:white;border-radius:28px;font-size:40px;font-weight:900;touch-action:none}.touch-pad:nth-child(3){grid-column:1/3;width:50%;justify-self:center}.touch-pad.active{background:var(--gold);color:#241900;box-shadow:0 0 25px #f6c45377}.own-code{font-size:58px;letter-spacing:.15em;color:var(--gold);font-weight:900;margin:16px 0}.code-input{font-size:36px;letter-spacing:.25em;text-align:center;width:100%;padding:13px;border-radius:15px;border:2px solid #ffffff35;background:#071426;color:white}.mission-list{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:18px}.mission-link{text-decoration:none;color:white;background:#ffffff0d;border:1px solid #ffffff20;border-radius:16px;padding:16px;min-height:105px}.mission-link b{display:block;color:var(--gold);font-size:13px;margin-bottom:8px}.status-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:#667;margin-right:5px}.status-dot.done{background:var(--green)}table{width:100%;border-collapse:collapse}th,td{padding:11px 7px;border-bottom:1px solid #ffffff18;text-align:left;font-size:14px}code{color:var(--gold)}.offline{position:fixed;left:50%;top:8px;transform:translateX(-50%);background:var(--red);padding:8px 14px;border-radius:99px;font-weight:800;z-index:20}@keyframes pulse{to{transform:scale(1.1)}}@media(max-height:650px){.app{padding-top:10px}.hero h1{font-size:32px}.hold-target{width:220px}.balance-board{height:250px;width:250px}.touches{grid-template-rows:repeat(2,105px)}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
