:root {
  --background:#030303; --white:#f4f4f1; --red:#fa354f; --cyan:#32d7ef;
  --mono:'Courier New',Courier,monospace; --window:#e9e9e9;
}
*,*::before,*::after{box-sizing:border-box}
html{background:var(--background);scroll-behavior:smooth}
body{margin:0;color:var(--white);font-family:var(--mono);-webkit-font-smoothing:none;background:var(--background)}
button,a{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}
button:focus-visible,a:focus-visible{outline:2px dashed var(--cyan);outline-offset:5px}
[hidden]{display:none!important}
.site{position:relative;isolation:isolate;min-height:820px;height:100svh;overflow:hidden;background:#030303}

.static-noise,.scanlines,.signal,.flash{position:absolute;inset:0;pointer-events:none}
.static-noise{z-index:12;opacity:.37;background-image:url('../images/signal-grain.png');background-repeat:repeat;background-size:760px 760px;mix-blend-mode:screen}
.scanlines{z-index:13;opacity:.35;background:repeating-linear-gradient(to bottom,transparent 0,transparent 3px,rgba(0,0,0,.65) 4px,rgba(255,255,255,.09) 5px);animation:scan-drift 11s linear infinite}
.signal{z-index:14;overflow:hidden;opacity:.8}
.signal-bar{position:absolute;height:1px;background:#eee;box-shadow:0 1px #707070;animation:line-flicker 4s steps(1,end) infinite;opacity:var(--alpha,.36)}
.signal-bar.strong{height:2px;box-shadow:0 -2px rgba(255,255,255,.17),0 3px #555}
.flash{z-index:15;opacity:0;background:#fff;mix-blend-mode:screen}
.flash.active{animation:screen-flash .55s steps(1,end) 1}
.site::after{position:absolute;inset:0;z-index:16;pointer-events:none;content:"";box-shadow:inset 0 0 140px 30px #0006,inset 0 0 0 1px #ffffff17}
@keyframes scan-drift{to{background-position:0 150px}}
@keyframes line-flicker{0%,70%,74%,100%{opacity:var(--alpha,.36);transform:translateX(0)}71%{opacity:.9;transform:translateX(12px)}73%{opacity:.05;transform:translateX(-18px)}}
@keyframes screen-flash{0%,35%,57%,100%{opacity:0}9%,48%{opacity:.28}}
.header{position:relative;z-index:17;display:flex;justify-content:space-between;align-items:center;width:calc(100% - clamp(48px,9.7vw,172px));margin:auto;padding-top:clamp(27px,3.2vh,42px)}
.logo{display:grid;place-items:center;width:clamp(48px,4.9vw,68px);height:clamp(48px,4.9vw,68px);border-radius:50%;background:#f5f5f4;color:#080808;font:bold clamp(43px,4.7vw,64px)/1 Arial,sans-serif;letter-spacing:-5px;padding:0 6px 7px 0;transition:transform .2s ease,box-shadow .2s ease}
.logo:hover{transform:rotate(-12deg);box-shadow:4px 1px var(--red),-4px -1px var(--cyan)}
.status{font-size:10px;letter-spacing:.16em;display:flex;align-items:center;gap:13px;color:#aaa;white-space:nowrap}
.status-dot{background:#d52b42;width:6px;height:6px;box-shadow:0 0 12px #d52b42;animation:blink 1.5s steps(1,end) infinite}
.status-dash{opacity:.5}.top-nav{display:flex;align-items:center;gap:clamp(20px,3.8vw,60px)}
.top-nav a,.top-nav button{background:none;border:0;color:#f2f2f2;padding:6px 0;font-size:clamp(11px,.82vw,14px);letter-spacing:.09em;white-space:nowrap}
.top-nav a:hover,.top-nav button:hover,.side-nav button:hover,.terminal-choices button:hover{color:var(--cyan);text-shadow:2px 0 var(--red)}
.hero{position:absolute;left:clamp(38px,7.0vw,155px);top:15%;z-index:3;max-width:73%}
.eyebrow{font-size:clamp(10px,.82vw,13px);letter-spacing:.22em;color:#999;margin:0 0 18px 4px}
.eyebrow span{margin:0 10px;color:#fff}
.glitch-heading{font-family:Impact,'Arial Black','Liberation Sans',Arial,sans-serif;font-weight:1000;font-stretch:condensed;font-size:clamp(106px,10.2vw,176px);line-height:.795;letter-spacing:-.055em;transform:scaleX(1.04);transform-origin:left center;filter:contrast(1.12);margin:0}
.glitch-row{display:block;position:relative;width:max-content;color:#f9f9f9;text-shadow:-4px 0 var(--red),4px 0 var(--cyan),0 3px #aaa;animation:base-glitch 7s steps(1,end) infinite}
.glitch-row:nth-child(2){animation-delay:-2.5s}.glitch-row:nth-child(3){animation-delay:-4.3s}
.glitch-row>span{position:relative;z-index:1}
.glitch-row::before,.glitch-row::after{content:attr(data-text);position:absolute;inset:0;white-space:nowrap;overflow:hidden;pointer-events:none}
.glitch-row::before{z-index:2;clip-path:inset(15% 0 64% 0);color:#f7f7f7;text-shadow:-8px 0 var(--red);animation:chromatic-a 3.8s steps(1,end) infinite}
.glitch-row::after{z-index:2;clip-path:inset(68% 0 17% 0);color:#fff;text-shadow:7px 0 var(--cyan);animation:chromatic-b 2.9s steps(1,end) infinite}
.hero-subline{margin:27px 0 0 5px;font-size:clamp(9px,.8vw,12px);letter-spacing:.13em;color:#b5b5b5}
.cursor,.blink{animation:blink .75s steps(1,end) infinite}
@keyframes blink{50%{opacity:0}}
@keyframes base-glitch{0%,88%,91%,100%{transform:translate(0,0)}89%{transform:translate(-7px,2px)}90%{transform:translate(5px,-1px)}}
@keyframes chromatic-a{0%,80%,87%,100%{transform:translate(3px,0)}81%{transform:translate(-13px,-3px)}83%{transform:translate(17px,1px)}85%{transform:translate(-4px,3px)}}
@keyframes chromatic-b{0%,82%,87%,100%{transform:translate(-4px,0)}83%{transform:translate(19px,0)}85%{transform:translate(-17px,2px)}}
.side-nav{position:absolute;z-index:17;top:27%;right:clamp(65px,10.2vw,200px);display:flex;flex-direction:column;align-items:flex-start;gap:16px}
.side-label{margin-bottom:18px;color:#999;font-size:10px;letter-spacing:.18em}
.side-nav button{font-size:clamp(13px,.98vw,17px);background:none;border:none;color:#fff;text-align:left;white-space:nowrap;padding:0;letter-spacing:.04em;transition:transform .15s}
.side-nav button:hover{transform:translateX(7px)}

.errors{position:absolute;inset:0;z-index:10;pointer-events:none}
.error-window{position:absolute;z-index:var(--stack,2);width:clamp(290px,25vw,372px);background:var(--window);color:#070707;pointer-events:auto;border:2px solid #f4f4f4;box-shadow:inset -2px -2px #777,inset 2px 2px #fff,0 8px 0 #000,0 8px 18px #000e;transform:translate(var(--drag-x,0px),var(--drag-y,0px));transition:filter .12s}
.error-window.is-focused{filter:drop-shadow(0 0 5px #ffffff35)}
.error-window.is-hidden{display:none}
.error-window[data-error="404"]{left:49.5%;top:44%;}
.error-window[data-error="403"]{left:30%;top:55%;}
.error-window[data-error="500"]{left:70.8%;top:58%;width:clamp(260px,21.5vw,335px)}
.window-bar{height:31px;display:flex;align-items:center;justify-content:space-between;padding:2px 5px 2px 9px;background:linear-gradient(to bottom,#3e3e3e,#111);color:#eee;font-size:13px;letter-spacing:.035em;user-select:none;touch-action:none;cursor:grab}
.window-bar:active{cursor:grabbing}
.window-close,.modal-head button{display:grid;place-items:center;width:23px;height:23px;padding:0;border:1px solid #292929;box-shadow:inset 1px 1px #fff,inset -1px -1px #888;color:#000;background:#ececec;font:bold 23px/1 Arial,sans-serif}
.window-close:hover{background:#ffe1e4}
.window-inner{display:flex;align-items:center;gap:20px;min-height:86px;padding:19px 24px 8px}
.warning{height:41px;width:41px;flex:0 0 41px;filter:drop-shadow(1px 1px #fff)}
.window-inner p{font-size:13px;line-height:1.5;margin:0;letter-spacing:.01em}
.window-actions{display:flex;justify-content:flex-end;padding:1px 23px 15px}
.win-ok{border:1px solid #555;box-shadow:inset 1px 1px #fff,inset -1px -1px #888;background:#ececec;color:#070707;min-width:95px;height:32px;font-size:13px}
.win-ok:active,.window-close:active{box-shadow:inset 1px 1px #777,inset -1px -1px #fff}

.bottom-area{position:absolute;inset:0;pointer-events:none;z-index:5}
.console{pointer-events:auto;position:absolute;left:7%;top:61%;max-width:420px;width:29vw}
.loading-panel{padding:16px 18px 15px;border:1px solid #f0f0f0;background:#050505;width:min(100%,290px);box-shadow:0 0 0 4px #030303}
.loading-label{font-size:12px;margin-bottom:12px;display:flex;justify-content:space-between;letter-spacing:.05em}
.loading-meter{display:flex;align-items:center;gap:13px;font-size:12px}
.progress-track{width:207px;max-width:100%;height:20px;padding:2px;background:#030303;border:1px solid #e0e0e0;overflow:hidden}
.progress-fill{height:100%;width:72%;transition:width .22s linear;background:repeating-linear-gradient(90deg,#ebebeb 0,#ebebeb 13px,#555 13px,#555 15px);box-shadow:0 0 11px #ffffff55}
.terminal-output,.terminal-question{font-size:clamp(12px,.95vw,15px);line-height:1.65;letter-spacing:.055em}
.terminal-output{margin:24px 0 22px}.terminal-question{margin:0 0 24px}
.terminal-choices{display:flex;flex-direction:column;align-items:flex-start;gap:14px}
.terminal-choices button{color:#f1f1f1;border:0;padding:0;background:none;text-align:left;font-size:clamp(12px,.95vw,15px);letter-spacing:.045em}
.photo-block{position:absolute;right:8.7%;top:70%;width:clamp(185px,16.2vw,290px);margin:0;pointer-events:auto;transform:rotate(-1deg)}
.photo-wrap{position:relative;overflow:hidden;aspect-ratio:1.4;background:#202020}
.photo-wrap img{display:block;width:100%;height:100%;object-fit:cover;filter:grayscale(100%) contrast(1.4) brightness(.85)}
.photo-static{position:absolute;inset:0;opacity:.3;background:repeating-linear-gradient(180deg,transparent 0,transparent 9px,#fff8 10px,transparent 12px);animation:photo-shake 4s steps(1,end) infinite}
.photo-block::before{content:"";position:absolute;z-index:2;width:120%;height:3px;top:28%;left:-12%;background:#ffffffbd;transform:skew(-8deg);box-shadow:0 5px #0009,7px -1px var(--red),-7px 1px var(--cyan);animation:photo-glitch 5.5s steps(1,end) infinite}
@keyframes photo-shake{0%,88%,92%,100%{transform:translate(0)}89%{transform:translate(-7px,4px)}90%{transform:translate(9px,-4px)}}
@keyframes photo-glitch{0%,72%,74%,100%{opacity:.3;transform:translateX(0)}73%{opacity:1;transform:translateX(15px)}}
.photo-block figcaption{font-size:12px;letter-spacing:.08em;line-height:1.6;text-align:right;margin-top:9px}
.footer{position:absolute;bottom:0;left:0;right:0;z-index:17;display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:39px;padding:9px max(30px,3.2vw);border-top:1px solid #777;background:#030303ef;color:#c8c8c8;font-size:10px;letter-spacing:.06em}
.footer-center{color:#727272}

.modal-backdrop{position:fixed;inset:0;z-index:50;background:#000c;backdrop-filter:blur(4px);display:grid;place-items:center;padding:20px}
.modal{width:min(620px,100%);max-height:min(640px,90svh);overflow:auto;background:#060606;border:1px solid #f6f6f6;box-shadow:0 0 0 5px #000,10px 10px 0 #ffffff36;color:#f0f0f0}
.modal-head{display:flex;align-items:center;justify-content:space-between;padding:9px 12px 9px 18px;background:#ddd;color:#111;font-size:13px;font-weight:bold;letter-spacing:.04em}
.modal-body{padding:30px 33px 40px;font-size:14px;line-height:1.8}
.modal-body h2{font:900 clamp(27px,4vw,42px)/1.04 Impact,'Arial Black',sans-serif;margin:0 0 19px;letter-spacing:.025em}
.modal-muted{color:#777}.modal-intro{color:#aaa;margin:0 0 25px}
.project-row{display:grid;grid-template-columns:35px 1fr auto;gap:18px;align-items:start;border-top:1px dashed #555;padding:18px 0}
.project-row>span,.project-row time{color:#bbb;font-size:12px}.project-row h3{font-size:15px;margin:0 0 4px}.project-row p{margin:0;color:#888;font-size:12px}
.modal-footnote{color:#888;margin:30px 0 0;font-size:12px}
.modal-link,.secret-trigger{display:inline-block;color:#fff;margin-top:20px;padding:0;border:0;background:transparent;font-size:13px;text-decoration:underline}
.thought{border-top:1px dashed #666;display:grid;grid-template-columns:50px 1fr;gap:14px;padding:14px 0}.thought>span{color:#888}.thought p{margin:0}
.toast{position:fixed;z-index:60;bottom:62px;left:50%;transform:translateX(-50%) translateY(10px);width:max-content;max-width:calc(100% - 36px);border:1px solid #fff;background:#ebebeb;color:#111;padding:14px 19px;font-size:12px;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}
.toast.is-visible{opacity:1;transform:translateX(-50%) translateY(0)}
@media(min-width:901px){.hero-subline{display:none}}

@media(min-width:1600px){.hero{top:16%}.error-window[data-error="404"]{top:42%}.error-window[data-error="403"]{top:52%}.error-window[data-error="500"]{top:55%}.console{top:63%}.photo-block{top:73%}}
@media(min-width:901px) and (max-height:850px){.site{min-height:820px}.hero{top:16%}.hero-subline{display:none}.console{top:63%}.photo-block{top:72%}}
@media(min-width:901px) and (max-width:1190px){.glitch-heading{font-size:clamp(94px,10.5vw,129px)}.hero{top:17%}.side-nav{right:8%;top:27%}.error-window{width:290px}.error-window[data-error="404"]{left:48%}.error-window[data-error="403"]{left:27%}.error-window[data-error="500"]{left:67%;width:265px}.console{width:290px}.photo-block{right:6%}.status{display:none}}

@media(max-width:900px){
  .site{height:auto;min-height:100svh;overflow:hidden;padding-bottom:0}
  .header{width:auto;margin:0 28px;padding-top:27px}
  .logo{width:50px;height:50px;font-size:46px;padding-bottom:7px}
  .status{display:none}
  .top-nav{gap:24px}
  .top-nav a,.top-nav button{font-size:12px}
  .hero{position:relative;left:auto;top:auto;max-width:none;padding:64px 7.5% 0}
  .glitch-heading{font-size:clamp(88px,14vw,135px)}
  .hero-subline{margin-top:26px}
  .side-nav{position:relative;top:auto;right:auto;left:auto;padding:40px 8% 0;display:flex;flex-flow:row wrap;gap:20px 28px;align-items:center}
  .side-label{width:100%;margin-bottom:2px}
  .side-nav button{font-size:14px}
  .errors{position:relative;inset:auto;height:495px;margin:27px 5% 10px}
  .error-window{width:clamp(240px,48vw,345px)}
  .error-window[data-error="404"]{top:10px;left:30%}
  .error-window[data-error="403"]{top:152px;left:6%}
  .error-window[data-error="500"]{top:288px;left:46%;width:clamp(230px,42vw,310px)}
  .bottom-area{position:relative;inset:auto;min-height:395px;display:grid;grid-template-columns:1.15fr .85fr;gap:10px;align-items:start;padding:0 8% 50px}
  .console,.photo-block{position:relative;top:auto;left:auto;right:auto}
  .console{width:100%;max-width:none}
  .photo-block{width:90%;justify-self:end;margin-top:22px}
  .footer{position:relative;min-height:50px;padding:15px 23px;font-size:9px}
  .footer-center{display:none}
}
@media(max-width:600px){
  .header{margin:0 19px}.logo{width:47px;height:47px;font-size:43px}
  .top-nav{gap:17px}.top-nav a,.top-nav button{font-size:10px}
  .hero{padding:66px 7% 0}.eyebrow{font-size:9px}
  .glitch-heading{font-size:clamp(68px,15.3vw,94px);line-height:.83;letter-spacing:-.065em}
  .glitch-row{text-shadow:-2px 0 var(--red),2px 0 var(--cyan)}
  .hero-subline{font-size:8px;line-height:1.7;margin-top:22px}
  .side-nav{padding:37px 7% 0;gap:17px 23px}.side-nav button{font-size:12px}.side-label{font-size:9px}
  .errors{height:470px;margin:36px 3% 0}
  .error-window{width:73%;max-width:330px}
  .error-window[data-error="404"]{left:18%;top:0}
  .error-window[data-error="403"]{left:2%;top:145px}
  .error-window[data-error="500"]{left:31%;top:290px;width:66%;max-width:320px}
  .window-bar{height:30px;font-size:12px}
  .window-inner{min-height:79px;gap:13px;padding:17px 12px 6px}
  .warning{width:32px;height:32px;flex-basis:32px}
  .window-inner p{font-size:clamp(10px,2.65vw,12px)}
  .window-actions{padding:3px 13px 12px}.win-ok{min-width:75px;height:28px;font-size:11px}
  .bottom-area{display:flex;flex-direction:column;gap:43px;min-height:0;padding:0 7% 75px}
  .console{width:100%}
  .loading-panel{width:258px;max-width:100%}
  .terminal-output,.terminal-question,.terminal-choices button{font-size:12px}
  .photo-block{margin:6px 3% 0 auto;width:56%;max-width:250px}
  .photo-block figcaption{font-size:12px}
  .footer{gap:10px;flex-wrap:wrap;line-height:1.6}
  .footer>span:last-child{margin-left:auto}
  .modal-body{padding:25px 19px}.modal-body h2{font-size:30px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

@media (min-width:901px) {
  body { background:#060606; }
  .site {
    width:min(100%,640px);
    margin-inline:auto;
    height:auto;
    min-height:1510px;
    overflow:hidden;
    border-inline:1px solid #2b2b2b;
    box-shadow:0 0 100px #000;
  }
  .header {width:auto;margin:0 27px;padding-top:29px}
  .logo {width:54px;height:54px;font-size:49px;padding-bottom:8px}
  .status {display:none}
  .top-nav {gap:25px}
  .top-nav a,.top-nav button {font-size:12px}
  .hero {position:relative;top:auto;left:auto;max-width:none;padding:68px 7% 0}
  .eyebrow {font-size:10px;letter-spacing:.20em;margin-bottom:17px}
  .glitch-heading {font-size:110px;line-height:.83;letter-spacing:-.065em;transform:scaleX(1.01)}
  .hero-subline {display:block;font-size:9px;margin-top:23px;letter-spacing:.1em}
  .side-nav {position:relative;top:auto;right:auto;left:auto;padding:45px 7% 0;display:flex;flex-flow:row wrap;gap:20px 27px;align-items:center}
  .side-label {width:100%;margin-bottom:0;font-size:10px}
  .side-nav button {font-size:13px}
  .errors {position:relative;inset:auto;height:470px;margin:38px 3% 0}
  .error-window {width:330px}
  .error-window[data-error="404"] {top:0;left:21%}
  .error-window[data-error="403"] {top:145px;left:3%}
  .error-window[data-error="500"] {top:292px;left:36%;width:315px}
  .window-bar {height:31px;font-size:12px}
  .window-inner {min-height:80px;gap:16px;padding:17px 18px 8px}
  .warning {width:37px;height:37px;flex-basis:37px}
  .window-inner p {font-size:12px}
  .window-actions {padding:3px 16px 14px}
  .win-ok {min-width:88px;height:30px;font-size:12px}
  .bottom-area {position:relative;inset:auto;display:flex;flex-direction:column;align-items:stretch;gap:37px;min-height:0;padding:0 7% 85px}
  .console,.photo-block {position:relative;top:auto;right:auto;left:auto}
  .console {width:100%;max-width:none}
  .loading-panel {width:284px;max-width:100%}
  .terminal-output,.terminal-question,.terminal-choices button {font-size:13px}
  .photo-block {width:244px;max-width:60%;margin:0 5% 0 auto}
  .footer {position:relative;min-height:48px;padding:15px 25px;font-size:9px}
  .footer-center {display:none}
}

.transition-screen {
  position:fixed;inset:0;z-index:45;display:grid;place-items:center;
  background:rgba(0,0,0,.965);color:#fafafa;
  opacity:0;pointer-events:all;
  font-family:var(--mono);
}
.transition-screen::before {
  content:"";position:absolute;inset:0;pointer-events:none;
  background:repeating-linear-gradient(to bottom,transparent 0,transparent 2px,#ddd1 3px,transparent 4px);
  animation:scan-drift 3s linear infinite;
}
.transition-screen::after {
  content:"";position:absolute;top:48%;height:1px;width:0;background:#fff;
  box-shadow:0 0 32px 10px #ffffff6e;opacity:.75;
  transition:width .42s cubic-bezier(.2,.8,.3,1);
}
.transition-screen.is-active {animation:boot-overlay-in .27s steps(4,end) both}
.transition-screen.is-active::after {width:100%}
.transition-screen.is-exiting {animation:boot-overlay-out .31s cubic-bezier(.2,.8,.3,1) both}
.transition-glow {position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle,#ffffff0e,transparent 55%)}
.transition-frame {position:relative;z-index:2;width:min(460px,80vw);padding:28px;border:1px solid #555;background:#030303;box-shadow:8px 8px 0 #f6f6f61b}
.transition-prefix {display:block;color:#999;font-size:10px;letter-spacing:.1em;margin-bottom:26px}
.transition-frame strong {font-family:var(--mono);font-size:clamp(15px,2.8vw,24px);line-height:1.45;letter-spacing:.03em;text-shadow:-2px 0 var(--red),2px 0 var(--cyan)}
.transition-meter {height:18px;border:1px solid #fff;margin:24px 0 14px;padding:2px;background:#080808;overflow:hidden}
.transition-meter span {display:block;height:100%;width:0;background:repeating-linear-gradient(90deg,#eee 0,#eee 12px,#666 12px,#666 15px);transition:width .86s steps(26,end)}
.transition-prompt {display:flex;justify-content:space-between;color:#aaa;font-size:12px}
.transition-cursor {animation:blink .6s steps(1,end) infinite}
.site.is-switching .glitch-row {animation:hard-glitch .11s steps(1,end) infinite}
.site.is-switching .signal {opacity:1}
@keyframes hard-glitch {0%{transform:translate(0)}25%{transform:translate(8px,-3px)}50%{transform:translate(-9px,2px)}75%{transform:translate(12px,1px)}}
@keyframes boot-overlay-in {0%{opacity:0;clip-path:inset(49% 0 49% 0)}40%{opacity:1;clip-path:inset(24% 0 24% 0)}100%{opacity:1;clip-path:inset(0)}}
@keyframes boot-overlay-out {0%{opacity:1;clip-path:inset(0)}75%{opacity:1;clip-path:inset(47% 0 47% 0)}100%{opacity:0;clip-path:inset(50% 0 50% 0)}}

.modal-backdrop:not([hidden]) {animation:backdrop-in .25s ease both}
.modal-backdrop:not([hidden]) .modal {animation:modal-in .46s cubic-bezier(.17,.8,.2,1.07) both;transform-origin:50% 45%}
.modal-backdrop.is-closing {animation:backdrop-out .2s ease both}
.modal-backdrop.is-closing .modal {animation:modal-out .2s ease both}
@keyframes backdrop-in {from{background:#0000;backdrop-filter:blur(0)}to{background:#000c;backdrop-filter:blur(4px)}}
@keyframes backdrop-out {from{opacity:1}to{opacity:0}}
@keyframes modal-in {0%{opacity:0;transform:scaleY(.03) scaleX(.8);filter:brightness(2)}40%{opacity:1;transform:scaleY(.08) scaleX(1.02);filter:brightness(1.6)}75%{transform:scaleY(1.03) scaleX(1)}100%{opacity:1;transform:scale(1);filter:brightness(1)}}
@keyframes modal-out {to{opacity:0;transform:scale(.96) translateY(8px)}}
.modal-body > * {animation:modal-content-reveal .44s ease both}
.modal-body > *:nth-child(1) {animation-delay:.11s}
.modal-body > *:nth-child(2) {animation-delay:.17s}
.modal-body > *:nth-child(3) {animation-delay:.22s}
.modal-body > *:nth-child(4) {animation-delay:.28s}
.modal-body > *:nth-child(5) {animation-delay:.34s}
@keyframes modal-content-reveal {from{opacity:0;transform:translateY(11px);filter:blur(3px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
.project-row {transition:background .23s,padding .23s,transform .23s;cursor:default}
.project-row:hover {background:#ffffff12;padding-left:10px;transform:translateX(2px)}
.project-row:hover h3 {color:#7eeeff;text-shadow:2px 0 #f44}
.directory-list {display:flex;flex-direction:column;border-top:1px solid #555}
.directory-item {display:grid;grid-template-columns:55px 1fr 24px;gap:12px;align-items:center;width:100%;padding:18px 10px;background:none;border:0;border-bottom:1px dashed #444;color:#eee;text-align:left;transition:background .18s,padding .18s}
.directory-item:hover,.directory-item:focus-visible {background:#ffffff16;padding-left:19px}
.directory-glyph {color:#aaa;font-size:14px}
.directory-item b {display:block;font-size:16px;letter-spacing:.05em}
.directory-item small {display:block;color:#999;font-size:11px;margin-top:3px}
.directory-arrow {font-size:19px;transition:transform .2s}
.directory-item:hover .directory-arrow {transform:translate(4px,-4px);color:var(--cyan)}
.terminal-choices button,.side-nav button,.top-nav button {position:relative}
.terminal-choices button::after,.side-nav button::after {content:"";position:absolute;bottom:-3px;left:0;height:1px;width:100%;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .23s}
.terminal-choices button:hover::after,.side-nav button:hover::after {transform:scaleX(1)}
.error-window {animation:window-power-on .54s steps(8,end) both}
.error-window[data-error="403"] {animation-delay:.12s}
.error-window[data-error="500"] {animation-delay:.23s}
.error-window.is-restarting {animation:window-power-on .48s steps(8,end) both}
@keyframes window-power-on {0%{opacity:0;clip-path:inset(0 100% 0 0)}35%{opacity:.9;clip-path:inset(0 42% 0 0)}100%{opacity:1;clip-path:inset(0)}}
@media (prefers-reduced-motion:reduce) {
  .transition-screen,.modal-backdrop,.modal,.error-window,.modal-body>*,.transition-meter span {animation:none!important;transition:none!important}
}
