@font-face{font-family:Rabbit Display;src:url('../fontbank/BodoniModa_72pt-SemiBold.woff2') format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:Rabbit Editorial;src:url('../fontbank/Newsreader_24pt-Regular.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Rabbit Editorial;src:url('../fontbank/Newsreader_24pt-Italic.woff2') format('woff2');font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:Rabbit Mono;src:url('../fontbank/IBMPlexMono-Regular.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Rabbit Japanese;src:url('../fontbank/NotoSerifJP-Regular.woff2') format('woff2');font-weight:400;font-display:swap}
:root{
  color-scheme:dark;
  --screen-black:#020604;--screen-green:#07180c;
  --phosphor:#d5efbd;--phosphor-soft:#9fca89;--phosphor-dim:#81af73;
  --cursor-amber:#ffd34b;--signal-cyan:#48c7d0;
  --mono:'Rabbit Mono','Courier New',monospace;
  --serif:'Rabbit Editorial',Georgia,serif;
  --acquisition-time:420ms;--slide-time:170ms;--zap-time:320ms;
}
*{box-sizing:border-box}
html{background:var(--screen-black);scroll-padding-top:1rem}
body.contents-page{margin:0;min-height:100vh;min-height:100svh;background:radial-gradient(ellipse at 50% 32%,#0b2311 0%,var(--screen-green) 42%,var(--screen-black) 100%);color:var(--phosphor);font-family:var(--serif);font-size:20px;line-height:1.45}
a{color:var(--phosphor);background:transparent;text-decoration:none}
button{font:inherit;color:var(--phosphor);background:var(--screen-green);border:1px solid #36523a;border-radius:0;cursor:pointer;min-width:44px;min-height:44px}
button:hover,a:hover{color:var(--cursor-amber)}
:focus-visible{outline:2px solid var(--cursor-amber);outline-offset:4px}
[hidden]{display:none!important}
.contents-shell{width:calc(100% - 40px);max-width:660px;margin:0 auto;padding:calc(45px + env(safe-area-inset-top,0px)) 0 calc(30px + env(safe-area-inset-bottom,0px));position:relative;z-index:1}
.terminal{font-family:var(--mono);font-size:12px;letter-spacing:.015em;color:var(--phosphor-soft);margin:0 0 22px;display:flex;gap:8px;align-items:center;overflow-wrap:anywhere}
.terminal>span:first-child{min-width:0}
#contents-sound{margin-left:auto;flex-shrink:0;padding:8px 0 8px 8px;border:0;background:transparent;color:var(--phosphor-soft);font:inherit;cursor:pointer;letter-spacing:inherit}
#contents-sound:hover,#contents-sound:focus-visible{color:var(--cursor-amber);text-decoration:underline;text-underline-offset:3px}
.terminal a{color:inherit}
.terminal a:hover,.terminal a:focus-visible{color:var(--cursor-amber);text-decoration:underline;text-underline-offset:3px}
.idle-cursor{display:inline-block;width:.62em;height:1em;background:var(--cursor-amber);box-shadow:0 0 6px #ffd34b44;animation:cursor-blink 1060ms steps(1,end) infinite;flex-shrink:0}
@keyframes cursor-blink{50%{opacity:0}}
.masthead{position:relative;display:flex;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:12px;border-bottom:1px solid var(--signal-cyan);padding-bottom:9px}
.opening-running .masthead{border-bottom-color:transparent}
.opening-running .masthead::after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--signal-cyan);transform-origin:left;transform:scaleX(var(--rule-progress,0))}
.opening-running .terminal>.idle-cursor{visibility:hidden}
.masthead h1{margin:0;min-width:0;max-width:100%;text-align:center;font-family:'Rabbit Display',Georgia,serif;font-weight:600;font-size:clamp(34px,8.6vw,68px);line-height:1.08;letter-spacing:-.055em}
.index-label{font-family:var(--mono);font-size:13px;white-space:nowrap;color:var(--phosphor-soft)}
.epigraph h2{font-family:'Rabbit Japanese','Yu Mincho','Hiragino Mincho ProN',serif;font-weight:400;font-size:clamp(44px,11vw,76px);line-height:1.3;letter-spacing:-.06em;text-align:center;margin:16px 0 10px}
.epigraph p{margin:0 0 15px;font-size:21px;line-height:1.42}
.epigraph em{font-style:italic}
.features{margin-top:22px;border-bottom:1px solid var(--signal-cyan);padding-bottom:4px}
.feature-topline{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:8px;font-family:var(--mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--phosphor-soft)}
.feature-topline h2{font-size:inherit;font-weight:400;margin:0}
#demo-label{color:var(--phosphor-dim);white-space:nowrap}
.feature-stage{display:grid;position:relative;touch-action:pan-y pinch-zoom}
.feature-stage>article{min-height:calc(min(660px,100vw - 40px) * .3125 + 116px)}
.feature-stage>article{grid-area:1/1;min-width:0}
.feature-stage>article[hidden]{display:block!important;visibility:hidden;pointer-events:none}
.feature-image,.feature-fallback{display:block;width:100%;aspect-ratio:16/5;object-fit:cover;background:#07120a;border:1px solid #335431;color:var(--phosphor-soft)}
.feature-fallback{display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:12px;text-align:center;padding:20px;background:radial-gradient(ellipse,#17331a,#061108)}
.feature-image-wrap{position:relative;aspect-ratio:16/5}
.feature-image-wrap .feature-image{height:100%}
.feature-image-wrap .feature-fallback{position:absolute;inset:0}
.feature-copy{padding-top:10px;padding-bottom:4px}
.feature-category{font:10px var(--mono);letter-spacing:.075em;text-transform:uppercase;color:var(--phosphor-soft);margin:0 0 5px}
.feature-copy h3{margin:0 0 4px;font-weight:400;font-size:27px;line-height:1.16}
.feature-copy h3 a{display:inline-block;padding:2px 0}
.feature-copy h3 a::after{content:' ↗';color:var(--cursor-amber);font-family:var(--mono);font-size:17px}
.feature-summary{font-size:18px;line-height:1.35;color:var(--phosphor-soft);margin:0}
.feature-controls{display:flex;align-items:center;justify-content:space-between;font-family:var(--mono);font-size:12px;gap:2px}
.feature-controls[hidden]{display:flex!important;visibility:hidden;pointer-events:none}
.feature-controls button{background:transparent;border-color:transparent;font-size:20px}
.feature-dots{display:flex;align-items:center;min-height:44px}
.feature-dots button{width:44px;height:44px;padding:0;position:relative}
.feature-dots button::after{content:'';display:block;width:6px;height:6px;border:1px solid var(--phosphor-soft);border-radius:50%;margin:auto}
.feature-dots button[aria-disabled=true]::after{background:var(--cursor-amber);border-color:var(--cursor-amber)}
.feature-counter{color:var(--phosphor-soft);font-size:10px;white-space:nowrap}
.feature-status{font:12px/1.6 var(--mono);color:var(--phosphor-soft);margin:12px 0}
.feature-retry{font:12px var(--mono);padding:8px 14px;margin-bottom:8px}
.feature-enter{animation:feature-in var(--slide-time) ease-out}
@keyframes feature-in{from{opacity:.35}to{opacity:1}}
.directory{margin-top:8px}
.directory ol{list-style:none;margin:0;padding:0}
.directory ol+ol{border-top:1px solid #48c7d06b;margin-top:9px;padding-top:9px}
.directory a{display:flex;align-items:center;gap:12px;min-height:44px;padding:7px 3px;font-family:var(--mono);font-size:16px;line-height:1.4;text-transform:uppercase}
.directory a:hover,.directory a:focus-visible{background:#b6df9910}
.directory a.is-directory-typing{background:#ffd34b0a}
.directory .row-icon{width:20px;height:20px;flex-shrink:0;stroke:currentColor;stroke-width:1.5;fill:none;stroke-linejoin:round}
.directory .utility .row-icon{color:var(--signal-cyan)}
.row-number{font-size:12px;color:var(--phosphor-soft);white-space:nowrap}
.row-slash{color:var(--phosphor-dim);font-size:12px}
.row-label{min-width:0}
.row-leader{flex:1;min-width:0;height:1px;background:repeating-linear-gradient(to right,#8cb778 0 1px,transparent 1px 5px);opacity:.55}
.row-arrow{font-size:20px;line-height:1;flex-shrink:0}
.contents-footer{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;font:10px/1.5 var(--mono);letter-spacing:.025em;color:var(--phosphor-dim);margin-top:28px;border-top:1px solid #335431;padding-top:15px}
.contents-footer a{color:var(--phosphor-soft)}
.view-counter{display:flex;flex-direction:column;align-items:center;gap:10px;margin:32px auto 0;text-align:center;font:10px/1.5 var(--mono);color:var(--phosphor-soft)}
.view-counter-label{letter-spacing:.12em}
.view-counter-digits{display:flex;flex-wrap:wrap;justify-content:center;gap:3px;max-width:100%;font:500 24px/1.25 var(--mono);font-variant-numeric:tabular-nums}
.view-counter-digit{position:relative;min-width:1.15em;padding:4px 3px;color:var(--cursor-amber);background:#061008;border:1px solid #46613d;box-shadow:inset 0 1px #9fca8922}
.view-counter-digit::after{content:'';position:absolute;inset:50% 0 auto;border-top:1px solid #00000060;pointer-events:none}
.view-counter-status,.view-counter-note{font-size:10px;color:var(--phosphor-dim)}
.view-counter[data-state=unavailable] .view-counter-digit{color:var(--phosphor-dim)}
@media(forced-colors:active){.view-counter-digit{color:CanvasText;background:Canvas;border-color:CanvasText;box-shadow:none}.view-counter-digit::after{display:none}.view-counter-label,.view-counter-status,.view-counter-note{color:CanvasText}}
.contents-glass,.contents-noise,.acquisition{position:fixed;inset:0;width:100%;height:100%;height:100dvh;pointer-events:none;z-index:3}
.contents-glass{background:repeating-linear-gradient(0deg,#0000000b 0 1px,transparent 1px 3px),radial-gradient(ellipse at center,transparent 35%,#00000018 76%,#00000060 100%)}
.contents-noise{opacity:.022;image-rendering:pixelated;z-index:2}
.acquisition{opacity:0;background:repeating-linear-gradient(0deg,transparent 0 17px,#9fca8933 18px 19px,transparent 20px 31px)}
.is-acquiring .acquisition{animation:signal-acquire var(--acquisition-time) linear}
@keyframes signal-acquire{0%{opacity:.2;transform:translateX(2px) skewX(.15deg)}17%{transform:translateX(-1px)}30%{opacity:.12;transform:translateX(1px)}42%{transform:translateX(-.7px)}72%{opacity:.04;transform:none}100%{opacity:0;transform:none}}
.startup{position:fixed;inset:0;z-index:10;background:var(--screen-black);display:flex;align-items:center;justify-content:center;font:12px/1.5 var(--mono);color:var(--phosphor)}
.startup-inner{text-align:center;width:min(240px,80vw)}
.startup .idle-cursor{vertical-align:middle}
.startup progress{display:block;width:100%;height:3px;accent-color:var(--phosphor-soft);border:0;background:var(--screen-green)}
.startup progress::-webkit-progress-bar{background:var(--screen-green)}
.startup progress::-webkit-progress-value{background:var(--phosphor-soft)}
.startup progress::-moz-progress-bar{background:var(--phosphor-soft)}
#startup-status{color:var(--phosphor-dim);font-size:10px}
#skip-intro{font:12px var(--mono);margin-top:12px;padding:8px 15px;background:transparent}
[data-type]{position:relative}
.is-typing>.type-source{opacity:0}
.type-visual{position:absolute;inset:0;display:block;pointer-events:none;user-select:none}
.type-character{opacity:0}
.type-character.is-visible{opacity:1}
.type-cursor{position:absolute;z-index:4;visibility:hidden;background:var(--cursor-amber);pointer-events:none;box-shadow:0 0 4px #ffd34b44}
.type-cursor.is-paused{animation:cursor-blink 1060ms steps(1,end) infinite}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;top:10px;left:20px;z-index:20;padding:10px 14px;background:var(--screen-black);font:13px var(--mono);transform:translateY(-160%)}
.skip-link:focus{transform:none}
/* Entrance's horizontal signal band and central point, on a decorative layer. */
.crt-nav-overlay{position:fixed;inset:0;z-index:30;pointer-events:none;opacity:0;background:#020604}
.crt-nav-overlay::after{content:'';position:absolute;left:50%;top:50%;width:100%;height:2px;background:var(--phosphor);box-shadow:0 0 9px #d5efbd70;transform:translate(-50%,-50%);opacity:0}
.is-zapping .crt-nav-overlay{animation:nav-cover var(--zap-time) linear forwards}
.is-zapping .crt-nav-overlay::after{animation:nav-band var(--zap-time) ease-in forwards}
@keyframes nav-cover{0%{opacity:0;background:#9fca8918}20%{opacity:1;background:#9fca8918}55%,100%{opacity:1;background:#020604}}
@keyframes nav-band{0%,18%{opacity:0;width:100%;height:100%}55%{opacity:1;width:100%;height:3px}76%{opacity:1;width:22%;height:2px}93%{opacity:.8;width:5px;height:5px}100%{opacity:0;width:1px;height:1px}}
.placeholder-body{min-height:100svh;display:flex;align-items:center}
.placeholder-body .contents-shell{padding-block:48px}
.placeholder-title{font:600 clamp(38px,8vw,64px)/1.15 'Rabbit Display',Georgia,serif;margin:30px 0 20px}
.placeholder-copy{max-width:520px;color:var(--phosphor-soft)}
.placeholder-link{display:block;width:fit-content;min-height:44px;padding:12px 0;font:13px/1.5 var(--mono);text-decoration:underline;text-underline-offset:5px}
@media(max-width:600px){
  body.contents-page{font-size:18px}
  .contents-shell{padding-top:calc(25px + env(safe-area-inset-top,0px))}
  .terminal{font-size:10px;margin-bottom:18px}
  .masthead{gap:8px}
  .index-label{font-size:10px}
  .epigraph h2{margin-top:16px;margin-bottom:12px}
  .epigraph p{font-size:19px;line-height:1.45;margin-bottom:14px}
  .features{margin-top:20px}
  .feature-image,.feature-fallback{aspect-ratio:16/9}
  .feature-image-wrap{aspect-ratio:16/9}
  .feature-stage>article{min-height:calc((100vw - 40px) * .5625 + 130px)}
  .feature-controls{display:grid;grid-template-columns:44px 1fr 44px;gap:0}
  .feature-controls[hidden]{display:grid!important}
  #feature-prev{grid-area:1/1}
  #feature-next{grid-area:1/3}
  .feature-counter{grid-area:1/2;text-align:center}
  .feature-dots{grid-area:2/1/3/4;justify-content:center}
  .feature-copy h3{font-size:25px}
  .feature-summary{font-size:18px}
  .directory a{gap:9px;font-size:15px}
  .row-icon{width:18px!important;height:18px!important}
  .row-number{font-size:11px}
}
@media(max-width:350px){.contents-shell{width:calc(100% - 30px)}.masthead h1{font-size:31px}.masthead{gap:6px}.index-label{font-size:9px}.directory a{gap:7px;font-size:14px}.feature-counter{display:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.contents-noise,.acquisition{display:none}.startup{display:none}.is-typing>.type-source{opacity:1}.type-visual,.type-cursor{display:none}}
@media(forced-colors:active){.contents-glass,.contents-noise,.acquisition,.row-leader{display:none}.directory a,button{border:1px solid ButtonText}.feature-dots button::after{border-color:ButtonText}.feature-dots button[aria-disabled=true]::after{background:Highlight}.type-cursor,.idle-cursor{background:Highlight}}
