html{-webkit-text-size-adjust:100%}body{margin:0}img,video{max-width:100%}[hidden]{display:none!important}
/* Single deliberate look: CRT phosphor on black. */
:root{
  --room:#050607;
  --cy:#54F0E0; --cyd:rgba(84,240,224,.45); --teal:#1C8F88; --amb:#FFB43A; --ph:#79F7A6; --mag:#FF6AD5; --red:#FF4A3A;
  --wh:#E8FBF7; --film:#F2EFE6; --dim:#7E9794; --line:#1F3134; --ink:#031012; --card:#081416;
  color-scheme:dark;
}
html,body{height:100%}
body{background:var(--room);color:var(--wh);font-family:'Share Tech Mono',ui-monospace,Consolas,monospace;overflow-x:hidden}
.skip{position:absolute;left:16px;top:-60px;z-index:20;background:var(--amb);color:var(--ink);padding:10px 14px;font-size:14px;text-decoration:none;letter-spacing:.08em;text-transform:uppercase}
.skip:focus{top:16px}
.offscreen-video{position:fixed;left:0;top:0;width:2px;height:2px;opacity:0;pointer-events:none}

/* ---------- terminal: the picture alone, on black ---------- */
.room{--bar:52px;height:100vh;height:100dvh;display:flex;flex-direction:column;align-items:center;background:#000;box-sizing:border-box}
.room[hidden]{display:none}
.stage{flex:1;min-height:0;width:100%;display:flex;align-items:center;justify-content:center;background:#000}
.tubewrap{position:relative;width:min(100vw,calc((100vh - var(--bar)) * 4 / 3));width:min(100vw,calc((100dvh - var(--bar)) * 4 / 3));aspect-ratio:4/3;overflow:hidden;background:#000}
.stage:fullscreen .tubewrap{width:min(100vw,calc(100vh * 4 / 3))}
#tube{display:block;width:100%;height:100%;cursor:none;outline:none}
.viewer{position:absolute;inset:6.5% 3.2% 7% 3.2%;background:#020607;border:1px solid rgba(84,240,224,.55);box-shadow:0 0 0 1px #000,0 0 40px rgba(84,240,224,.18)}
.viewer iframe{display:block;width:100%;height:100%;border:0;background:#020607}
.deskbar{height:var(--bar);flex:none;display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:center}
.deskbar button{background:transparent;color:var(--dim);border:1px solid var(--line);padding:6px 12px;font:inherit;font-size:11px;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;min-height:32px}
.deskbar button{border-color:transparent}
.deskbar button:hover{color:var(--wh);border-color:var(--line)}
.deskbar button:focus-visible{outline:2px solid var(--amb);outline-offset:3px}
.deskbar button[aria-pressed="false"]{color:#4d5a59}

.room.intro #tube{cursor:default}
.room.intro .deskbar [data-post],.room:not(.intro) .deskbar [data-intro]{display:none}
.room.intro .deskbar{opacity:.7}

/* ---------- plain archive ---------- */
.plain{max-width:1120px;margin:0 auto;padding-inline:16px;padding-block:0 64px;outline:none;
  background-image:repeating-linear-gradient(0deg,rgba(0,0,0,.18) 0 1px,transparent 1px 3px)}
.plain[hidden]{display:none}
.plain.reveal{animation:reveal .9s ease-out both}
@keyframes reveal{0%{opacity:0;filter:brightness(2.2) saturate(.4)}35%{opacity:1}100%{opacity:1;filter:none}}
@media (prefers-reduced-motion:reduce){.plain.reveal{animation:none}}
.is-plain body{background:radial-gradient(ellipse 90% 40% at 50% 0%,#0d1b1d,var(--room) 70%)}
.p-bar{position:sticky;top:env(safe-area-inset-top,0px);z-index:5;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding-block:14px;
  font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--cy);background:var(--room);border-bottom:1px solid var(--line)}
@media (max-width:520px){.p-bar>span{font-size:10px;letter-spacing:.12em}.p-bar{padding-block:10px}}
.p-term{background:var(--amb);color:var(--ink);border:0;padding:9px 14px;font:inherit;font-size:12px;letter-spacing:.14em;text-transform:uppercase;cursor:pointer}
.p-term:focus-visible{outline:2px solid var(--wh);outline-offset:3px}
.p-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:clamp(20px,4vw,48px);align-items:center;padding-block:clamp(28px,6vw,64px)}
.p-kicker,.p-no,.p-meta{margin:0;font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:var(--amb)}
.p-id h1{margin:.1em 0 0;font-family:'Noto Serif JP',serif;font-weight:900;font-size:clamp(56px,9vw,120px);line-height:.95;color:var(--film);letter-spacing:-.01em;transform:scaleX(.9);transform-origin:left}
.p-kana{margin:.4em 0 0;font-family:'Noto Serif JP',serif;font-weight:900;font-size:clamp(18px,2.2vw,26px);color:var(--cy)}
.p-roles{margin:18px 0 0;padding-top:14px;border-top:3px solid var(--amb);font-size:14px;letter-spacing:.14em;text-transform:uppercase;color:var(--cy)}
.p-tag{margin:10px 0 0;font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:clamp(22px,2.6vw,30px);letter-spacing:.04em;text-transform:uppercase;text-wrap:balance}
.p-intro{margin:14px 0 0;font-family:'Barlow Condensed',sans-serif;font-weight:500;font-size:20px;line-height:1.45;color:#b9ccc9;max-width:52ch}
.p-reel{margin:0}
.p-reel video{display:block;width:100%;max-width:100%;aspect-ratio:4/3;background:#000;border:1px solid var(--line)}
.p-reel figcaption{padding:10px 4px 2px;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--dim)}
.p-toc ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.p-toc a{display:inline-flex;gap:10px;align-items:center;padding:8px 12px;border:1px solid var(--line);color:var(--wh);text-decoration:none;font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:18px;letter-spacing:.08em;text-transform:uppercase}
.p-toc a span{font-family:'Share Tech Mono',monospace;color:var(--amb);font-size:14px}
.p-toc a:hover,.p-toc a:focus-visible{border-color:var(--cy);color:var(--cy);outline:none}
.p-sec{padding-block:clamp(40px,7vw,80px) 0;scroll-margin-top:64px}
.p-head{display:flex;flex-direction:column;gap:6px;margin-bottom:24px}
.p-head h2{margin:0;font-family:'Barlow',sans-serif;font-weight:800;font-size:clamp(40px,7vw,84px);line-height:.9;text-transform:uppercase;color:#F4FFFD;
  text-shadow:-3px 0 rgba(255,40,90,.6),3px 0 rgba(40,150,255,.6),0 0 24px rgba(84,240,224,.35)}
.p-sec.g .p-head h2{text-shadow:-3px 0 rgba(255,40,90,.6),3px 0 rgba(40,150,255,.6),0 0 24px rgba(121,247,166,.4)}
.p-sec.m .p-head h2{text-shadow:-3px 0 rgba(255,40,90,.6),3px 0 rgba(40,150,255,.6),0 0 24px rgba(255,106,213,.4)}
.p-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
.p-card{padding:20px 22px 22px;background:var(--card);border:1px solid var(--line);display:flex;flex-direction:column;gap:10px}
.p-card.core{border-color:var(--amb)}
.p-card h3,.p-game h3{margin:0;font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:30px;line-height:1;letter-spacing:.04em;text-transform:uppercase;color:var(--wh)}
.p-card p,.p-game p{margin:0;font-family:'Barlow Condensed',sans-serif;font-weight:500;font-size:19px;line-height:1.45;color:#c4d6d3}
.p-card .p-meta,.p-game .p-meta{font-family:'Share Tech Mono',monospace;font-size:12px;color:var(--amb)}
.p-stat b{font-family:'Share Tech Mono',monospace;font-size:34px;font-weight:400;color:var(--amb);margin-right:8px}
.p-tags{list-style:none;margin:auto 0 0;padding:6px 0 0;display:flex;flex-wrap:wrap;gap:6px}
.p-tags li{border:1px solid var(--cyd);color:var(--cy);font-size:11px;letter-spacing:.12em;text-transform:uppercase;padding:4px 8px}
.p-sub{margin:32px 0 12px;font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:22px;letter-spacing:.1em;text-transform:uppercase}
.p-sub span{font-family:'Share Tech Mono',monospace;font-size:11px;color:var(--dim);letter-spacing:.16em;margin-left:10px}
.p-reviews{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}
.p-reviews li{padding:14px 16px;border-left:3px solid var(--amb);background:var(--card);font-family:'Barlow Condensed',sans-serif;font-size:19px;line-height:1.35}
.p-reviews span{display:block;margin-top:6px;font-family:'Share Tech Mono',monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}
.p-game{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:24px;align-items:center}
.p-game>div{display:flex;flex-direction:column;gap:12px}
.p-game img{width:100%;max-width:100%;height:auto;filter:drop-shadow(0 0 30px rgba(121,247,166,.15))}
.p-systems{margin:24px 0 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.p-sys{padding:16px 18px;border:1px solid rgba(255,180,58,.4);background:#0d0b06}
.p-sys dt{font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:22px;letter-spacing:.08em;text-transform:uppercase;color:var(--amb)}
.p-sys dd{margin:6px 0 0;font-family:'Barlow Condensed',sans-serif;font-size:18px;line-height:1.45;color:#c4d6d3}
.p-credits{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.p-credits b{display:block;font-weight:400;color:var(--mag);font-size:14px;letter-spacing:.08em;text-transform:uppercase}
.p-credits span{font-family:'Barlow Condensed',sans-serif;font-size:17px;color:#a9bcb9}
.p-record{list-style:none;margin:0;padding:0;border-left:2px solid var(--cyd)}
.p-record li{display:grid;grid-template-columns:130px minmax(0,1fr);gap:4px 18px;padding:14px 0 14px 22px;border-bottom:1px solid var(--line);position:relative}
.p-record li::before{content:"";position:absolute;left:-7px;top:22px;width:12px;height:12px;background:var(--room);border:2px solid var(--cy)}
.p-yr{grid-row:span 2;color:var(--amb);font-size:15px;padding-top:4px}
.p-record b{font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:26px;letter-spacing:.04em;text-transform:uppercase}
.p-record span:last-child{font-family:'Barlow Condensed',sans-serif;font-size:18px;color:#a9bcb9}
.p-links{list-style:none;margin:0 0 16px;padding:0;display:grid;gap:10px;max-width:720px}
.p-links li{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:16px 18px;border:1px solid var(--cyd);background:var(--card)}
.p-links a{color:var(--wh);font-size:clamp(16px,2.2vw,22px);text-decoration:none;overflow-wrap:anywhere}
.p-links a:hover,.p-links a:focus-visible{color:var(--cy);text-decoration:underline;outline:none}
.p-links li>span{font-family:'Barlow Condensed',sans-serif;font-weight:600;font-size:16px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim)}
.p-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-top:72px;padding-top:18px;border-top:1px solid var(--line);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--dim)}
@media (max-width:760px){
  .p-hero,.p-game{grid-template-columns:1fr}
  .p-record li{grid-template-columns:1fr}
  .p-yr{grid-row:auto}
}
.p-shot{display:block;width:100%;max-width:100%;height:auto;aspect-ratio:2/1;object-fit:cover;object-position:50% 20%;border:1px solid var(--line)}
.p-ext{align-self:flex-start;color:var(--cy);font-size:14px;letter-spacing:.08em;text-decoration:none;border-bottom:1px solid var(--cyd);padding-bottom:2px}
.p-ext:hover,.p-ext:focus-visible{color:var(--wh);border-color:var(--wh);outline:none}
.p-src{margin:14px 0 0}
.p-jp{font-family:'Noto Sans JP',sans-serif;font-size:14px;color:var(--cy);letter-spacing:0;margin-left:6px;vertical-align:middle}
.p-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.p-list li{position:relative;padding-left:16px;font-family:'Barlow Condensed',sans-serif;font-weight:600;font-size:19px;line-height:1.3;color:#d6e7e4}
.p-list li::before{content:"";position:absolute;left:0;top:.5em;width:6px;height:6px;background:var(--amb)}
.p-list li span{display:block;font-family:'Share Tech Mono',monospace;font-weight:400;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim)}
.p-stats{list-style:none;margin:0 0 18px;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}
.p-stats li{padding:14px 16px;border:1px solid rgba(255,180,58,.4);background:#0d0b06}
.p-stats b{display:block;font-family:'Share Tech Mono',monospace;font-weight:400;font-size:32px;color:var(--amb)}
.p-stats span{font-family:'Barlow Condensed',sans-serif;font-size:17px;letter-spacing:.06em;text-transform:uppercase;color:var(--dim)}
.p-built{margin-top:14px;border-color:var(--amb)}
.p-skill .p-tags{margin-top:4px}
.p-comp img{display:block;width:100%;height:auto;aspect-ratio:352/200;object-fit:cover;border:1px solid var(--line);background:#020607}
.p-note{margin:12px 0 0;font-size:12px;letter-spacing:.1em;color:var(--dim)}
.p-open{margin:10px 0 0;font-family:'Barlow Condensed',sans-serif;font-size:19px;color:#b9ccc9}
