:root{--font-display: "Space Grotesk", ui-sans-serif, system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--maxw: 1100px;--gutter: clamp(1.1rem, 4vw, 3rem);--grid-cell: 42px;--nav-h: 58px;--baby-blue: #90b4e5;--ease: cubic-bezier(.22, 1, .36, 1)}:root,html[data-theme=dark]{--bg: #0a0a0a;--bg-elev: #141414;--bg-elev-2: #1c1c1c;--fg: #f4f4f4;--muted: #8c8c8c;--faint: #555;--line: rgba(255, 255, 255, .1);--line-strong: rgba(255, 255, 255, .225);--hairline: rgba(255, 255, 255, .175);--invert-fg: #0a0a0a;--invert-bg: #f4f4f4}html[data-theme=light]{--bg: #d6d6d6;--bg-elev: #e3e3e3;--bg-elev-2: #ededed;--fg: #161616;--muted: #565656;--faint: #828282;--line: rgba(255, 255, 255, 1);--line-strong: rgba(255, 255, 255, 1);--hairline: rgba(255, 255, 255, .9);--invert-fg: #f4f4f4;--invert-bg: #161616}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-snap-type:y mandatory;scroll-padding-top:var(--nav-h)}body{background:var(--bg);color:var(--fg);font-family:var(--font-display);font-size:16px;line-height:1.6;letter-spacing:.01em;min-height:100vh;overflow-x:hidden;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;transition:background-color .4s var(--ease),color .4s var(--ease)}#bg-canvas{position:fixed;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none;display:block}html.intro-pending{scroll-behavior:auto}html.intro-pending,html.intro-pending body{overflow:hidden}html.intro-pending .hero__cmd,html.intro-pending .hero__eyebrow,html.intro-pending .hero__name,html.intro-pending .hero__sub,html.intro-pending .hero__figure .figure__frame,html.intro-pending .hero__figure .figure__cap,html.intro-pending .dock{opacity:0;visibility:hidden;pointer-events:none}html.intro-complete .hero__cmd,html.intro-complete .hero__eyebrow,html.intro-complete .hero__name,html.intro-complete .hero__sub,html.intro-complete .hero__figure .figure__frame,html.intro-complete .hero__figure .figure__cap{opacity:0;animation:hero-intro-in .46s var(--ease) forwards}html.intro-complete .hero__cmd{animation-delay:0ms}html.intro-complete .hero__eyebrow{animation-delay:.18s}html.intro-complete .hero__name{animation-delay:.36s}html.intro-complete .hero__sub{animation-delay:.56s}html.intro-complete .hero__figure .figure__frame{animation-delay:.84s}html.intro-complete .hero__figure .figure__cap{animation-delay:.9s}html.intro-complete .hero__figure .figure__frame img{opacity:0;animation:hero-photo-in .56s var(--ease) 1.12s forwards}html.intro-complete .hero__figure .figure__frame.photo-toggle-ready img{animation:none;opacity:1;transform:scale(1)}@keyframes hero-intro-in{0%{opacity:0;transform:translateY(10px);filter:blur(3px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}@keyframes hero-photo-in{0%{opacity:0;transform:scale(.985);filter:grayscale(1) contrast(1.02) blur(2px)}to{opacity:1;transform:scale(1);filter:grayscale(1) contrast(1.02) blur(0)}}.page-loader{position:fixed;left:0;right:0;top:var(--nav-h);height:calc(100svh - var(--nav-h));z-index:48;display:grid;place-items:center;background:transparent;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s var(--ease),visibility .2s var(--ease)}html.intro-pending .page-loader{opacity:1;visibility:visible}.page-loader__cmd{font-family:var(--font-mono);font-size:clamp(1.85rem,5.6vw,4.4rem);line-height:1;letter-spacing:-.04em;color:var(--muted);text-shadow:0 0 42px color-mix(in srgb,var(--fg) 18%,transparent)}.page-loader__caret{border-right:.08em solid var(--fg);animation:blink 1.15s steps(1) infinite;margin-left:.04em}h1,h2,h3{font-family:var(--font-display);font-weight:700;line-height:1.02;letter-spacing:-.02em}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}::selection{background:var(--invert-bg);color:var(--invert-fg)}.mono{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}.wrap{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter)}.snap{scroll-snap-align:start;scroll-snap-stop:always}.plate{position:relative}.plate:before,.plate:after{content:"";position:absolute;width:9px;height:9px;border:1px solid var(--line-strong);pointer-events:none}.plate:before{top:-1px;left:-1px;border-right:0;border-bottom:0}.plate:after{bottom:-1px;right:-1px;border-left:0;border-top:0}.nav{position:sticky;top:0;z-index:50;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);background:color-mix(in srgb,var(--bg) 72%,transparent);border-bottom:1px solid var(--hairline)}.nav__inner{display:flex;align-items:center;justify-content:space-between;height:var(--nav-h);gap:1rem}.nav__brand{font-family:var(--font-mono);font-size:.85rem;letter-spacing:.04em;font-weight:500;display:inline-flex;align-items:center;gap:.5rem;white-space:nowrap;color:var(--baby-blue)}.nav__brand .dot{width:7px;height:7px;background:var(--fg);border-radius:50%;display:inline-block}.nav__links{display:flex;align-items:center;gap:clamp(.7rem,2.2vw,1.7rem)}.nav__link{font-family:var(--font-mono);font-size:.78rem;letter-spacing:.05em;color:var(--muted);position:relative;padding:2px 0;transition:color .2s var(--ease)}.nav__link:after{content:"";position:absolute;left:0;bottom:-2px;height:1px;width:0;background:var(--fg);transition:width .25s var(--ease)}.nav__link:hover{color:var(--fg)}.nav__link:hover:after,.nav__link:focus-visible:after{width:100%}.toggle{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.08em;color:var(--muted);background:transparent;border:1px solid var(--hairline);border-radius:2px;padding:5px 9px;cursor:pointer;text-transform:uppercase;display:inline-flex;align-items:center;gap:.45rem;transition:color .2s var(--ease),border-color .2s var(--ease)}.toggle:hover{color:var(--fg);border-color:var(--line-strong)}.toggle .glyph{width:12px;height:12px;display:inline-block}.hero{min-height:calc(100svh - var(--nav-h));display:flex;align-items:center;padding-top:clamp(4rem,10vh,7.5rem);padding-bottom:clamp(4.5rem,11vh,8rem)}.hero__grid{display:grid;grid-template-columns:minmax(0,1fr) auto;width:100%;gap:clamp(2.5rem,8vw,6.5rem);align-items:center}.hero__text{min-width:0}.hero__cmd{font-family:var(--font-mono);font-size:.8rem;color:var(--muted);margin-bottom:1.1rem;min-height:1.6em}.hero__cmd .prompt{color:var(--faint);margin-right:.45rem}.hero__cmd #hero-type{color:var(--baby-blue)}.hero__cmd .caret{color:var(--baby-blue);border-right:2px solid var(--baby-blue);animation:blink 1.15s steps(1) infinite;padding-right:1px;margin-left:1px}@keyframes blink{50%{border-color:transparent}}.hero__eyebrow{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.3em;font-size:.68rem;color:var(--muted);margin-bottom:.9rem}.hero__name{font-size:clamp(2.6rem,6.4vw,5.2rem);line-height:.92;font-weight:700;letter-spacing:-.04em}.hero__sub{margin-top:1.3rem;max-width:42ch;color:var(--muted);font-size:clamp(.95rem,1.35vw,1.1rem);line-height:1.55}.hero__sub strong{color:var(--baby-blue);font-weight:500}.hero__school{display:block;margin-top:.08rem;white-space:nowrap}.hero__figure{width:clamp(190px,27vw,300px)}.figure__frame{border:1px solid var(--line-strong);padding:9px;position:relative;outline:1px solid transparent;outline-offset:0;box-shadow:0 0 #fff0;transition:border-color 1.15s var(--ease),outline-color 1.15s var(--ease),outline-offset 1.15s var(--ease),box-shadow 1.15s var(--ease)}.figure__frame:before,.figure__frame:after{transition:border-color 1.15s var(--ease),transform 1.15s var(--ease)}.figure__frame.is-color{border-color:color-mix(in srgb,var(--fg) 58%,var(--line-strong));outline-color:color-mix(in srgb,var(--fg) 32%,transparent);outline-offset:7px;box-shadow:0 0 22px color-mix(in srgb,var(--fg) 14%,transparent),inset 0 0 18px color-mix(in srgb,var(--fg) 7%,transparent)}.figure__frame.is-color:before,.figure__frame.is-color:after{border-color:color-mix(in srgb,var(--fg) 72%,var(--line-strong))}.figure__frame img{width:100%;aspect-ratio:4 / 5;height:auto;object-fit:cover;object-position:center;filter:grayscale(1) contrast(1.02);transition:filter 1.15s var(--ease),opacity .32s var(--ease),transform .32s var(--ease)}.figure__frame.is-color img,.figure__frame:focus-within img{filter:grayscale(0) contrast(1.02)}.figure__cap{display:flex;justify-content:space-between;margin-top:8px;font-family:var(--font-mono);font-size:.66rem;color:var(--muted);letter-spacing:.08em}.figure__cap span:first-child{color:var(--baby-blue)}.index-section{position:relative;min-height:calc(100svh - var(--nav-h));padding-top:clamp(5.5rem,13vh,9rem);padding-bottom:clamp(1.45rem,4vh,2.4rem);display:flex;flex-direction:column}.section-label{display:flex;align-items:baseline;gap:.75rem;margin:clamp(2.5rem,7vh,4.5rem) 0 1.25rem;border-bottom:1px solid var(--hairline);padding-bottom:.6rem}.section-label .num{font-family:var(--font-mono);font-size:.72rem;color:var(--faint);letter-spacing:.1em}.section-label h2{font-size:.95rem;font-weight:500;letter-spacing:.02em}.section-label .meta{margin-left:auto;font-family:var(--font-mono);font-size:.7rem;color:var(--faint);letter-spacing:.08em}.section-chip{cursor:default;outline:none;border-bottom:1px solid transparent;transition:color .18s var(--ease),border-color .18s var(--ease),text-shadow .18s var(--ease)}.section-chip:hover,.section-chip:focus-visible{color:var(--fg);border-color:var(--fg);text-shadow:0 0 18px color-mix(in srgb,var(--fg) 38%,transparent)}.section-dot{color:var(--faint);margin-inline:.3rem}.links{list-style:none;border-top:1px solid var(--hairline)}.links li{border-bottom:0}.links a{display:grid;grid-template-columns:2rem 1fr auto;align-items:center;gap:1rem;padding:.95rem .4rem;transition:background .2s var(--ease),padding-left .2s var(--ease)}.links a:hover,.index-section:has(.section-chip[data-highlight-group=contact]:hover) .index-row[data-group=contact] a,.index-section:has(.section-chip[data-highlight-group=contact]:focus-visible) .index-row[data-group=contact] a,.index-section:has(.section-chip[data-highlight-group=social]:hover) .index-row[data-group=social] a,.index-section:has(.section-chip[data-highlight-group=social]:focus-visible) .index-row[data-group=social] a,.index-section:has(.section-chip[data-highlight-group=work]:hover) .index-row[data-group=work] a,.index-section:has(.section-chip[data-highlight-group=work]:focus-visible) .index-row[data-group=work] a{background:var(--bg-elev);padding-left:.9rem}.links .idx{width:2rem;height:2rem;display:grid;place-items:center;border:1px solid var(--hairline);border-radius:9px;color:var(--faint);background:color-mix(in srgb,var(--bg-elev) 58%,transparent);transition:color .2s var(--ease),border-color .2s var(--ease),background .2s var(--ease),transform .2s var(--ease)}.links .idx svg{width:17px;height:17px;display:block}.links .label{font-size:1.05rem;font-weight:500;letter-spacing:-.01em;min-width:0;transition:color .2s var(--ease)}.links .label .host{font-family:var(--font-mono);font-size:.78rem;color:var(--muted);margin-left:.6rem;letter-spacing:.02em}.links .arrow{font-family:var(--font-mono);color:var(--muted);transition:transform .2s var(--ease),color .2s var(--ease)}.links a:hover .idx,.index-section:has(.section-chip[data-highlight-group=contact]:hover) .index-row[data-group=contact] .idx,.index-section:has(.section-chip[data-highlight-group=contact]:focus-visible) .index-row[data-group=contact] .idx,.index-section:has(.section-chip[data-highlight-group=social]:hover) .index-row[data-group=social] .idx,.index-section:has(.section-chip[data-highlight-group=social]:focus-visible) .index-row[data-group=social] .idx,.index-section:has(.section-chip[data-highlight-group=work]:hover) .index-row[data-group=work] .idx,.index-section:has(.section-chip[data-highlight-group=work]:focus-visible) .index-row[data-group=work] .idx{color:var(--fg);border-color:var(--line-strong);background:var(--bg-elev-2);transform:translateY(-1px)}.links a:hover .arrow,.index-section:has(.section-chip[data-highlight-group=contact]:hover) .index-row[data-group=contact] .arrow,.index-section:has(.section-chip[data-highlight-group=contact]:focus-visible) .index-row[data-group=contact] .arrow,.index-section:has(.section-chip[data-highlight-group=social]:hover) .index-row[data-group=social] .arrow,.index-section:has(.section-chip[data-highlight-group=social]:focus-visible) .index-row[data-group=social] .arrow,.index-section:has(.section-chip[data-highlight-group=work]:hover) .index-row[data-group=work] .arrow,.index-section:has(.section-chip[data-highlight-group=work]:focus-visible) .index-row[data-group=work] .arrow{transform:translate(3px,-3px);color:var(--fg)}.index-back-arrow{position:absolute;top:clamp(1.6rem,5vh,3rem);right:var(--gutter);width:2.25rem;height:2.25rem;display:grid;place-items:center;border:1px solid var(--hairline);background:color-mix(in srgb,var(--bg-elev) 62%,transparent);color:var(--muted);font-family:var(--font-mono);font-size:1.1rem;line-height:1;border-radius:999px;opacity:0;transform:translateY(8px);pointer-events:none;transition:color .2s var(--ease),border-color .2s var(--ease),background .2s var(--ease),transform .2s var(--ease)}.index-back-arrow:hover,.index-back-arrow:focus-visible{color:var(--fg);border-color:var(--line-strong);background:var(--bg-elev-2);transform:translateY(0) translateY(-1px)}html.is-js .index-section.is-revealed .index-back-arrow{animation:index-arrow-in .42s var(--ease) .82s forwards;pointer-events:auto}html.is-js .index-section.is-reversing .index-back-arrow{animation:index-arrow-out .18s ease forwards}html:not(.is-js) .index-back-arrow{opacity:1;transform:translateY(0);pointer-events:auto}@keyframes index-arrow-in{0%{opacity:0;transform:translateY(8px);filter:blur(2px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}@keyframes index-arrow-out{0%{opacity:1;transform:translateY(0);filter:blur(0)}to{opacity:0;transform:translateY(-6px);filter:blur(2px)}}.index-footer{margin-top:auto;padding-top:clamp(2.2rem,6vh,4.2rem);display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;align-items:center;font-family:var(--font-mono);font-size:.72rem;color:var(--faint);letter-spacing:.06em}.index-footer__status{display:inline-flex;align-items:center;gap:.5rem;color:var(--baby-blue)}.index-footer__status .pulse{width:7px;height:7px;border-radius:50%;background:var(--fg);box-shadow:0 0 color-mix(in srgb,var(--fg) 60%,transparent);animation:pulse 2.4s infinite}.dock{position:fixed;left:50%;bottom:0;z-index:40;--peek: 30px;--hover: 0;--dock-w: min(238px, calc(100vw - 1rem) );--dock-bar-w: min(268px, calc(100vw - 1rem) );transform:translate(-50%) translateY(calc((1 - var(--hover)) * var(--peek)));opacity:1;transition:transform .45s var(--ease),opacity .25s var(--ease),filter .25s var(--ease);will-change:transform,opacity,filter}.dock:hover,.dock:focus-within{--hover: 1}.dock.dock--assembling{pointer-events:none;animation:dock-lift .48s var(--ease) forwards}.dock.dock--merged{opacity:0;pointer-events:none;transform:translate(-50%) translateY(-34vh) scale(.98)}.dock.dock--returning{pointer-events:none;transform:translate(-50%) translateY(var(--peek)) scale(1);opacity:0;filter:blur(2px);animation:dock-fade-back .42s var(--ease) 1s forwards}.dock__inner{position:relative;display:flex;align-items:center;justify-content:center;gap:2px;padding:7px;margin-bottom:10px;width:var(--dock-w);min-height:58px;background:color-mix(in srgb,var(--bg-elev) 82%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--hairline);border-radius:16px;box-shadow:0 10px 34px #0006;overflow:visible}.dock__inner:before{content:"";position:absolute;inset:0;background:var(--fg);transform:scaleX(0);transform-origin:left;opacity:0}.dock__load-label{position:absolute;left:50%;top:calc(100% - 1px);transform:translate(-50%) translateY(10px);font-family:var(--font-mono);font-size:.7rem;line-height:1;letter-spacing:.06em;color:var(--muted);opacity:0;pointer-events:none;white-space:nowrap}.dock.dock--assembling .dock__inner{animation:dock-morph-bar .46s var(--ease) .56s forwards;overflow:hidden}.dock.dock--assembling .dock__inner:before{animation:dock-render-progress 1.02s var(--ease) 1.04s forwards}.dock.dock--assembling .dock__load-label{animation:dock-label-in .28s var(--ease) .92s forwards,dock-label-out .28s ease 2.16s forwards}.dock.dock--merged .dock__load-label,.dock.dock--returning .dock__load-label{opacity:0}.dock__item{position:relative;width:42px;height:42px;display:grid;place-items:center;border-radius:11px;color:var(--muted);transition:color .18s var(--ease),background .18s var(--ease),transform .18s var(--ease),opacity .25s var(--ease)}.dock.dock--assembling .dock__item{animation:dock-icons-transfer .18s ease .52s forwards}.dock.dock--returning .dock__item{animation:dock-icons-pop .28s var(--ease) .22s both}.dock.dock--merged .dock__item{opacity:0}.dock__item:not(:last-child):after{content:"";position:absolute;right:-1px;top:50%;transform:translateY(-50%);width:1px;height:18px;background:var(--hairline)}.dock__item:hover{color:var(--fg);background:var(--bg-elev-2);transform:translateY(-2px)}.dock__item svg{width:20px;height:20px;display:block}@keyframes dock-lift{0%{transform:translate(-50%) translateY(var(--peek)) scale(1);opacity:1;filter:blur(0)}72%{transform:translate(-50%) translateY(-34vh) scale(.99);opacity:.9;filter:blur(0)}to{transform:translate(-50%) translateY(-34vh) scale(.98);opacity:1;filter:blur(0)}}@keyframes dock-morph-bar{0%{width:var(--dock-w);min-height:58px;padding:7px;margin-bottom:10px;border-radius:16px;background:color-mix(in srgb,var(--bg-elev) 82%,transparent);box-shadow:0 10px 34px #0006}to{width:var(--dock-bar-w);min-height:4px;height:4px;padding:0;margin-bottom:10px;border-radius:1px;background:transparent;box-shadow:none}}@keyframes dock-render-progress{0%{opacity:1;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}@keyframes dock-label-in{0%{opacity:0;transform:translate(-50%) translateY(14px);filter:blur(2px)}to{opacity:1;transform:translate(-50%) translateY(10px);filter:blur(0)}}@keyframes dock-label-out{0%{opacity:1;transform:translate(-50%) translateY(10px);filter:blur(0)}to{opacity:0;transform:translate(-50%) translateY(4px);filter:blur(2px)}}@keyframes dock-fade-back{0%{opacity:0;filter:blur(2px);transform:translate(-50%) translateY(var(--peek)) scale(1)}to{opacity:1;filter:blur(0);transform:translate(-50%) translateY(var(--peek)) scale(1)}}@keyframes dock-icons-transfer{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-2px)}}@keyframes dock-icons-pop{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.dock__tip{position:absolute;bottom:calc(100% + 9px);left:50%;transform:translate(-50%) translateY(4px);background:var(--bg);color:var(--fg);font-family:var(--font-mono);font-size:.66rem;letter-spacing:.06em;padding:5px 9px;border-radius:7px;white-space:nowrap;border:1px solid var(--hairline);box-shadow:0 10px 24px #00000052;opacity:0;pointer-events:none;transition:opacity .18s var(--ease),transform .18s var(--ease)}.dock__tip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:var(--bg)}.dock__item:hover .dock__tip,.dock__item:focus-visible .dock__tip{opacity:1;transform:translate(-50%) translateY(0)}.dock-flyers{position:fixed;inset:0;z-index:45;pointer-events:none}.dock-flyer{position:fixed;width:42px;height:42px;display:grid;place-items:center;color:var(--fg);background:color-mix(in srgb,var(--bg-elev) 74%,transparent);border:1px solid var(--hairline);border-radius:11px;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 10px 28px #00000057}.dock-flyer svg{width:20px;height:20px;display:block}html.is-js .index-section .index-icon-slot{opacity:0;transform:scale(.94)}html.is-js .index-section .index-row .label,html.is-js .index-section .index-row .arrow{opacity:0;transform:translate(-18px)}.links li{position:relative;border-bottom:0}.links li:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--hairline);transform:scaleX(0);transform-origin:left;opacity:0}html.is-js .index-section.is-revealed .index-icon-slot{opacity:1;transform:scale(1);transition:opacity .16s var(--ease),transform .16s var(--ease)}html.is-js .index-section.is-revealed .index-row .label,html.is-js .index-section.is-revealed .index-row .arrow{animation:index-in .46s var(--ease) forwards;animation-delay:calc(var(--d) * 90ms)}html.is-js .index-section.is-revealed .index-row:after{animation:index-line-in .42s var(--ease) forwards;animation-delay:calc(var(--d) * 90ms)}html.is-js .index-section.is-reversing .index-icon-slot{opacity:0;transform:scale(.96);transition:opacity .16s ease,transform .16s ease}html.is-js .index-section.is-reversing .index-row .label,html.is-js .index-section.is-reversing .index-row .arrow{animation:index-out .23s ease forwards;animation-delay:calc(var(--d) * 44ms)}html.is-js .index-section.is-reversing .index-row:after{animation:index-line-out .18s ease forwards;animation-delay:calc(var(--d) * 44ms)}html:not(.is-js) .index-section .index-icon-slot,html:not(.is-js) .index-section .index-row .label,html:not(.is-js) .index-section .index-row .arrow{opacity:1;transform:none}html:not(.is-js) .links li:after{opacity:1;transform:scaleX(1)}@keyframes index-in{0%{opacity:0;transform:translate(-18px);filter:blur(3px)}to{opacity:1;transform:translate(0);filter:blur(0)}}@keyframes index-out{0%{opacity:1;transform:translate(0);filter:blur(0)}to{opacity:0;transform:translate(16px);filter:blur(2px)}}@keyframes index-line-in{0%{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}@keyframes index-line-out{0%{opacity:1;transform:scaleX(1)}to{opacity:0;transform:scaleX(0)}}.prose{max-width:68ch}.prose>*+*{margin-top:1.15rem}.prose h2{font-size:1.5rem;margin-top:2.4rem;letter-spacing:-.02em}.prose h3{font-size:1.18rem;margin-top:1.8rem}.prose p,.prose li{color:var(--fg);opacity:.92;line-height:1.75}.prose a{text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--muted)}.prose a:hover{text-decoration-color:var(--fg)}.prose ul,.prose ol{padding-left:1.3rem}.prose code{font-family:var(--font-mono);font-size:.86em;background:var(--bg-elev);border:1px solid var(--hairline);border-radius:3px;padding:.1em .4em}.prose pre{background:var(--bg-elev);border:1px solid var(--hairline);border-radius:4px;padding:1rem 1.1rem;overflow-x:auto}.prose pre code{background:none;border:0;padding:0}.prose blockquote{border-left:2px solid var(--line-strong);padding-left:1rem;color:var(--muted)}.posts{list-style:none;border-top:1px solid var(--hairline)}.posts li{border-bottom:1px solid var(--hairline)}.posts a{display:block;padding:1.4rem .4rem;transition:background .2s var(--ease),padding-left .2s var(--ease)}.posts a:hover{background:var(--bg-elev);padding-left:.9rem}.posts .post-date{font-family:var(--font-mono);font-size:.72rem;color:var(--faint);letter-spacing:.06em}.posts .post-title{font-size:1.3rem;font-weight:600;margin-top:.35rem;letter-spacing:-.02em}.posts .post-desc{color:var(--muted);margin-top:.35rem;max-width:60ch}.footer{margin-top:clamp(4rem,12vh,8rem);border-top:1px solid var(--hairline);padding:2rem 0 calc(2rem + env(safe-area-inset-bottom))}.footer__inner{display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;align-items:center;font-family:var(--font-mono);font-size:.72rem;color:var(--faint);letter-spacing:.06em}.footer__status{display:inline-flex;align-items:center;gap:.5rem;color:var(--baby-blue)}.footer__status .pulse{width:7px;height:7px;border-radius:50%;background:var(--fg);box-shadow:0 0 color-mix(in srgb,var(--fg) 60%,transparent);animation:pulse 2.4s infinite}@keyframes pulse{0%{box-shadow:0 0 color-mix(in srgb,var(--fg) 55%,transparent)}70%{box-shadow:0 0 0 7px transparent}to{box-shadow:0 0 0 0 transparent}}.back{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-mono);font-size:.76rem;color:var(--muted);margin-bottom:1.5rem;letter-spacing:.04em}.back:hover{color:var(--fg)}.page-head{padding-top:clamp(2.5rem,7vh,4.5rem)}.page-head h1{font-size:clamp(2.2rem,6vw,3.6rem)}.page-head .lead{color:var(--muted);margin-top:.9rem;max-width:56ch}@media(max-width:820px){.hero__grid{grid-template-columns:1fr;gap:clamp(1.5rem,5vw,2.5rem)}.hero__figure{width:clamp(190px,56vw,260px);order:2}.hero__name{font-size:clamp(2.8rem,13vw,4.6rem)}}@media(max-width:620px){.nav__inner{gap:.5rem}.nav__links{gap:clamp(.42rem,2vw,.8rem)}.nav__link{font-size:.68rem;letter-spacing:.035em}.toggle{font-size:.64rem;padding:4px 7px;gap:.34rem}.toggle .glyph{width:10px;height:10px}.links a{grid-template-columns:2rem 1fr auto;gap:.6rem}.links .label .host,.section-label .meta{display:none}.index-footer{font-size:.64rem;align-items:flex-start;flex-direction:column}.index-back-arrow{right:var(--gutter)}}@media(max-width:430px){.wrap{padding-inline:.75rem}.nav__brand{font-size:.72rem;gap:.35rem}.nav__brand .dot{width:6px;height:6px}.nav__links{gap:.38rem}.nav__link{font-size:.62rem}.toggle{font-size:.58rem;padding:3px 5px}}@media(max-width:560px){.dock{display:block}}@media(prefers-reduced-motion:reduce){html{scroll-snap-type:none;scroll-behavior:auto}*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
