:root{--ink: #100d0b;--char: #1d1915;--parch: #eadcc2;--ash: #9a9184;--ember: #e0602e;--emberhi: #ffb26b;--blood: #b8282f;--gold: #d8aa4c;--stam: #c7b26a;--display: "Zen Antique", "Hiragino Mincho ProN", "Yu Mincho", serif;--ui: "Zen Kaku Gothic New", "Hiragino Sans", "Yu Gothic", system-ui, sans-serif;--st: env(safe-area-inset-top, 0px);--sb: env(safe-area-inset-bottom, 0px);--sl: max(14px, env(safe-area-inset-left, 0px));--sr: max(14px, env(safe-area-inset-right, 0px));color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:var(--ink);color:var(--parch)}body{font:14px var(--ui);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}[hidden]{display:none!important}#stage{position:fixed;inset:0;touch-action:none}#game{display:block;width:100%;height:100%}#vign{position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 50%,transparent 55%,rgba(8,5,3,.55) 100%)}#hurt{position:fixed;inset:0;pointer-events:none;opacity:0;background:radial-gradient(ellipse at 50% 50%,transparent 45%,rgba(160,20,20,.55) 100%);transition:opacity .25s}#hud{position:fixed;inset:0;pointer-events:none;padding:calc(var(--st) + 12px) var(--sr) 0 var(--sl)}.vitals{display:flex;gap:10px;align-items:center}.lv{width:44px;height:44px;flex:none;display:grid;place-items:center;border:2px solid var(--gold);transform:rotate(45deg);background:#100d0bbf;margin:4px}.lv span{transform:rotate(-45deg);font-family:var(--display);font-size:18px;color:var(--gold);font-variant-numeric:tabular-nums}.bars{display:grid;gap:5px;width:min(42vw,240px)}.bar{position:relative;height:14px;background:#0a0806b3;border:1px solid rgba(234,220,194,.25);overflow:hidden}.bar i{position:absolute;inset:0;transform-origin:left;background:linear-gradient(180deg,#d8424a,var(--blood) 60%,#7d161c)}.bar #hpL{background:#f3e2c4;opacity:.85}.bar.st{height:7px}.bar.st i{background:linear-gradient(180deg,#e3d08a,var(--stam))}.bar b{position:absolute;right:5px;top:-1px;font-size:11px;font-weight:700;font-variant-numeric:tabular-nums;text-shadow:0 1px 2px #000}.xp{height:3px;background:#eadcc21f}.xp i{display:block;height:100%;background:var(--gold);transform-origin:left}.quest{margin-top:12px;max-width:min(56vw,300px);padding:8px 12px 9px;background:linear-gradient(90deg,#100d0bcc,#100d0b00);border-left:2px solid var(--ember)}.quest small{display:block;font-size:10px;letter-spacing:.2em;color:var(--ember)}.quest strong{display:block;font-family:var(--display);font-size:16px;font-weight:400;margin:2px 0}.quest span{font-size:12px;color:var(--ash);font-variant-numeric:tabular-nums}#miniWrap{position:absolute;top:calc(var(--st) + 12px);right:var(--sr);width:112px;height:112px}#mini{width:112px;height:112px;border:1px solid rgba(234,220,194,.35);border-radius:50%;background:#1a1612;box-shadow:0 0 0 4px #100d0b99}#clock{position:absolute;left:-6px;bottom:-2px;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-family:var(--display);font-size:13px;background:#100d0bd9;border:1px solid rgba(216,170,76,.6);color:var(--gold)}.purse{position:absolute;top:calc(var(--st) + 130px);right:var(--sr);width:136px;display:grid;grid-template-columns:auto 1fr auto 1fr;gap:1px 5px;font-size:11px;color:var(--ash);font-variant-numeric:tabular-nums;text-align:right}.purse em{font-style:normal;color:var(--parch);font-weight:700}.purse em.g{color:var(--gold)}#boss{position:absolute;left:50%;transform:translate(-50%);bottom:calc(var(--sb) + 250px);width:min(80vw,460px);text-align:center}.bn{font-family:var(--display);font-size:15px;letter-spacing:.12em;text-shadow:0 2px 6px #000;margin-bottom:4px}.bb{height:8px;background:#0a0806cc;border:1px solid rgba(216,170,76,.5)}.bb i{display:block;height:100%;background:linear-gradient(90deg,#7d161c,#d8424a);transform-origin:left}#comp{position:absolute;left:var(--sl);top:calc(var(--st) + 150px);font-size:11px;color:var(--ash);padding:3px 8px;background:#100d0b99;border-left:2px solid #6aa04a}#joyB,#joyK{position:fixed;border-radius:50%;pointer-events:none;transform:translate(-50%,-50%)}#joyB{width:112px;height:112px;border:2px solid rgba(234,220,194,.25);background:#100d0b40}#joyK{width:46px;height:46px;background:#eadcc259;border:2px solid rgba(234,220,194,.6)}.btn{position:absolute;border-radius:50%;display:grid;place-items:center;font-family:var(--display);color:var(--parch);background:radial-gradient(circle at 40% 35%,#463a2ed9,#14100dd9);border:1.5px solid rgba(234,220,194,.35);touch-action:none;cursor:pointer;padding:0;line-height:1}.btn:active,.btn.on{border-color:var(--emberhi);background:radial-gradient(circle at 40% 35%,#8c3e1ee6,#28120ae6)}.btn:focus-visible{outline:2px solid var(--emberhi);outline-offset:3px}.btn small{position:absolute;bottom:6px;font-family:var(--ui);font-size:9px;color:var(--ash)}#pad{position:fixed;right:var(--sr);bottom:calc(var(--sb) + 18px);width:230px;height:220px;touch-action:none}#bAtk{right:0;bottom:0;width:88px;height:88px;font-size:26px;border-color:#e0602eb3}#bHvy{right:96px;bottom:6px;width:60px;height:60px;font-size:18px}#bDod{right:6px;bottom:98px;width:60px;height:60px;font-size:18px}#bGrd{right:164px;bottom:0;width:60px;height:60px;font-size:18px;border-color:#96bee68c}#bGrb{right:82px;bottom:76px;width:52px;height:52px;font-size:16px}#bSki{right:26px;bottom:166px;width:52px;height:52px;font-size:16px;overflow:hidden}#bSki .cd{position:absolute;inset:0;border-radius:50%;background:conic-gradient(rgba(10,8,6,.75) var(--p, 0%),transparent 0)}#bSki span{position:relative}#side{position:fixed;right:var(--sr);top:calc(var(--st) + 190px);display:flex;gap:6px}.btn.sm{position:relative;width:42px;height:42px;font-size:16px}.btn.sm small{bottom:3px;font-size:8px}#bAct{position:fixed;left:50%;bottom:calc(var(--sb) + 292px);transform:translate(-50%);border-radius:0;width:auto;height:auto;padding:10px 22px;font-size:16px;background:#100d0be0;border:1px solid var(--gold);white-space:nowrap}@media (hover: hover) and (pointer: fine){#pad{opacity:.55}#pad:hover{opacity:1}}@media (min-width: 700px){#bossCard{bottom:calc(var(--sb) + 11%)}#boss{bottom:calc(var(--sb) + 40px)}#bAct{bottom:calc(var(--sb) + 120px)}}#toast{position:fixed;left:50%;top:calc(var(--st) + 244px);transform:translate(-50%);pointer-events:none;text-align:center;width:min(90vw,420px)}#toast div{font-family:var(--display);font-size:20px;letter-spacing:.06em;text-shadow:0 2px 8px #000,0 0 18px rgba(224,96,46,.4);animation:tst 2.6s forwards}#toast div small{display:block;font-family:var(--ui);font-size:12px;color:var(--ash);letter-spacing:.02em}@keyframes tst{0%{opacity:0;transform:translateY(8px)}10%,80%{opacity:1;transform:none}to{opacity:0}}.sheet{position:fixed;left:50%;transform:translate(-50%);bottom:calc(var(--sb) + 16px);width:min(calc(100vw - 32px),540px);background:linear-gradient(180deg,#1d1915f7,#100d0bf7);border:1px solid rgba(216,170,76,.5);padding:16px 18px 14px;max-height:70vh;overflow-y:auto}.sheet h3{margin:0 0 6px;font-family:var(--display);font-weight:400;font-size:15px;color:var(--gold);letter-spacing:.1em}.sheet p{margin:0 0 14px;font-size:15px;line-height:1.75;white-space:pre-line}.acts{display:flex;flex-wrap:wrap;gap:8px}.acts.col{flex-direction:column;width:min(80vw,280px)}.acts button{flex:1 1 auto;min-height:44px;padding:8px 14px;font:700 14px var(--ui);color:var(--parch);background:#eadcc20f;border:1px solid rgba(234,220,194,.3);cursor:pointer}.acts button.pri{background:var(--ember);border-color:var(--ember);color:#1a0d06}.acts button:disabled{opacity:.4;cursor:default}.acts button small{display:block;font-weight:500;font-size:11px;color:inherit;opacity:.75}.acts button:focus-visible{outline:2px solid var(--emberhi);outline-offset:2px}#map{position:fixed;inset:0;background:#080605e0;display:grid;place-items:center;padding:calc(var(--st) + 12px) 16px calc(var(--sb) + 12px)}.mapIn{width:min(100%,640px);display:grid;gap:8px}.mapHead{display:flex;align-items:baseline;gap:10px}.mapHead strong{font-family:var(--display);font-weight:400;font-size:20px;color:var(--gold);letter-spacing:.1em}.mapHead span{flex:1;font-size:11px;color:var(--ash)}.mapHead button{width:40px;height:40px;font-size:18px;color:var(--parch);background:#eadcc20f;border:1px solid rgba(234,220,194,.3);cursor:pointer}#mapC{width:100%;aspect-ratio:1;border:1px solid rgba(216,170,76,.5);touch-action:none}.legend{display:flex;gap:14px;font-size:11px;color:var(--ash);flex-wrap:wrap}.legend i{display:inline-block;width:8px;height:8px;margin-right:5px;transform:rotate(45deg)}.cover{position:fixed;inset:0;display:grid;place-items:center;text-align:center;padding:0 16px;background:radial-gradient(ellipse at 50% 110%,rgba(224,96,46,.4),transparent 60%),#0c0907d1}.cover .in{display:grid;gap:18px;justify-items:center;padding:24px 0;max-width:440px}.cover h1{margin:0;font-family:var(--display);font-weight:400;font-size:clamp(48px,14vw,88px);letter-spacing:.14em;line-height:1;color:var(--parch);text-shadow:0 0 30px rgba(224,96,46,.55)}.cover h1.end{font-size:clamp(34px,10vw,60px)}.cover .sub{font-size:13px;letter-spacing:.35em;color:var(--ember)}.cover .help{font-size:12px;color:var(--ash);line-height:1.95}.cover .help b{color:var(--parch)}.cover .help .tip{display:block;margin-top:8px;color:var(--emberhi)}.cover .help kbd{font:700 11px var(--ui);padding:1px 5px;border:1px solid rgba(234,220,194,.3);color:var(--parch)}#death h1{font-size:clamp(36px,10vw,56px);color:#d8424a}@media (prefers-reduced-motion: reduce){#toast div{animation-duration:.01s;animation-delay:2.4s;animation-fill-mode:both}}#status{display:flex;gap:6px;margin-top:8px;min-height:0}#status span{font-size:11px;font-weight:700;padding:2px 8px;border:1px solid currentColor;background:#100d0bbf;font-variant-numeric:tabular-nums;animation:chip .5s ease-in-out infinite alternate}#status .burn{color:#ff9a40}#status .poison{color:#b6d84a}@keyframes chip{to{opacity:.65}}#banner{position:fixed;left:0;right:0;top:38%;pointer-events:none;text-align:center;padding:14px max(16px,env(safe-area-inset-left,0px)) 16px;background:linear-gradient(90deg,transparent,rgba(16,13,11,.88) 18%,rgba(16,13,11,.88) 82%,transparent);border-top:1px solid rgba(216,170,76,.55);border-bottom:1px solid rgba(216,170,76,.55)}#banner small{display:block;font-size:12px;letter-spacing:.25em;color:var(--ember)}#banner b{display:block;font-family:var(--display);font-weight:400;font-size:clamp(26px,8vw,40px);letter-spacing:.14em;color:var(--parch);text-shadow:0 0 22px rgba(224,96,46,.5)}#banner.go{animation:bannerIn 2.6s cubic-bezier(.2,.8,.2,1) forwards}#banner.go b{animation:bannerText 2.6s cubic-bezier(.2,.8,.2,1) forwards}@keyframes bannerIn{0%{clip-path:inset(48% 0 48% 0);opacity:0}10%{clip-path:inset(0 0 0 0);opacity:1}82%{opacity:1}to{opacity:0}}@keyframes bannerText{0%{transform:translate(-40px);letter-spacing:.5em;opacity:0}18%{transform:none;letter-spacing:.14em;opacity:1}to{transform:translate(14px)}}#banner small{order:-1}#bossCard{position:fixed;left:0;bottom:calc(var(--sb) + 300px);pointer-events:none;padding:10px 28px 12px max(20px,env(safe-area-inset-left,0px));background:linear-gradient(90deg,rgba(10,6,4,.92) 70%,transparent);border-left:4px solid var(--blood)}#bossCard small{display:block;font-size:11px;letter-spacing:.3em;color:var(--ember)}#bossCard b{display:block;font-family:var(--display);font-weight:400;font-size:clamp(24px,7vw,36px);letter-spacing:.1em;color:var(--parch)}#bossCard.go{animation:cardIn 2.4s cubic-bezier(.16,1,.3,1) forwards}@keyframes cardIn{0%{transform:translate(-110%)}16%{transform:translate(0)}84%{transform:translate(0);opacity:1}to{transform:translate(-30px);opacity:0}}#areaName{position:fixed;left:50%;top:calc(var(--st) + 244px);transform:translate(-50%);pointer-events:none;text-align:center;width:min(90vw,420px)}#areaName b{display:block;font-family:var(--display);font-weight:400;font-size:24px;letter-spacing:.3em;text-shadow:0 2px 10px #000}#areaName b span{display:inline-block;opacity:0}#areaName.go b span{animation:letterIn .5s ease-out forwards}#areaName small{display:block;font-size:12px;color:var(--ash);opacity:0}#areaName.go small{animation:fadeIn .6s .5s forwards}#areaName.go{animation:fadeOut .5s 2.3s forwards}@keyframes letterIn{0%{opacity:0;transform:translateY(8px);filter:blur(4px)}to{opacity:1;transform:none;filter:none}}@keyframes fadeIn{to{opacity:1}}@keyframes fadeOut{to{opacity:0}}.btn{transition:scale .08s ease-out}.btn.on{scale:.9}@media (prefers-reduced-motion: reduce){#banner.go,#banner.go b,#bossCard.go,#areaName.go b span,#status span{animation-duration:.01s}#banner.go{animation:fadeOut .3s 2.3s forwards}#bossCard.go{animation:fadeOut .3s 2.1s forwards}#areaName.go b span{opacity:1}.btn.on{scale:1}}
