:root{
  color-scheme:dark;
  --bg:#07101d;
  --panel:#0d1b2b;
  --panel2:#10243a;
  --text:#f4f7fb;
  --muted:#8ea0b4;
  --line:rgba(255,255,255,.10);
  --me:#6df7c1;
  --me2:#18b982;
  --them:#ff6577;
  --them2:#d53354;
  --gold:#ffd66b;
  --shadow:0 30px 80px rgba(0,0,0,.35);
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Sans","Yu Gothic UI","Yu Gothic",sans-serif;-webkit-font-smoothing:antialiased}
body{min-height:100svh;overflow-x:hidden;background:
radial-gradient(circle at 18% 10%,rgba(34,213,153,.08),transparent 32%),
radial-gradient(circle at 86% 5%,rgba(255,101,119,.07),transparent 30%),
linear-gradient(180deg,#081421 0%,#06101c 60%,#050b14 100%)}
button,a{-webkit-tap-highlight-color:transparent}
button{font:inherit;color:inherit}
.app{width:min(720px,100%);min-height:100svh;margin:auto;position:relative;padding:env(safe-area-inset-top) 14px calc(22px + env(safe-area-inset-bottom));overflow:hidden}
.app:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.16;background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);background-size:32px 32px;mask-image:linear-gradient(to bottom,black,transparent 72%)}
.topbar{height:66px;display:flex;align-items:center;justify-content:space-between;position:relative;z-index:20}
.brand{display:flex;align-items:baseline;gap:9px;color:inherit;text-decoration:none}.brand span{font-size:12px;font-weight:950;letter-spacing:.17em;color:var(--me)}.brand b{font-size:14px;letter-spacing:-.02em}.icon-btn{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:rgba(255,255,255,.035);cursor:pointer;font-weight:900}.icon-btn[aria-pressed="false"]{opacity:.45;text-decoration:line-through}
.screen{display:none;position:relative;z-index:2}.screen.active{display:block}
.start-screen{padding:18px 3px 32px}.start-visual{height:170px;position:relative;margin-bottom:18px}.person{position:absolute;display:grid;place-items:center;border-radius:50%;font-weight:900;z-index:3}.me-person{width:90px;height:90px;left:50%;top:46px;transform:translateX(-50%);background:radial-gradient(circle at 50% 40%,#163c38,#0b2425);border:1px solid rgba(109,247,193,.35);box-shadow:0 0 80px rgba(109,247,193,.13)}.me-person span{position:absolute;bottom:-25px;font-size:12px;color:var(--me);letter-spacing:.18em}.me-person i{font-style:normal;color:var(--me);font-size:30px;text-shadow:0 0 25px rgba(109,247,193,.8)}
.people-cloud span{position:absolute;padding:8px 12px;border:1px solid rgba(255,101,119,.23);background:rgba(255,101,119,.07);border-radius:999px;color:#ff9aa7;font-size:12px;font-weight:800}.people-cloud span:nth-child(1){left:6%;top:18px}.people-cloud span:nth-child(2){right:4%;top:54px}.people-cloud span:nth-child(3){left:12%;bottom:4px}
.thread{position:absolute;height:1px;background:linear-gradient(90deg,rgba(255,101,119,.8),rgba(255,101,119,.2));transform-origin:left;filter:drop-shadow(0 0 5px rgba(255,101,119,.65))}.thread:after{content:"";position:absolute;right:0;top:-2px;width:5px;height:5px;border-radius:50%;background:var(--them)}.thread-a{width:42%;left:18%;top:53px;transform:rotate(12deg)}.thread-b{width:38%;left:51%;top:94px;transform:rotate(-5deg)}.thread-c{width:34%;left:23%;top:143px;transform:rotate(-15deg)}
.eyebrow{font-size:12px;font-weight:950;letter-spacing:.19em;color:var(--me);margin-bottom:13px}.start-screen h1,.report-screen h2{font-size:clamp(46px,13vw,78px);line-height:.94;letter-spacing:-.065em;margin:0 0 19px;font-weight:950}.start-screen h1 em,.report-screen h2 em{font-style:normal;color:var(--me)}.lead{color:#b6c1ce;line-height:1.82;font-size:14px;margin:0 0 26px}.lead strong{color:#e7fff7}.primary-btn{width:100%;border:0;border-radius:20px;padding:15px 18px;background:linear-gradient(135deg,#8afbd0,#42dfa8);color:#062119;display:flex;align-items:center;justify-content:space-between;box-shadow:0 18px 38px rgba(46,212,155,.20);cursor:pointer;transition:transform .14s ease,filter .14s ease}.primary-btn:active{transform:scale(.985)}.primary-btn span{font-size:12px;font-weight:950;letter-spacing:.16em}.primary-btn b{font-size:16px}.start-note{font-size:12px;color:#64758a;text-align:center;margin:13px 0 0}
.game-screen{padding-bottom:16px}.hud{padding:7px 1px 12px}.hud-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}.level-label{font-size:12px;font-weight:900;letter-spacing:.08em;color:#c4ced9}.round-label{font-size:12px;color:#708297}.round-label b{color:white;font-size:13px}.meters{display:grid;grid-template-columns:1fr 1fr;gap:8px}.meter{border:1px solid var(--line);background:rgba(255,255,255,.025);border-radius:13px;padding:8px 10px}.meter-copy{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.meter-copy span{font-size:12px;font-weight:950;letter-spacing:.12em}.meter-copy b{font-size:12px}.control-meter .meter-copy{color:var(--me)}.expectation-meter .meter-copy{color:#ff8795}.bar{height:4px;background:rgba(255,255,255,.07);border-radius:10px;overflow:hidden}.bar i{display:block;height:100%;width:50%;border-radius:10px;transition:width .45s cubic-bezier(.22,1,.36,1)}.control-meter .bar i{background:linear-gradient(90deg,#2bd49a,#8bffd4);box-shadow:0 0 12px rgba(109,247,193,.5)}.expectation-meter .bar i{background:linear-gradient(90deg,#ff495f,#ff8997);box-shadow:0 0 12px rgba(255,101,119,.45)}
.arena{height:390px;border-radius:26px;position:relative;overflow:hidden;border:1px solid var(--line);background:linear-gradient(90deg,rgba(255,101,119,.04) 0 48%,rgba(109,247,193,.035) 52% 100%),radial-gradient(circle at 50% 70%,rgba(109,247,193,.08),transparent 34%),#0a1725;box-shadow:var(--shadow)}.arena:before{content:"";position:absolute;left:50%;top:46px;bottom:26px;width:1px;background:linear-gradient(transparent,rgba(255,255,255,.11),transparent)}.zone{position:absolute;top:14px;font-size:12px;font-weight:950;letter-spacing:.16em;display:flex;flex-direction:column;gap:1px;z-index:3}.zone small{font-size:12px;letter-spacing:0;opacity:.55}.them-zone{left:16px;color:#ff8290}.me-zone{right:16px;text-align:right;color:var(--me)}.threads{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}.thread-line{fill:none;stroke:#ff6375;stroke-width:2;stroke-linecap:round;opacity:.60;filter:drop-shadow(0 0 5px rgba(255,68,94,.55));stroke-dasharray:6 8;animation:threadFlow 2.4s linear infinite}.thread-line.break{animation:threadBreak .42s ease forwards}.orbit{position:absolute;z-index:2;padding:7px 9px;border-radius:999px;border:1px solid rgba(255,101,119,.20);background:#14202c;color:#ff9aa5;font-size:12px;font-weight:800;transition:transform .3s ease,opacity .3s ease}.orbit-a{left:4%;top:70px}.orbit-b{left:9%;top:169px}.orbit-c{left:3%;bottom:55px}.avatar{position:absolute;left:50%;bottom:23px;transform:translateX(-50%);z-index:4;width:52px;text-align:center;transition:transform .26s ease}.avatar-face{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;font-size:15px;font-weight:900;background:linear-gradient(145deg,#173c39,#0a2526);border:1px solid rgba(109,247,193,.42);box-shadow:0 0 34px rgba(109,247,193,.15)}.avatar span{display:block;color:var(--me);font-size:12px;font-weight:950;letter-spacing:.14em;margin-top:5px}.avatar.returning{animation:returnPulse .55s ease}
.event-card{position:absolute;z-index:6;left:50%;top:55px;transform:translateX(-50%);width:min(86%,460px);border-radius:20px;padding:15px 16px 16px;background:rgba(9,22,35,.95);border:1px solid rgba(255,255,255,.13);box-shadow:0 18px 48px rgba(0,0,0,.38);backdrop-filter:blur(15px)}.event-card.enter{animation:cardIn .32s cubic-bezier(.22,1,.36,1)}.event-meta{display:flex;justify-content:space-between;color:#6f8498;font-size:12px;font-weight:900;letter-spacing:.13em;text-transform:uppercase}.event-context{font-size:14px;line-height:1.65;font-weight:750;margin:11px 0;color:#edf2f7}.thought{border-left:2px solid var(--them);padding:8px 10px;background:linear-gradient(90deg,rgba(255,101,119,.10),transparent);border-radius:0 9px 9px 0}.thought span{display:block;color:#ff8290;font-size:12px;font-weight:950;letter-spacing:.11em;margin-bottom:4px}.thought b{font-size:13px;line-height:1.45}.prompt{margin:12px 0 0;color:#91a2b4;font-size:12px;font-weight:750}.boss .event-card{border-color:rgba(255,214,107,.42);box-shadow:0 0 0 1px rgba(255,214,107,.10),0 20px 60px rgba(0,0,0,.44)}.boss .event-meta{color:var(--gold)}.boss:after{content:"BOSS / 『当然』";position:absolute;right:-32px;top:118px;transform:rotate(90deg);font-size:12px;font-weight:950;letter-spacing:.18em;color:var(--gold);z-index:8}
.choices{display:grid;gap:8px;margin-top:10px}.choice{width:100%;min-height:58px;border-radius:16px;padding:10px 12px;border:1px solid rgba(255,255,255,.11);background:linear-gradient(145deg,rgba(255,255,255,.055),rgba(255,255,255,.025));display:flex;align-items:center;gap:11px;text-align:left;cursor:pointer;transition:transform .12s ease,border-color .15s ease,background .15s ease}.choice:active{transform:scale(.986)}.choice-index{flex:0 0 28px;height:28px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.07);color:#8090a0;font-size:12px;font-weight:950}.choice-copy{font-size:12px;font-weight:760;line-height:1.42}.choice.hint{border-color:rgba(109,247,193,.30);background:linear-gradient(145deg,rgba(109,247,193,.07),rgba(255,255,255,.02))}.combo{position:fixed;left:50%;top:82px;z-index:25;transform:translate(-50%,-15px) scale(.9);opacity:0;pointer-events:none;padding:8px 13px;border-radius:999px;background:var(--me);color:#062119;font-size:12px;font-weight:950;letter-spacing:.09em;box-shadow:0 10px 35px rgba(109,247,193,.28)}.combo.show{animation:comboPop .9s ease}
.feedback{position:fixed;inset:0;z-index:50;display:grid;place-items:end center;background:rgba(3,8,14,.56);backdrop-filter:blur(7px);padding:14px 14px calc(14px + env(safe-area-inset-bottom));opacity:0;pointer-events:none;transition:opacity .18s ease}.feedback.open{opacity:1;pointer-events:auto}.feedback-card{width:min(692px,100%);border-radius:25px;padding:22px;background:#0f2032;border:1px solid var(--line);box-shadow:0 30px 90px rgba(0,0,0,.55);transform:translateY(24px);transition:transform .25s cubic-bezier(.22,1,.36,1)}.feedback.open .feedback-card{transform:none}.feedback-mark{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:rgba(109,247,193,.12);border:1px solid rgba(109,247,193,.28);color:var(--me);font-size:22px;font-weight:950;margin-bottom:13px}.feedback.bad .feedback-mark{background:rgba(255,101,119,.10);border-color:rgba(255,101,119,.30);color:var(--them)}.feedback.partial .feedback-mark{background:rgba(255,214,107,.10);border-color:rgba(255,214,107,.30);color:var(--gold)}.feedback-kicker{font-size:12px;font-weight:950;letter-spacing:.16em;color:var(--me)}.feedback.bad .feedback-kicker{color:#ff8391}.feedback.partial .feedback-kicker{color:var(--gold)}.feedback-card h3{font-size:25px;letter-spacing:-.04em;margin:5px 0 8px}.feedback-card p{font-size:12px;line-height:1.7;color:#aebbc8;margin:0}.feedback-lesson{margin-top:13px;padding:11px 12px;border-radius:12px;background:rgba(255,255,255,.04);color:#dce5ed;font-size:12px;line-height:1.55}.next-btn{width:100%;border:0;border-radius:15px;background:#edf6f2;color:#0a1915;font-weight:900;padding:13px 14px;margin-top:15px;display:flex;justify-content:space-between;cursor:pointer}
.report-screen{padding:20px 2px 44px}.report-burst{position:absolute;right:8px;top:6px;font-size:96px;color:rgba(109,247,193,.07);transform:rotate(14deg)}.report-screen h2{font-size:clamp(43px,12vw,70px)}.grade-card{display:flex;align-items:center;justify-content:space-between;padding:17px 19px;border-radius:20px;background:linear-gradient(145deg,rgba(109,247,193,.09),rgba(255,255,255,.035));border:1px solid rgba(109,247,193,.18);margin:20px 0 10px}.grade-card>div{display:flex;align-items:baseline;gap:6px}.grade-card span{font-size:12px;font-weight:950;letter-spacing:.15em;color:#91a3b3}.grade-card b{font-size:27px}.grade-card small{font-size:12px;color:#718496}.grade-card strong{font-size:45px;color:var(--me);letter-spacing:-.06em}.pattern-card{padding:17px 18px;border-radius:20px;background:rgba(255,255,255,.035);border:1px solid var(--line);margin-bottom:10px}.pattern-card span{font-size:12px;color:#7e90a2}.pattern-card h3{font-size:22px;letter-spacing:-.035em;margin:5px 0 7px}.pattern-card p{font-size:12px;line-height:1.68;color:#aab7c4;margin:0}.skill-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:10px 0}.skill{padding:12px 13px;border-radius:15px;border:1px solid var(--line);background:rgba(255,255,255,.025)}.skill span{display:block;font-size:12px;color:#7d8fa0;margin-bottom:6px}.skill b{font-size:13px}.skill i{display:block;height:3px;border-radius:99px;background:rgba(255,255,255,.07);margin-top:8px;overflow:hidden}.skill i:after{content:"";display:block;width:var(--v);height:100%;background:var(--me)}.final-mantra{margin:17px 0;padding:18px 6px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.final-mantra span{display:block;color:#718496;font-size:12px;margin-bottom:6px}.final-mantra b{font-size:19px;letter-spacing:-.03em}.report-actions{display:grid;grid-template-columns:1fr auto;gap:8px}.report-actions .primary-btn{padding:13px 15px}.secondary-btn{border-radius:18px;border:1px solid var(--line);background:rgba(255,255,255,.04);padding:0 17px;font-size:12px;font-weight:800;cursor:pointer}.disclaimer{font-size:12px;line-height:1.6;color:#617386;margin:16px 3px 0}.toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom));transform:translate(-50%,15px);opacity:0;z-index:80;background:#eef9f4;color:#0b1c16;border-radius:999px;padding:9px 13px;font-size:12px;font-weight:900;transition:.2s ease}.toast.show{opacity:1;transform:translate(-50%,0)}
.flash-good{animation:flashGood .46s ease}.flash-bad{animation:flashBad .46s ease}
@keyframes threadFlow{to{stroke-dashoffset:-28}}
@keyframes threadBreak{0%{opacity:.7}50%{stroke-width:5}100%{opacity:0;stroke-dashoffset:60}}
@keyframes returnPulse{0%{transform:translateX(-50%) scale(1)}45%{transform:translateX(-35%) scale(1.14)}100%{transform:translateX(-50%) scale(1)}}
@keyframes cardIn{from{opacity:0;transform:translate(-50%,-8px) scale(.98)}to{opacity:1;transform:translate(-50%,0) scale(1)}}
@keyframes comboPop{0%{opacity:0;transform:translate(-50%,-15px) scale(.85)}18%,70%{opacity:1;transform:translate(-50%,0) scale(1)}100%{opacity:0;transform:translate(-50%,-8px) scale(.96)}}
@keyframes flashGood{50%{box-shadow:inset 0 0 80px rgba(109,247,193,.14)}}
@keyframes flashBad{50%{box-shadow:inset 0 0 80px rgba(255,101,119,.14)}}
@media(max-width:430px){.app{padding-left:10px;padding-right:10px}.topbar{height:58px}.arena{height:370px;border-radius:22px}.event-card{width:88%;top:49px;padding:13px 14px}.event-context{font-size:13px}.thought b{font-size:12px}.choice{min-height:54px}.choice-copy{font-size:12px}.report-actions{grid-template-columns:1fr}.secondary-btn{height:46px}.start-visual{height:150px}.start-screen h1{font-size:52px}}
@media(max-height:720px){.topbar{height:52px}.hud{padding-top:2px}.arena{height:338px}.event-card{top:44px}.choices{gap:6px;margin-top:7px}.choice{min-height:49px;padding:8px 10px}.avatar{bottom:11px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}
