:root{
  --paper:#f2efe6;--paper-2:#e7e1d2;--ink:#171915;--muted:#66685f;
  --red:#e54d35;--green:#174d40;--yellow:#edc94a;--line:#1d201b;
  --white:#fffdf7;--shadow:8px 8px 0 rgba(23,25,21,.16);
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;color:var(--ink);background:var(--paper);font-family:"Yu Gothic","Hiragino Kaku Gothic ProN","Meiryo",system-ui,sans-serif;line-height:1.75;letter-spacing:.02em}body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.18;background-image:radial-gradient(#151713 0.7px,transparent .7px);background-size:7px 7px;mix-blend-mode:multiply}button,select,input,textarea{font:inherit}button{cursor:pointer}a{color:inherit}.shell{width:min(1180px,calc(100% - 30px));margin:0 auto;padding:18px 0 72px;position:relative}.shell:before{content:"FM MINATO / CASE FILE 001";display:block;padding:10px 2px 12px;border-bottom:2px solid var(--line);font-size:.73rem;font-weight:900;letter-spacing:.22em}
.hero{position:relative;overflow:hidden;min-height:500px;padding:clamp(32px,6vw,78px);border:2px solid var(--line);border-top:0;background:var(--red);box-shadow:var(--shadow);display:flex;flex-direction:column;justify-content:flex-end}.hero:before{content:"21:15\A RECORDED VOICE";white-space:pre;position:absolute;right:clamp(20px,5vw,60px);top:28px;font-weight:900;font-size:clamp(1.2rem,4vw,3.3rem);line-height:.9;text-align:right;letter-spacing:-.04em;color:rgba(255,253,247,.36)}.hero:after{content:"ON AIR";position:absolute;left:clamp(28px,6vw,72px);top:28px;background:var(--ink);color:var(--white);border:2px solid var(--ink);padding:7px 15px;font-size:.78rem;font-weight:900;letter-spacing:.18em}.eyebrow{margin:0 0 13px;font-weight:900;letter-spacing:.16em;text-transform:uppercase;font-size:.8rem}.hero h1{margin:0;max-width:850px;font-size:clamp(3.2rem,10vw,8.6rem);line-height:.82;letter-spacing:-.075em;font-weight:1000}.lead{max-width:760px;margin:28px 0 0;font-size:clamp(1rem,2.2vw,1.25rem);font-weight:700;line-height:1.75}.meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:25px}.pill{padding:5px 12px;border:2px solid var(--ink);border-radius:999px;background:transparent;font-size:.78rem;font-weight:900}.grid{display:grid;gap:20px;margin-top:26px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.card{position:relative;padding:clamp(22px,4vw,42px);border:2px solid var(--line);background:var(--white);box-shadow:var(--shadow);border-radius:6px;overflow:hidden}.card.soft{background:var(--yellow)}.card h2,.card h3{margin-top:0;line-height:1.25}.card h2{font-size:clamp(1.7rem,4vw,3rem);letter-spacing:-.04em}.card h3{font-size:1.16rem}.card p:last-child{margin-bottom:0}.card>h2:before{content:"◆";display:inline-block;margin-right:.45em;font-size:.48em;vertical-align:.28em;color:var(--red)}.controls{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.btn{border:2px solid var(--line);border-radius:0;padding:13px 19px;background:var(--green);color:var(--white);font-weight:900;box-shadow:4px 4px 0 var(--ink);transition:.15s transform,.15s box-shadow}.btn:hover{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--ink)}.btn.secondary{background:var(--white);color:var(--ink)}.btn.warn{background:var(--yellow);color:var(--ink)}.btn.danger{background:var(--red)}.btn:disabled{cursor:not-allowed;opacity:.42;transform:none;box-shadow:4px 4px 0 var(--ink)}label{display:block;margin:15px 0 6px;font-weight:900}select,input[type=text],input[type=number],textarea{width:100%;border:2px solid var(--line);border-radius:0;padding:12px 13px;color:var(--ink);background:var(--paper);outline:none}select:focus,input:focus,textarea:focus{box-shadow:4px 4px 0 var(--yellow)}textarea{min-height:180px;resize:vertical}.linkbox{margin-top:12px;padding:14px;border:2px dashed var(--line);background:var(--paper);overflow-wrap:anywhere}.timerbar{position:sticky;top:8px;z-index:20;display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;margin:18px 0;padding:12px 14px;border:2px solid var(--line);background:rgba(242,239,230,.94);backdrop-filter:blur(10px);box-shadow:5px 5px 0 rgba(23,25,21,.2)}.clock{font-variant-numeric:tabular-nums;font-weight:1000;font-size:1.35rem;letter-spacing:.04em}.progress{height:12px;border:2px solid var(--line);background:var(--white);overflow:hidden}.progress>span{display:block;height:100%;width:0;background:var(--red);transition:width .4s ease}.phase-label{font-size:.85rem;font-weight:900;text-align:right}.phase{display:none}.phase.unlocked{display:block;animation:rise .3s ease both}@keyframes rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.locked-card{text-align:center;background:var(--paper-2);color:var(--muted)}.locked-card .lock{font-size:2rem;display:block}.notice{padding:15px 17px;border:2px solid var(--line);background:var(--yellow);color:var(--ink);font-weight:700}.notice.danger{background:#ffd4cd}.notice.success{background:#cfe2d8}.timeline{width:100%;border-collapse:collapse;margin-top:12px;border-top:2px solid var(--line)}.timeline th,.timeline td{padding:11px;border-bottom:1.5px solid var(--line);vertical-align:top}.timeline th{text-align:left;font-size:.84rem;text-transform:uppercase;letter-spacing:.1em}.timeline td:first-child{white-space:nowrap;font-weight:900;font-variant-numeric:tabular-nums}.evidence{counter-reset:evidence}.evidence article{margin-top:18px;padding:20px;border:2px solid var(--line);background:var(--paper)}.evidence article h3:before{counter-increment:evidence;content:"EVIDENCE " counter(evidence) " / ";color:var(--red);font-size:.72em;letter-spacing:.08em}.check-row{display:flex;gap:10px;align-items:flex-start;margin:11px 0}.check-row input{margin-top:.45em;transform:scale(1.25)}.check-row label{margin:0;font-weight:600}.secret{background:var(--green);color:var(--white);border-color:var(--line)}.secret h2:before{content:"PRIVATE / ";font-size:.42em;letter-spacing:.12em;color:#d5e8df;vertical-align:.35em}.secret .timeline{border-color:rgba(255,255,255,.55)}.secret .timeline th,.secret .timeline td{border-color:rgba(255,255,255,.35)}.secret article{background:rgba(255,255,255,.08);border:1.5px solid rgba(255,255,255,.55)}.secret .notice.success{color:var(--ink)}.tabs{display:flex;gap:8px;overflow-x:auto;padding:8px 0 4px}.tabs a{flex:0 0 auto;padding:7px 12px;border:2px solid var(--line);text-decoration:none;background:var(--white);font-size:.8rem;font-weight:900}.tabs a:hover{background:var(--yellow)}.result-score{font-size:clamp(3rem,10vw,6rem);font-weight:1000;color:var(--red);line-height:1;letter-spacing:-.07em}.hidden{display:none!important}.small{color:var(--muted);font-size:.88rem}.muted{color:var(--muted)}footer{margin-top:34px;padding-top:18px;border-top:2px solid var(--line);text-align:center;color:var(--muted);font-size:.78rem;font-weight:900;letter-spacing:.12em}

.section-kicker{display:inline-block;margin:0 0 14px;padding:6px 12px;border:2px solid var(--line);background:var(--ink);color:var(--white);font-size:.74rem;font-weight:900;letter-spacing:.14em}
.feature-card{background:linear-gradient(180deg,#fffdf7 0%,#f8f3e6 100%)}
.guide-card,.playstyle-card{background:linear-gradient(180deg,#f8df77 0%,#f4d86d 100%)}
.link-section{background:linear-gradient(180deg,#fffdf7 0%,#f4efe1 100%)}
.card::after{content:"";position:absolute;left:0;top:0;width:100%;height:6px;background:var(--ink);opacity:.08}
.feature-card::after{opacity:1;background:var(--red)}
.guide-card::after,.playstyle-card::after{opacity:1;background:var(--green)}
.link-section::after{opacity:1;background:#314776}
.field-hint{margin:0 0 12px;color:var(--muted);font-size:.92rem;line-height:1.6}
.btn{min-height:56px;padding:15px 20px;display:inline-flex;align-items:center;justify-content:center;text-align:center;gap:8px}
.btn-primary{font-size:1.02rem;letter-spacing:.02em}
.btn-secondary-ghost{background:#fff7d6}
.link-section .grid.two>div{padding:18px;border:2px solid var(--line);background:rgba(255,255,255,.7)}
.under-link{margin:.55rem 0 0}
.start-notice{font-size:1rem}
#links h3{margin-bottom:6px}
#links .copy{margin-top:14px}
.controls{margin-top:10px}
select{min-height:54px}
.card ol li+li,.card ul li+li{margin-top:8px}
/* play-page visual identity */
body[data-role] .hero{min-height:320px;background:var(--green)}body[data-role="B"] .hero{background:#314776}body[data-role] .hero h1{font-size:clamp(2.8rem,8vw,6.8rem)}body[data-role] .hero:before{content:"PLAYER FILE\A CONFIDENTIAL"}body[data-role] .hero:after{content:"PRIVATE"}
@media(max-width:760px){
.shell{width:min(100% - 18px,1180px);padding-top:8px}
.grid.two{grid-template-columns:1fr}
.hero{min-height:auto;padding:92px 20px 28px}
.hero h1{font-size:clamp(2.7rem,14vw,4.25rem);line-height:.9;max-width:100%;position:relative;z-index:1}
.hero:before{top:52px;right:18px;font-size:.95rem;line-height:1.05;max-width:42vw;white-space:pre-wrap;opacity:.6}
.hero:after{left:18px;top:16px;padding:6px 10px;font-size:.64rem;letter-spacing:.14em}
.eyebrow{font-size:.72rem;line-height:1.45;padding-right:42vw;margin-bottom:12px;position:relative;z-index:1}
.lead{margin-top:14px;font-size:1rem;line-height:1.7;max-width:100%;position:relative;z-index:1}
.meta{margin-top:16px;position:relative;z-index:1}
body[data-role] .hero{padding-top:84px}
body[data-role] .hero h1{font-size:clamp(2.5rem,13vw,3.8rem)}
body[data-role] .hero:before{top:50px;font-size:.88rem;max-width:46vw}
body[data-role] .eyebrow{padding-right:46vw}
.timerbar{grid-template-columns:auto 1fr}
.phase-label{grid-column:1/-1;text-align:left}
.timeline{font-size:.9rem;display:block;overflow-x:auto}
.timeline th,.timeline td{padding:9px 7px}
.card{padding:22px 18px;box-shadow:5px 5px 0 rgba(23,25,21,.15)}
.section-kicker{font-size:.68rem;padding:5px 10px}
.btn{width:100%;min-height:58px}
.controls .btn{flex:1 1 190px}
.link-section .grid.two>div{padding:14px}
.shell:before{font-size:.62rem}
}

.safety-card::after{opacity:1;background:var(--green)}
.policy-hero{min-height:300px;background:var(--green)}
.policy-hero h1{font-size:clamp(2.8rem,8vw,6.5rem)}
footer a{text-underline-offset:3px}

/* Credits and BGM player */
.has-bgm .shell{padding-bottom:150px}
.credits-card{background:linear-gradient(180deg,#fffdf7 0%,#eee7d8 100%)}
.credits-card::after{opacity:1;background:var(--ink)}
.credits-list{margin:0;display:grid;gap:10px}
.credits-list>div{display:grid;grid-template-columns:minmax(150px,.8fr) 1fr;gap:18px;padding:12px 0;border-bottom:1.5px solid var(--line)}
.credits-list dt{font-weight:900}
.credits-list dd{margin:0;font-size:1.08rem;font-weight:900}
.credits-compact p{font-size:1rem;line-height:1.9}
.bgm-player{position:fixed;right:18px;bottom:18px;z-index:120;width:min(430px,calc(100% - 36px));display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center;padding:12px 14px;border:2px solid var(--line);border-radius:6px;background:rgba(23,25,21,.96);color:var(--white);box-shadow:6px 6px 0 rgba(0,0,0,.25);backdrop-filter:blur(10px)}
.bgm-player.is-playing{outline:3px solid rgba(229,77,53,.45)}
.bgm-toggle{min-height:46px;border:2px solid var(--white);padding:10px 14px;background:var(--red);color:var(--white);font-weight:900;cursor:pointer;white-space:nowrap}
.bgm-toggle:hover{filter:brightness(1.06)}
.bgm-details{display:grid;grid-template-columns:1fr auto;gap:6px 10px;align-items:center;min-width:0}
.bgm-status{grid-column:1/-1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;font-weight:900}
.bgm-volume-label{margin:0;color:#ddd;font-size:.74rem;font-weight:900}
.bgm-volume{width:100%;accent-color:var(--red)}
.bgm-player audio{display:none}
@media(max-width:760px){
  .has-bgm .shell{padding-bottom:170px}
  .credits-list>div{grid-template-columns:1fr;gap:2px}
  .bgm-player{left:9px;right:9px;bottom:9px;width:auto;grid-template-columns:1fr;padding:10px 12px;gap:8px}
  .bgm-toggle{width:100%;min-height:48px}
  .bgm-details{grid-template-columns:auto 1fr}
  .bgm-status{font-size:.76rem}
}
