:root{--bg:#080808;--fg:#f4f4f4;--muted:#989898;--line:#292929;--soft:#111;--art-white:255,255,255;color-scheme:dark;font-family:Arial,Helvetica,sans-serif;font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:35px}body{margin:0;background:var(--bg);color:var(--fg);font-size:16px;line-height:1.5;overflow-x:clip}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:2px solid var(--fg);outline-offset:6px}.wrap{width:calc(100% - 40px);max-width:1280px;margin-inline:auto}.ambient{position:absolute;pointer-events:none;inset:0 0 auto;height:900px;background-image:linear-gradient(rgba(128,128,128,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(128,128,128,.045) 1px,transparent 1px);background-size:80px 80px;mask-image:linear-gradient(#000,transparent)}.header{height:94px;position:relative;display:flex;align-items:center;gap:24px;border-bottom:1px solid var(--line);z-index:5}.wordmark{font-weight:800;font-size:32px;letter-spacing:-2px;line-height:1;min-height:44px;display:inline-flex;align-items:center}.header nav{margin-left:auto;display:flex;align-items:center;gap:22px;font-size:14px}.header nav a{min-height:44px;display:flex;align-items:center;gap:7px}.header nav a:hover{opacity:.65}.icon-button{width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:transparent;display:grid;place-items:center;transition:background .25s,transform .25s}.icon-button:hover{background:var(--line);transform:rotate(25deg)}.hero{position:relative;padding-top:50px}.eyebrow{font-size:10px;font-weight:600;letter-spacing:2px;display:flex;align-items:center;gap:12px;margin:0 0 24px}.tiny-cross{font-size:24px;font-weight:400;line-height:1}h1{font-size:clamp(78px,18vw,136px);letter-spacing:-.075em;font-weight:500;line-height:.92;margin:0}.outline{-webkit-text-stroke:1px var(--fg);color:transparent}.intro{font-size:17px;line-height:1.6;color:var(--muted);margin:28px 0}.primary{display:inline-flex;align-items:center;justify-content:space-between;gap:45px;padding:15px 22px;min-height:54px;border:1px solid var(--fg);background:var(--fg);color:var(--bg);font-size:15px;border-radius:4px;transition:transform .2s,background .2s}.primary:hover{background:var(--bg);color:var(--fg);transform:translateY(-3px)}.primary span{font-size:23px;line-height:1}.light-art{height:330px;position:relative;margin:18px -20px 0;isolation:isolate;overflow:hidden}.sphere-scene{width:330px;height:330px;position:absolute;top:50%;left:50%;margin:-165px 0 0 -165px;transform:translate(var(--mx,0px),var(--my,0px));transition:transform 1s ease-out}.sphere{position:absolute;inset:70px;border-radius:50%;background:radial-gradient(ellipse at 27% 25%,#777 0%,#282828 16%,#0c0c0c 48%,#020202 71%,#555 100%);box-shadow:inset 1px 1px 2px #aaa,inset -1px -1px 1px #555,0 0 60px #fff1;z-index:3;overflow:hidden}.sphere:after{content:"";position:absolute;inset:-30%;border-radius:50%;background:repeating-linear-gradient(108deg,transparent 0 3px,#ffffff08 4px 5px);transform:rotate(-30deg);mask-image:linear-gradient(transparent,#000,transparent)}.halo{position:absolute;inset:20px;border-radius:50%;background:radial-gradient(ellipse,transparent 34%,#ffffff08 48%,transparent 65%);animation:breathe 8s ease-in-out infinite}.orbit{position:absolute;inset:10px;border:1px solid #ffffff50;border-radius:50%;z-index:4;box-shadow:0 0 10px #ffffff09;transform:rotate(-35deg) scaleY(.38);animation:orbit-drift 18s ease-in-out infinite alternate}.orbit-two{inset:0;transform:rotate(60deg) scaleY(.4);opacity:.38;animation-name:orbit-drift-two;animation-duration:23s}.orbit-three{inset:35px;border-color:#ffffff21;transform:rotate(-35deg) scaleY(.65);animation:none}.beam{position:absolute;left:-80%;top:50%;height:1px;width:260%;background:linear-gradient(90deg,transparent 0%,#ffffff00 10%,#fff4 36%,#fff 50%,#fff4 64%,transparent 90%);box-shadow:0 0 18px 2px #ffffff22;transform:rotate(-35deg);z-index:2;animation:beam-drift 9s ease-in-out infinite;opacity:.7}.beam:after{content:"";position:absolute;inset:-13px 0;background:linear-gradient(90deg,transparent,#ffffff07,transparent);filter:blur(8px)}.beam-two{transform:rotate(60deg);animation-name:beam-drift-two;animation-delay:-4s;animation-duration:12s;opacity:.3}.beam-three{transform:rotate(-35deg) translateY(30px);animation-delay:-5s;animation-duration:11s;opacity:.2;filter:blur(1px)}.star{position:absolute;width:5px;height:5px;top:28%;left:17%;border-radius:50%;background:#fff;box-shadow:0 0 10px 3px #ffffff6b;z-index:6;animation:breathe 5s ease-in-out infinite}.star-two{top:75%;left:78%;width:3px;height:3px;animation-delay:-2s}.art-axis{position:absolute;opacity:.45}.axis-x{height:1px;width:100%;top:50%;background:linear-gradient(90deg,transparent,#454545,transparent)}.axis-y{width:1px;height:100%;left:50%;background:linear-gradient(transparent,#454545,transparent)}.art-caption,.art-number{position:absolute;bottom:10px;font-size:9px;letter-spacing:2px;color:var(--muted)}.art-caption{left:20px}.art-number{right:20px}.hero-bottom{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding:18px 0;margin-top:25px;gap:10px}.scroll-link{display:flex;align-items:center;gap:10px;font-size:11px;color:var(--muted);min-height:44px;max-width:180px}.scroll-mark{color:var(--fg);font-size:20px;display:inline-block;animation:scroll-cue 3s ease-in-out infinite}.motion-control{display:flex;align-items:center;gap:8px;background:none;border:0;font-size:11px;padding:5px 0 5px 10px;min-height:44px;white-space:nowrap}.motion-symbol{font-size:16px;width:14px}.section{border-top:1px solid var(--line);padding-top:28px;padding-bottom:60px;scroll-margin-top:30px}.section-meta{font-size:10px;letter-spacing:1.5px;display:flex;align-items:center;justify-content:space-between;color:var(--muted);margin-bottom:35px}.small-cross{font-size:22px;color:var(--fg)}h2{font-size:38px;font-weight:400;letter-spacing:-1.6px;line-height:1.12;margin:0 0 28px}h2 em{font-family:Georgia,'Times New Roman',serif;font-weight:400;color:var(--muted)}.placeholder-tag{font-size:9px;letter-spacing:1.5px;color:var(--muted)}.bio-placeholder p{max-width:390px;font-size:17px;line-height:1.7;margin:14px 0}.bio-placeholder .muted{font-size:15px}.muted{color:var(--muted)}.link-placeholder{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:24px 0;position:relative}.link-placeholder p{margin:0 40px 8px 0;font-size:17px}.link-placeholder .muted{display:block;font-size:14px;max-width:260px}.link-illustration{position:absolute;right:6px;top:17px;font-size:28px;color:var(--muted)}.footer{border-top:1px solid var(--line);padding-block:24px;display:flex;align-items:center;justify-content:space-between;gap:15px}.footer .wordmark{font-size:28px}.footer>span{font-size:11px;color:var(--muted)}.to-top{width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;font-size:22px}.skip{position:absolute;top:-80px;background:var(--fg);color:var(--bg);padding:12px;z-index:20}.skip:focus{top:10px}.light{--bg:#f3f3f0;--fg:#101010;--muted:#616161;--line:#cececb;--soft:#eee;color-scheme:light}.light .light-art{filter:invert(1)}.paused *, .paused *:after,.paused *:before{animation-play-state:paused!important}.reveal{opacity:0;transform:translateY(20px);transition:opacity .8s ease,transform .8s ease}.reveal.visible{opacity:1;transform:none}@keyframes beam-drift{0%,100%{opacity:.05;transform:rotate(-38deg) translateY(-30px)}50%{opacity:.85;transform:rotate(-31deg) translateY(25px)}}@keyframes beam-drift-two{0%,100%{opacity:.05;transform:rotate(58deg) translateY(40px)}50%{opacity:.55;transform:rotate(65deg) translateY(-25px)}}@keyframes orbit-drift{from{transform:rotate(-35deg) scaleY(.38)}to{transform:rotate(-21deg) scaleY(.45)}}@keyframes orbit-drift-two{from{transform:rotate(60deg) scaleY(.4)}to{transform:rotate(74deg) scaleY(.28)}}@keyframes breathe{0%,100%{opacity:.25}50%{opacity:.9}}@keyframes scroll-cue{0%,80%,100%{transform:translateY(0)}40%{transform:translateY(5px)}}
@media(min-width:760px){.wrap{width:calc(100% - 96px)}.header{height:106px}.header nav{gap:38px;font-size:14px}.header .icon-button{margin-left:20px}.hero{padding-top:80px;display:grid;grid-template-columns:1fr 1.1fr;align-items:center;min-height:740px}.hero-copy{position:relative;z-index:2;padding-bottom:75px}.eyebrow{margin-bottom:34px}h1{font-size:clamp(112px,12vw,174px)}.intro{margin-top:35px;font-size:19px}.light-art{height:570px;margin:-45px -30px 0 -90px}.sphere-scene{width:540px;height:540px;margin:-270px 0 0 -270px}.sphere{inset:120px}.orbit{inset:28px}.orbit-two{inset:10px}.orbit-three{inset:65px}.halo{inset:50px}.art-caption{left:42px;bottom:32px}.art-number{right:34px;bottom:32px}.hero-bottom{grid-column:1/-1;margin-top:0;padding:20px 0}.scroll-link{font-size:12px;max-width:none;gap:18px}.motion-control{font-size:12px}.section{display:grid;grid-template-columns:1fr 3fr;padding:60px 0 85px;gap:28px}.section-meta{align-self:start;margin:0;padding-top:6px}.small-cross{display:none}.section-content{display:grid;grid-template-columns:1.15fr 1fr;gap:45px}h2{font-size:clamp(38px,3.3vw,48px);margin:0}.bio-placeholder p{font-size:18px}.link-placeholder{border-top:0;padding-top:3px;align-self:start;padding-bottom:30px}.link-illustration{top:-2px}.footer{padding-block:32px}.footer>span{font-size:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}.sphere-scene{transform:none}.motion-control{display:none}}

/* Personal profile */
h1{font-size:clamp(70px,17vw,136px);letter-spacing:-.075em;white-space:nowrap}.name-dot{color:var(--muted)}.nickname{font-size:22px;letter-spacing:-.8px;display:inline-flex;gap:16px;align-items:center;color:var(--muted);min-height:48px;margin-top:16px}.nickname span{font-size:18px}.nickname:hover{color:var(--fg)}.social-links a{min-height:74px;display:flex;align-items:center;gap:22px;border-bottom:1px solid var(--line);font-size:21px;transition:padding .25s,background .25s}.social-links a:first-child{border-top:1px solid var(--line)}.social-links a:hover{padding-inline:10px;background:var(--soft)}.link-index{font-size:10px;letter-spacing:1px;color:var(--muted)}.link-arrow{margin-left:auto;color:var(--muted);transition:transform .25s}.social-links a:hover .link-arrow{transform:translate(3px,-3px);color:var(--fg)}.links h2{font-size:48px;letter-spacing:-2px}.links h2 em{margin-left:2px}.hero-copy{padding-top:10px}.hero .intro{margin-top:24px;max-width:325px}.age{display:inline-block;margin-bottom:5px;font-size:13px;letter-spacing:1px;color:var(--fg)}
@media(min-width:760px){h1{font-size:clamp(80px,9.4vw,136px)}.nickname{font-size:29px;margin-top:20px}.hero{min-height:690px}.hero-copy{padding-bottom:55px}.links .section-content{grid-template-columns:.8fr 1.2fr}.links h2{font-size:60px}.light-art{margin-left:-60px}.social-links a{font-size:23px;min-height:80px}}

/* About: one quiet paragraph, with a personal closing line. */
.about .section-content{display:block;max-width:760px}.about h2{margin-bottom:26px}.story{font-size:18px;line-height:1.85;letter-spacing:-.15px;margin:0;color:var(--muted);max-width:65ch}.story em{color:var(--fg);font-family:Georgia,'Times New Roman',serif;font-size:1.12em;white-space:normal}
@media(min-width:760px){.story{font-size:20px;line-height:1.85}.about h2{margin-bottom:32px}}

/* JetBrains Mono — locally hosted, SIL Open Font License. */
@font-face{font-family:'JetBrains Mono';src:url('/assets/fonts/jetbrains-mono-regular.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
.dream-line{font-family:'JetBrains Mono',ui-monospace,SFMono-Regular,Consolas,monospace;font-size:20px;line-height:1.7;letter-spacing:0;color:var(--fg);margin:28px 0 0;min-height:1.7em}
.typewriter{box-sizing:content-box;display:inline-block;width:17ch;white-space:nowrap;overflow:hidden;vertical-align:bottom;border-right:2px solid currentColor;animation:dream-type 3880ms steps(17,end) infinite,dream-caret 800ms steps(1,end) infinite}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
/* 1530 ms typing → exactly 1000 ms hold → 850 ms erase → 500 ms empty. */
@keyframes dream-type{0%{width:0}39.4329896907%{width:17ch}65.206185567%{width:17ch}87.1134020619%,100%{width:0}}
@keyframes dream-caret{0%,49%{border-color:currentColor}50%,100%{border-color:transparent}}
@media(min-width:760px){.dream-line{font-size:26px;margin-top:32px}}
@media(prefers-reduced-motion:reduce){.typewriter{width:17ch;border-right:0}}
