:root{--paper:#f3eedf;--ink:#603024;--orange:#f0641e;--teal:#0c6c78;--navy:#12309c;--fog:#c0a8cc}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;width:100%;min-height:100%;background:var(--paper);color:var(--ink);font-family:-apple-system,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;user-select:none}body{overflow-x:hidden}button{font:inherit;cursor:pointer;touch-action:manipulation;color:inherit;min-height:44px;border:0}button:focus-visible{outline:3px solid var(--navy);outline-offset:3px}button:disabled{cursor:default;opacity:.48}button:active:not(:disabled){transform:translateY(3px)}[hidden]{display:none!important}.primary{background:var(--orange);color:#fff8ed;box-shadow:0 5px 0 #b74316;border-radius:20px;font-weight:900;font-size:23px;min-height:64px;padding:12px 24px}.secondary{border:1px solid #a3afa7;background:#eeeadd;border-radius:12px;font-size:12px;font-weight:700;padding:6px 10px}.icon{width:44px;height:44px;background:#f3eedf;border:1px solid #c3c2ae;border-radius:50%;font-size:24px;display:grid;place-items:center}.global-mute{position:fixed;z-index:20;right:max(14px,env(safe-area-inset-right));top:max(13px,env(safe-area-inset-top))}.text-button{background:none;font-weight:700;color:var(--teal);padding:10px 18px;font-size:14px}.eyebrow{font-size:12px;letter-spacing:.18em;font-weight:800;color:var(--teal)}.title-screen{height:100dvh;min-height:580px;position:relative;overflow:hidden;background:#dedaca}.title-art{position:absolute;inset:0;background:url('./assets/backdrop.png') center 55%/cover no-repeat;transform:scale(1.025)}.title-mist{position:absolute;inset:0;background:linear-gradient(180deg,#f1eddfbb,transparent 45%,transparent 68%,#f3eedff2)}.title-heading{position:absolute;left:8%;top:11%;z-index:2}.title-heading h1{margin:15px 0 18px;line-height:1;letter-spacing:-.07em;display:flex;gap:14px;align-items:center;font-size:clamp(64px,8.2vw,116px)}.title-heading h1 span{color:var(--teal);transform:rotate(-4deg);border-bottom:7px solid #0c6c7833;padding-bottom:8px}.title-heading h1 strong{background:var(--orange);color:#fff4d9;border-radius:24px;padding:12px 15px 17px;transform:rotate(4deg);box-shadow:6px 8px 0 #9b472f}.title-heading p{font-weight:800;font-size:18px;letter-spacing:-.03em}.title-jaei{position:absolute;height:42%;max-height:340px;left:13%;bottom:18%;object-fit:contain;filter:drop-shadow(0 12px 6px #60302420)}.title-bottom{position:absolute;right:9%;bottom:7%;width:min(340px,84%);display:grid;gap:10px;text-align:center}.best{font-weight:800;font-size:13px;background:#f3eedfe8;padding:6px 10px;border-radius:10px;justify-self:center}.title-bottom .primary{height:72px}.title-bottom .text-button{color:#473628}header{height:69px;padding:13px 72px 10px 24px;display:flex;align-items:center;justify-content:space-between;gap:8px;background:#f3eedf}.brand{font-size:19px;font-weight:900}.brand small{font-size:12px;display:block;margin-top:3px;color:var(--teal)}.head-right{display:flex;gap:14px;align-items:center;font-weight:900}#score{color:var(--teal);font-variant-numeric:tabular-nums}#hearts{color:#a44826;font-size:17px;letter-spacing:2px}.progress{display:flex;gap:5px;padding:0 24px 9px}.progress i{display:block;flex:1;height:5px;border-radius:3px;background:#d5cfc1}.progress i.done{background:var(--teal)}.progress i:nth-child(3n){margin-right:8px}#scene{height:clamp(330px,calc(100dvh - 400px),900px);position:relative;overflow:hidden;background:#e4e4d8}canvas{width:100%;height:100%;display:block;touch-action:none}#forts{position:absolute;inset:0;pointer-events:none}.fort-target{pointer-events:auto;position:absolute;top:24%;width:clamp(78px,12%,150px);height:66px;transform:translateX(-50%);background:#fff5dd;border-radius:16px;box-shadow:0 5px 0 #8a73644a;font-weight:900;display:grid;align-content:center;gap:3px;color:#603024}.fort-target small{font-size:10px;letter-spacing:.04em}.fort-target b{font-size:22px}.fort-target.active{outline:3px solid var(--orange);outline-offset:4px}.fort-target.cleared{background:#d9e9da;color:var(--teal);opacity:.8}.fort-target:active{transform:translateX(-50%) translateY(3px)!important}#scene-label{position:absolute;top:9px;left:24px;font-size:11px;font-weight:700;color:#766d61}#burst{position:absolute;left:50%;bottom:23px;transform:translateX(-50%);border-radius:15px;padding:8px 20px;background:#fff7e8;font-size:21px;font-weight:900;opacity:0;transition:opacity .2s;white-space:nowrap}#burst.show{opacity:1}.workbench{max-width:1080px;margin:0 auto;padding:16px 24px 14px}.mission{display:flex;align-items:center;gap:24px;margin-bottom:15px}.mission>div:first-child{display:flex;align-items:baseline;gap:15px;flex:1}.mission #target-label{font-size:12px;font-weight:800;color:var(--teal)}#target-expression{font-size:26px;letter-spacing:-.03em}.remaining,.shot-info{display:flex;align-items:center;gap:10px}.remaining small,.shot-info small{font-size:11px}.remaining strong{font-size:26px;color:var(--teal)}.shot-info strong{font-size:15px;color:#f0641e}.loaders{display:grid;grid-template-columns:1fr 1fr;gap:26px}.loader label{display:block;font-size:12px;font-weight:800;margin-bottom:8px}.loader label>span{display:inline-grid;place-items:center;border-radius:50%;width:20px;height:20px;background:var(--teal);color:white;margin-right:6px;font-size:10px}.loader label small{float:right;color:#8f8577;font-size:10px}.choices{display:flex;gap:8px}.choice{height:48px;min-width:44px;flex:1;position:relative;border-radius:13px;background:#e1d9c5;box-shadow:0 3px 0 #bbb298;font-size:22px;font-weight:900;color:var(--ink)}.choice.selected{background:var(--teal);color:#fff8e5;box-shadow:0 3px 0 #044c54}.choice .unit{font-size:10px;margin-left:3px}.loading{display:flex;align-items:center;gap:16px;margin-top:15px;min-height:64px}#array{width:145px;display:grid;grid-template-columns:repeat(10,1fr);gap:3px;align-content:center}#array span{height:8px;border-radius:3px;background:#ed9761}#load-expression{font-size:18px;font-weight:900;flex:1}.loading .primary{min-width:205px;min-height:57px;font-size:22px;border-radius:15px}.loading .primary small{font-size:9px;margin-left:10px;opacity:.8}.assistant{display:flex;align-items:center;gap:8px;min-height:56px;margin-top:10px}.assistant img{width:48px;height:50px;object-fit:contain}.assistant p{flex:1;margin:0;font-size:12px;line-height:1.5;font-weight:700}.ledger{font-size:11px;color:#6e7067;border-top:1px solid #d6d0c1;padding-top:8px;min-height:25px;font-variant-numeric:tabular-nums}.overlay{position:fixed;z-index:30;inset:0;background:#c0a8cc99;display:grid;place-items:center;padding:20px;backdrop-filter:blur(5px)}.sheet{position:relative;width:min(430px,100%);background:#f5efdf;border-radius:30px;text-align:center;padding:30px 28px 24px;box-shadow:0 12px 0 #81786633}.sheet>img{display:block;width:145px;height:150px;object-fit:contain;margin:6px auto}.sheet h2{font-size:30px;line-height:1.15;letter-spacing:-.06em;margin:10px 0}.sheet p{font-size:15px;line-height:1.7;white-space:pre-line;margin:14px 0 22px}.sheet .primary{width:100%;font-size:20px}.sheet #sheet-extra{font-size:13px;font-weight:800;color:var(--teal);margin:12px 0 20px}.sheet .text-button{margin-top:9px}.helper{background:#e3dfce;padding:12px;border-radius:12px;font-size:20px;letter-spacing:.03em}
@media(max-width:650px){.title-heading{left:8%;right:8%;top:12%;text-align:center}.title-heading h1{justify-content:center;font-size:clamp(57px,16vw,85px);gap:10px}.title-heading .eyebrow{font-size:10px}.title-heading p{font-size:15px}.title-jaei{left:-7%;bottom:23%;height:37%}.title-art{background-position:59% 50%}.title-bottom{right:8%;bottom:4%}header{padding-left:15px;height:65px}.head-right{gap:8px}#hearts{font-size:11px;letter-spacing:0}#score{font-size:13px}.brand{font-size:16px}.brand small{font-size:10px}.progress{padding-left:15px;padding-right:15px}.workbench{padding:12px 12px}#scene{height:max(290px,calc(100dvh - 386px))}#scene-label{left:15px;font-size:10px}.fort-target{height:58px;min-width:78px;top:22%}.fort-target b{font-size:19px}.fort-target small{font-size:9px}.mission{gap:10px;margin-bottom:12px}.mission>div:first-child{display:block}.mission #target-label{font-size:10px;display:block;margin-bottom:3px}#target-expression{font-size:22px}.remaining,.shot-info{display:block;text-align:center}.remaining small,.shot-info small{display:block;font-size:9px;margin-bottom:4px}.remaining strong{font-size:22px}.shot-info strong{font-size:12px}.loaders{gap:8px}.loader label{font-size:10px;margin-bottom:7px;white-space:nowrap}.loader label small{display:none}.loader label>span{width:16px;height:16px;font-size:9px;margin-right:3px}.choices{gap:1px}.choice{font-size:18px;min-width:44px;height:48px;border-radius:10px}.choice .unit{font-size:8px;margin-left:1px}.loading{gap:10px;margin-top:12px}#array{display:none}#load-expression{font-size:17px;line-height:1.3}.loading .primary{min-width:132px;min-height:58px;padding:10px}.loading .primary small{display:none}.assistant{gap:5px;margin-top:8px}.assistant img{width:36px;height:44px}.assistant p{font-size:11px}.assistant .secondary{font-size:10px;padding:5px;max-width:54px;min-width:46px;line-height:1.3}.ledger{font-size:10px;line-height:1.5}.sheet{padding:22px}.sheet>img{height:120px;width:125px}.sheet h2{font-size:27px}.sheet p{font-size:14px}#burst{font-size:17px;padding:8px 14px}}
@media(max-height:730px) and (max-width:650px){#scene{height:max(240px,calc(100dvh - 375px))}.workbench{padding-top:8px}.mission{margin-bottom:9px}.loading{margin-top:8px}.assistant{margin-top:6px}.ledger{padding-top:5px}.title-heading{top:10%}.title-jaei{height:33%;bottom:25%}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

@media(max-width:379px){.loaders{grid-template-columns:1fr}.choices{gap:6px}#scene{height:max(220px,calc(100dvh - 465px))}}
