@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;600;700;800&display=swap');

:root{font-family:'Noto Sans JP',system-ui,sans-serif;color:#e8e2dc;background:#0a0a0c;font-synthesis:none}
*{box-sizing:border-box}
body{margin:0;min-height:100vh;background:radial-gradient(ellipse at 70% 5%,#302026 0%,#141216 40%,#0a0a0c 74%)}
button{font:inherit;cursor:pointer}
button:focus-visible{outline:2px solid #e27b77;outline-offset:3px}
.noise{pointer-events:none;position:fixed;inset:0;z-index:40;opacity:.08;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.95' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E")}
.start{min-height:100vh;display:grid;place-items:center;padding:30px}
.start-card{width:min(710px,100%);border:1px solid #493139;background:linear-gradient(150deg,#20171c,#111014 66%);box-shadow:0 30px 90px #0009;padding:clamp(30px,6vw,70px);position:relative;overflow:hidden}
.start-card:before{content:'';position:absolute;right:-90px;top:-100px;width:300px;height:300px;border:1px solid #8b303b;border-radius:50%;box-shadow:0 0 100px #7c1b2566,0 0 0 52px #7c1b2512}
.eyebrow,.label{color:#ba8588;font-size:11px;font-weight:700;letter-spacing:.22em}
.start h1{font-size:clamp(42px,8vw,78px);letter-spacing:.08em;line-height:1.15;margin:22px 0 28px;font-weight:800}
.start p{color:#b9aeb0;line-height:2.05;max-width:490px;font-size:15px}
.start .rule{padding:19px 0;margin:34px 0;border-top:1px solid #45333a;border-bottom:1px solid #45333a;color:#ddd1cf;font-size:14px}
.start .rule span{color:#e9978d}
.primary,.secondary,.ghost{border:1px solid transparent;padding:13px 20px;border-radius:2px;font-weight:700;transition:transform .18s,background .18s,border-color .18s}
.primary:hover,.secondary:hover,.ghost:hover,.choice:hover,.target:hover{transform:translateY(-2px)}
.primary{background:#a93b43;color:#fff;box-shadow:0 8px 25px #8c2e3840}
.primary:hover{background:#c94c54}
.secondary{background:#221a1e;color:#f2ded8;border-color:#73414b}
.secondary:hover{background:#352229}
.ghost{background:transparent;color:#c1abad;border-color:#49363c}
.ghost:hover{border-color:#b66f77;color:white}
.start small{display:block;color:#776d70;margin-top:20px}
.shell{min-height:100vh;max-width:1580px;margin:auto;display:flex;flex-direction:column;padding:22px 30px 28px}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 0 18px;border-bottom:1px solid #38292f}
.brand{font-size:17px;letter-spacing:.22em;font-weight:800;color:#f3e8e3;white-space:nowrap}
.brand .red{color:#c6535b}
.meta{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.meta span{border:1px solid #3b3035;background:#19161a;padding:7px 11px;font-size:11px;color:#b8a9ab;letter-spacing:.08em}
.grid{flex:1;min-height:0;display:grid;grid-template-columns:minmax(190px,238px) minmax(420px,1fr) minmax(200px,248px);gap:18px;margin-top:19px}
.panel{border:1px solid #362a30;background:linear-gradient(155deg,#1b171b,#141316 80%);min-height:0}
.side{padding:24px 20px}
.panel-title{display:flex;align-items:center;justify-content:space-between}
.panel-close,.drawer-settings,.mobile-hud,.mobile-nav,.drawer-backdrop{display:none}
.roster{display:none}
.side h2,.board h2{font-size:12px;margin:0 0 19px;letter-spacing:.17em;color:#d9c2bd}
.brief-list{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.brief-list li{color:#c6b7b3;font-size:12px;line-height:1.8;border-left:2px solid #75414a;padding-left:11px}
.side-note{border-top:1px solid #3e3035;padding-top:17px;margin-top:25px;color:#867a7b;font-size:11px;line-height:1.8}
.side.question-locked{display:flex;flex-direction:column;justify-content:center}
.locked-copy{font-size:15px;line-height:1.9;color:#d4b5b4}
.chat{display:flex;flex-direction:column;position:relative;overflow:hidden;min-height:610px;background:linear-gradient(#171418,#111115)}
.chat-head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:17px 23px;border-bottom:1px solid #3b2c33;background:#1d171b}
.chat-head strong{font-size:14px;letter-spacing:.08em}
.chat-head span{font-size:11px;color:#907e81}
.chat-body{flex:1;min-height:0;overflow:auto;padding:25px 24px;scrollbar-color:#563b45 transparent}
.day-divider{text-align:center;color:#8c7179;font-size:10px;letter-spacing:.2em;margin:13px 0 22px}
.line{display:flex;gap:10px;align-items:flex-start;margin:0 0 17px;animation:appear .25s ease-out}
.line.me{flex-direction:row-reverse}
.avatar{flex:0 0 46px;height:46px;display:grid;place-items:center;border:1px solid #514047;background:#3a3034;color:#dfc4c3;font-size:12px}
.animal-art{display:block;flex:none;overflow:hidden;background-repeat:no-repeat;image-rendering:auto;filter:drop-shadow(0 1px 1px #e7d8c349)}
.line.me .avatar{background:#602e38;border-color:#8d4551;color:#fff}
.bubble-wrap{min-width:0;max-width:78%}
.speaker{font-size:10px;color:#887b7e;margin:0 0 5px 2px}
.line.me .speaker{text-align:right;margin-right:2px}
.bubble{background:#29232a;border:1px solid #3b3139;padding:10px 13px;color:#e7ddda;font-size:13px;line-height:1.7;word-break:break-word}
.line.me .bubble{background:#573038;border-color:#7c424c}
.system-line{text-align:center;color:#a39296;font-size:11px;letter-spacing:.06em;margin:25px auto;max-width:85%;line-height:1.8}
.chat-foot{border-top:1px solid #3b2c33;padding:16px 20px;display:flex;align-items:center;justify-content:space-between;gap:15px;background:#1a1619}
.foot-hint{color:#8d7d80;font-size:11px;line-height:1.6}
.foot-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.foot-actions button{font-size:12px;padding:10px 14px}
.board{padding:24px 18px}
.board-intro{color:#827678;font-size:11px;line-height:1.7;margin:-5px 0 19px}
.person{padding:10px 0;border-bottom:1px solid #322a2f;opacity:1}
.person.dead{opacity:.36}
.person-top{display:flex;justify-content:space-between;gap:8px;font-size:12px;margin-bottom:8px}
.person-name,.target-name{display:flex;align-items:center;gap:7px}
.person-top .value{color:#d5a3a2;font-weight:700}
.person.me .person-top{color:#fae3dc}
.bar{height:3px;background:#33282e;overflow:hidden}
.bar i{height:100%;display:block;background:linear-gradient(90deg,#73343d,#d05d65);transition:width .5s}
.meter-unknown{background:repeating-linear-gradient(105deg,#47252e 0 6px,#221a20 6px 13px)!important}
.person.dead .bar i{background:#73686b}
.status-note{margin-top:19px;border:1px solid #4d323a;background:#261a1f;padding:12px;color:#d7a7a8;font-size:11px;line-height:1.7}
.question-stage{height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:30px clamp(22px,5vw,60px);text-align:center;background:radial-gradient(circle at center,#301b22 0%,#171318 65%)}
.question-stage .label{margin-bottom:12px}
.question-face{border:1px solid #71404a;background:#3a252d;width:70px;height:70px;display:grid;place-items:center;color:#f1c9c5;font-size:22px;margin-bottom:16px}
.question-asker{font-size:11px;color:#c4a4a6;margin-bottom:10px}
.question-stage h2{font-size:clamp(20px,3vw,30px);font-weight:600;line-height:1.65;margin:0 0 28px;max-width:600px}
.timer{width:min(480px,100%);height:4px;background:#54333c;position:relative;margin-bottom:7px;overflow:hidden}
.timer i{height:100%;display:block;background:#e07379;width:100%;transform-origin:left;transition:transform .1s linear}
.seconds{color:#d7a8a9;font-size:11px;margin-bottom:20px;font-variant-numeric:tabular-nums}
.choices{display:grid;gap:9px;width:min(480px,100%)}
.choice{width:100%;text-align:left;border:1px solid #6c424a;background:#2a2026;color:#f0e6e2;padding:14px 18px;min-height:48px;font-size:13px;transition:transform .18s,background .18s}
.choice:hover{background:#513039;border-color:#ba626b}
.choice:active{transform:scale(.99)}
.question-tip{color:#897176;font-size:10px;line-height:1.6;margin-top:22px}
.event-panel{display:flex;align-items:center;justify-content:center;flex:1;padding:30px}
.event-card{max-width:520px;width:100%;text-align:center;border:1px solid #6b3540;background:linear-gradient(145deg,#2c1b22,#191519);box-shadow:0 0 75px #671d2c30;padding:39px clamp(24px,5vw,50px)}
.event-card h2{font-size:clamp(24px,4vw,36px);margin:13px 0 14px;letter-spacing:.07em}
.event-card p{font-size:13px;line-height:1.95;color:#cbb6b4;margin:0 0 22px}
.event-card .primary,.event-card .secondary{width:100%}
.target-list{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin-top:22px}
.target{padding:12px 10px;border:1px solid #6b3c46;background:#2c2027;color:#e8d4d1;text-align:left;font-size:12px;transition:transform .18s,background .18s}
.target:hover{background:#4d2a34}
.target small{display:block;color:#aa8589;margin-top:5px}
.result-list{text-align:left;border-top:1px solid #61414a;padding-top:17px;margin:23px 0;color:#ac9698;font-size:11px;line-height:1.8;max-height:180px;overflow:auto}
.result-list div{margin-bottom:8px}
.result-badge{font-size:10px;letter-spacing:.25em;color:#e37c80}
.flash{position:fixed;pointer-events:none;z-index:30;inset:0;border:12px solid #b72c3d;box-shadow:inset 0 0 180px #9f273850;animation:flash .65s forwards}
.desktop-controls{display:flex;justify-content:space-between;margin-top:12px}
.desktop-controls button{font-size:10px;padding:6px 9px}
@keyframes flash{0%{opacity:.75}100%{opacity:0}}
@keyframes appear{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:1080px){.grid{grid-template-columns:minmax(160px,220px) minmax(360px,1fr)}.board{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:8px 17px}.board h2{width:100%;margin:0}.board-intro{display:none}.person{width:calc(25% - 13px);min-width:130px}.status-note{width:100%;margin-top:5px}}
@media(max-width:700px){
  html,body,#app{height:100%;min-height:0;overflow:hidden}
  .start{min-height:100dvh;padding:0}
  .start-card{min-height:100dvh;width:100%;border:0;display:flex;flex-direction:column;justify-content:center;padding:calc(24px + env(safe-area-inset-top)) 28px calc(24px + env(safe-area-inset-bottom))}
  .start-card:before{right:-145px;top:-80px}
  .start h1{font-size:clamp(49px,13vw,70px);margin:25px 0}
  .start p{font-size:14px}
  .start .rule{margin:26px 0}
  .start .primary{width:100%;min-height:56px}
  .shell{height:100dvh;min-height:0;padding:env(safe-area-inset-top) 0 0;overflow:hidden}
  .topbar{flex:0 0 auto;padding:11px 16px 10px;gap:8px;min-height:49px}
  .brand{font-size:14px;letter-spacing:.13em}
  .meta{gap:5px}
  .meta span{font-size:9px;padding:5px 7px}
  .meta span:nth-child(3){display:none}
  .mobile-hud{display:block;flex:0 0 auto;padding:9px 16px 10px;background:#1a1519;border-bottom:1px solid #3b2c33}
  .mobile-hud>div:first-child{display:flex;justify-content:space-between;align-items:baseline;color:#c7b0b0;font-size:11px}
  .mobile-hud strong{font-size:18px;color:#e5aca8;line-height:1}
  .mobile-hud small{font-size:10px;color:#9c8386;font-weight:500}
  .mobile-hud-bar{height:3px;background:#3b282e;margin-top:8px;overflow:hidden}
  .mobile-hud-bar i{display:block;height:100%;background:#c24e59;transition:width .3s}
  .roster{display:grid;flex:0 0 auto;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;padding:6px 12px;background:#151216;border-bottom:1px solid #3b2c33}
  .roster-chip{min-width:0;min-height:42px;display:flex;align-items:center;justify-content:center;gap:3px;border:1px solid #403139;background:#211a20;color:#a9979b;font-size:10px;font-weight:600;white-space:nowrap;overflow:hidden}
  .roster-chip span{overflow:hidden;text-overflow:ellipsis}
  .roster-chip.speaking{border-color:#bb5963;background:#552a34;color:#fff;box-shadow:inset 0 0 14px #a83b4a44}
  .roster-chip.gone{opacity:.32;text-decoration:line-through}
  .grid{display:block;flex:1;min-height:0;margin:0}
  .chat{height:100%;min-height:0;border:0;border-radius:0}
  .chat-head{flex:0 0 auto;padding:10px 16px;min-height:43px}
  .chat-head strong{font-size:12px}
  .chat-head span{font-size:10px;text-align:right}
  .chat-body{padding:17px 15px;overscroll-behavior:contain}
  .line{margin-bottom:14px}
  .avatar{flex-basis:46px;height:46px}
  .bubble-wrap{max-width:84%}
  .bubble{font-size:13px;padding:10px 12px}
  .chat-foot{flex:0 0 auto;padding:8px 14px;min-height:55px}
  .foot-hint{font-size:10px}
  .foot-actions button{min-height:40px;padding:8px 14px}
  .desktop-controls{display:none}
  .mobile-nav{display:flex;flex:0 0 auto;min-height:64px;padding:4px 7px calc(4px + env(safe-area-inset-bottom));background:#191419;border-top:1px solid #473039;z-index:10}
  .mobile-nav button{flex:1;min-height:56px;background:none;border:0;color:#ad999a;font-size:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}
  .mobile-nav button span{font-size:19px;line-height:1}
  .mobile-nav button[aria-current="page"],.mobile-nav button[aria-expanded="true"]{color:#f2d0ca}
  .mobile-nav button:active{background:#312127}
  .drawer-backdrop{display:block;position:fixed;inset:0;background:#000a;border:0;z-index:20}
  .side,.board{display:none;position:fixed;left:0;right:0;bottom:0;max-height:min(72dvh,620px);overflow:auto;border:1px solid #70434d;border-radius:14px 14px 0 0;background:#1b151a;box-shadow:0 -20px 70px #000c;z-index:21;padding:24px 20px calc(22px + env(safe-area-inset-bottom))}
  .side.question-locked{display:none}
  .side.mobile-open,.board.mobile-open{display:block}
  .panel-title{margin-bottom:22px}
  .side h2,.board h2{font-size:14px;margin:0}
  .panel-close{display:grid;place-items:center;width:42px;height:42px;border:1px solid #69434b;background:#2a1d24;color:#e6c8c5;font-size:21px}
  .brief-list{gap:16px}
  .brief-list li{font-size:14px;line-height:1.7}
  .side-note{font-size:12px}
  .drawer-begin{display:block;width:100%;min-height:54px;margin-top:24px}
  .drawer-settings{display:flex;gap:10px;margin-top:26px}
  .drawer-settings button{flex:1;min-height:48px;font-size:12px}
  .board-intro{display:block;font-size:12px;margin:0 0 10px}
  .board .person{display:block;width:100%;min-width:0;padding:10px 0}
  .board .person-top{font-size:13px}
  .board .status-note{width:100%;font-size:12px}
  .question-stage{height:auto;flex:1;min-height:0;overflow:auto;justify-content:flex-start;padding:17px 18px 20px;overscroll-behavior:contain}
  .question-stage .label{font-size:10px;margin:0 0 7px}
  .question-face{width:70px;height:70px;font-size:17px;margin-bottom:8px}
  .question-asker{margin-bottom:7px}
  .question-stage h2{font-size:clamp(19px,5vw,24px);line-height:1.5;margin:0 0 17px}
  .timer{margin-bottom:5px}
  .seconds{margin-bottom:13px}
  .choices{gap:8px}
  .choice{min-height:54px;font-size:14px;padding:12px 15px}
  .question-tip{display:none}
  .event-panel{min-height:0;overflow:auto;padding:16px;align-items:center}
  .event-card{padding:27px 20px}
  .event-card h2{font-size:25px}
  .target{min-height:60px;font-size:13px}
}
@media(max-width:700px) and (max-height:690px){
  .question-stage{padding-top:10px}
  .question-face{display:none}
  .question-stage h2{font-size:18px;margin-bottom:11px}
  .seconds{margin-bottom:9px}
  .choices{gap:6px}
  .choice{min-height:46px;padding:9px 12px}
}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
