#entry-loader.entry-loader{position:fixed;inset:0;z-index:9999;display:block;overflow:hidden;background:#121212;color:#b8b8b8;opacity:1;transform:none;transition:opacity .4s ease;animation:terminal-failsafe 0s 7s forwards;font-family:'Courier New',monospace;will-change:opacity}
#entry-loader::before{display:none}
#entry-loader.is-leaving{opacity:0;transform:none;pointer-events:none}
.terminal-loader-brand{position:absolute;top:clamp(28px,5vw,65px);left:clamp(24px,5vw,80px);font:700 27px/1 Arial,sans-serif;letter-spacing:-1px;color:#eee}
.terminal-loader-brand span{display:block;font:8px/1.5 'Courier New',monospace;letter-spacing:.08em;color:#747474;margin-top:10px}
.terminal-loader-content{width:min(760px,calc(100vw - 96px));margin:clamp(145px,20vh,220px) 0 0 clamp(24px,5vw,80px)}
.terminal-loader-log{min-height:100px;font:12px/1.7 'Courier New',monospace;letter-spacing:.035em}
.terminal-loader-log p{display:flex;gap:13px;margin:0 0 11px;animation:terminal-log-in .3s ease both}
.terminal-loader-log time{color:#656565;flex:none}
.terminal-loader-log span{color:#b8b8b8}
.terminal-loader-frame{border-block:1px dashed #555;padding:29px 17px;margin:15px 0 32px;position:relative}
.terminal-loader-frame::before,.terminal-loader-frame::after{content:'';position:absolute;top:-9px;bottom:-9px;width:1px;border-left:1px dashed #555;pointer-events:none}
.terminal-loader-frame::before{left:0}.terminal-loader-frame::after{right:0}
#entry-logo{display:block;position:static;width:auto;height:auto;margin:0;padding:0;font:clamp(7px,1.52vw,18px)/1.2 'Courier New',monospace;letter-spacing:0;color:#8b8b8b;white-space:pre;animation:none;overflow:visible;background:none}
.terminal-loader-state{display:flex;align-items:center;gap:12px;font:11px/1.6 'Courier New',monospace;letter-spacing:.05em;margin:0;color:#969696}
.terminal-loader-cursor{display:block;width:7px;height:12px;background:#b1b1b1;animation:terminal-blink 1.1s step-end infinite}
.terminal-loader-skip{position:absolute;left:clamp(24px,5vw,80px);bottom:35px;border:0;border-bottom:1px solid #444;background:none;color:#818181;padding:8px 0;cursor:pointer;font:9px/1.5 'Courier New',monospace;letter-spacing:.06em}
.terminal-loader-skip:hover,.terminal-loader-skip:focus-visible{color:#fff;border-color:#aaa}
@keyframes terminal-blink{50%{opacity:0}}
@keyframes terminal-log-in{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}
@keyframes terminal-failsafe{to{visibility:hidden;pointer-events:none}}
@media(max-width:600px){.terminal-loader-content{width:calc(100vw - 48px);margin-top:150px}.terminal-loader-log{font-size:9px;min-height:110px;letter-spacing:0}.terminal-loader-log p{gap:9px;margin-bottom:10px}.terminal-loader-frame{padding:23px 10px;margin-top:5px}.terminal-loader-state{font-size:9px}.terminal-loader-brand{font-size:25px}#entry-logo{font-size:clamp(6px,1.6vw,9px)}}
@media(prefers-reduced-motion:reduce){#entry-loader.entry-loader{display:block;transition:none}.terminal-loader-cursor,.terminal-loader-log p{animation:none}}
/* The same text-drawn identity in the site headers. */
.hero-header>.brand.ascii-brand,.works-header>.brand.ascii-brand,.archive-header>.brand.ascii-brand,.profile-header>.brand.ascii-brand,.photo-header>.brand.ascii-brand{display:block;width:300px;height:auto;font-size:10px!important;line-height:1;color:inherit;text-decoration:none;letter-spacing:0}
.ascii-brand .ascii-brand-mark{display:block;margin:0;padding:0;white-space:pre;font:10px/1.12 'Courier New',monospace;letter-spacing:0;color:inherit;overflow:visible;animation:none;background:none;text-shadow:0 1px 8px #0002}
#start .hero-name{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;pointer-events:none}
@media(max-width:1100px){.hero-header>.brand.ascii-brand,.works-header>.brand.ascii-brand,.archive-header>.brand.ascii-brand,.profile-header>.brand.ascii-brand,.photo-header>.brand.ascii-brand{width:210px}.ascii-brand .ascii-brand-mark{font-size:7px}}
@media(max-width:600px){.hero-header>.brand.ascii-brand,.works-header>.brand.ascii-brand,.archive-header>.brand.ascii-brand,.profile-header>.brand.ascii-brand,.photo-header>.brand.ascii-brand{width:142px}.ascii-brand .ascii-brand-mark{font-size:4.7px;line-height:1.2}}
footer>.brand.footer-ascii-brand{display:block;flex:none;width:158px;letter-spacing:0}
.footer-ascii-brand pre{font:10px/1.12 'Courier New',monospace;letter-spacing:0;margin:0;white-space:pre;color:inherit}
@media(max-width:600px){footer>.brand.footer-ascii-brand{width:135px}.footer-ascii-brand pre{font-size:8px}}
/* Stacked header identity reappears in three staggered rows on entry. */
.brand.modular-mark .mark-letter{animation:stacked-logo-enter .7s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(var(--index)*.055s);transform:none}
@keyframes stacked-logo-enter{from{opacity:0;transform:translateY(9px);filter:blur(2px)}to{opacity:1;transform:none;filter:blur(0)}}
footer>.brand.footer-ascii-brand{width:240px}
.footer-ascii-brand pre{font-size:8px;line-height:1.14}
@media(max-width:600px){footer>.brand.footer-ascii-brand{width:190px}.footer-ascii-brand pre{font-size:6.3px}}
@media(prefers-reduced-motion:reduce){.brand.modular-mark .mark-letter{animation:none;opacity:1;transform:none;filter:none}}
.brand-intro-pending .brand.modular-mark .mark-letter{animation-play-state:paused}
.ascii-brand-line{display:block;white-space:pre;animation:ascii-logo-draw .85s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(var(--line)*.075s)}
.brand-intro-pending .ascii-brand-line{animation-play-state:paused}
@keyframes ascii-logo-draw{0%{opacity:0;clip-path:inset(0 100% 0 0);transform:translateY(4px)}35%{opacity:1}100%{opacity:1;clip-path:inset(0);transform:none}}
@media(prefers-reduced-motion:reduce){.ascii-brand-line{animation:none;opacity:1;clip-path:none;transform:none}}
/* Cinema metadata follows the homepage navigator typography. */
#film-dialog .player-heading h2{top:27px;left:28px;max-width:32vw;font:400 11px/1.5 'Courier New',monospace;letter-spacing:0;text-transform:uppercase;text-wrap:pretty;color:#e9ece5}
#film-dialog .player-heading>.brand.ascii-brand{position:absolute;left:50%;top:21px;transform:translateX(-50%);display:block;width:240px;height:auto;letter-spacing:0;color:#e9ece5}
#film-dialog .player-heading .ascii-brand-mark{font-size:8px;line-height:1.12;animation:none}
#film-dialog .player-heading .ascii-brand-line{animation:none;opacity:1;transform:none;clip-path:none}
@media(max-width:700px){#film-dialog .player-heading h2{top:79px;left:18px;max-width:calc(100% - 36px);font-size:10px;line-height:1.45}#film-dialog .player-heading>.brand.ascii-brand{top:20px;width:180px}#film-dialog .player-heading .ascii-brand-mark{font-size:6px;line-height:1.12}}
@media(max-height:500px) and (min-width:701px){#film-dialog .player-heading h2{top:15px;font-size:9px;max-width:32vw}#film-dialog .player-heading>.brand.ascii-brand{top:10px;width:180px}#film-dialog .player-heading .ascii-brand-mark{font-size:6px}}
#entry-logo .loader-ascii-line{display:block;white-space:pre;animation:loader-logo-draw 1s cubic-bezier(.2,.65,.2,1) both;animation-delay:calc(.12s + var(--line)*.13s)}
@keyframes loader-logo-draw{0%{opacity:0;clip-path:inset(0 100% 0 0);transform:translateX(-6px)}35%{opacity:.85}70%{filter:brightness(1.6)}100%{opacity:1;clip-path:inset(0);transform:none;filter:brightness(1)}}
@media(prefers-reduced-motion:reduce){#entry-logo .loader-ascii-line{animation:none;opacity:1;clip-path:none;transform:none;filter:none}}

/* A small cursor follows each message while it is typed. */
.terminal-loader-log .is-typing::after{content:'_';color:#d1d5cc;animation:terminal-blink .65s step-end infinite}
@media(prefers-reduced-motion:reduce){.terminal-loader-log .is-typing::after{display:none}}

/* Color stays in the loader identity; the surrounding terminal remains neutral. */
#entry-logo .loader-ascii-line{background:linear-gradient(100deg,#66e6d1 0%,#85a8ff 26%,#bc86ff 50%,#ff88bb 74%,#ffc982 100%);-webkit-background-clip:text;background-clip:text;color:transparent}

/* The homepage identity alternates between white and a soft rainbow. */
#start .hero-header>.brand.ascii-brand .ascii-brand-mark{color:#fff;animation:header-logo-spectrum 12s ease-in-out infinite}
#start .hero-header>.brand.ascii-brand .ascii-brand-line{background:linear-gradient(100deg,#ff818e 0%,#ffc773 17%,#f1e789 33%,#78e6bc 50%,#81caff 67%,#b89aff 83%,#ff99d8 100%);-webkit-background-clip:text;background-clip:text;color:inherit}
.brand-intro-pending #start .hero-header>.brand.ascii-brand .ascii-brand-mark{animation-play-state:paused}
@keyframes header-logo-spectrum{0%,30%,80%,100%{color:#fff}45%,65%{color:#fff0}}
@media(prefers-reduced-motion:reduce){#start .hero-header>.brand.ascii-brand .ascii-brand-mark{animation:none;color:#fff}}
