/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial}}}@layer theme{:root,:host{--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1)}}@layer base{*,:before,:after{border:0 solid}}@layer components;@layer utilities{.visible{visibility:visible}.fixed{position:fixed}.contents{display:contents}.flex{display:flex}.grid{display:grid}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}:root{--bg:#8a919a;--bg-raise:#c9cdd2;--ink:#0d121a;--ink-soft:#141b26;--ink-dim:#232c3a;--accent:#3b82f6;--accent-text:#1a46c4;--accent-bright:#3b82f6;--glass:#fff6;--glass-strong:#fff9;--glass-border:#ffffffb3;--glass-shadow:0 12px 40px #0a142829, inset 0 1px 0 #ffffffd9;--line:#ffffff8c;--line-strong:#3b82f699;--font-display:"Newsreader", Georgia, serif;--font-body:"Geist", system-ui, -apple-system, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box;margin:0;padding:0}body{color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;background:linear-gradient(#141e321a 0%,#141e324d 100%) fixed,url(/ferry-building.webp) 50% 35%/cover fixed,#7f8791;min-height:100vh;line-height:1.6}::selection{background:var(--accent)}@supports (color:color-mix(in lab, red, red)){::selection{background:color-mix(in srgb, var(--accent) 30%, transparent)}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}.page{max-width:46rem;margin:0 auto;padding:7rem 1.5rem 3rem;position:relative}.glow{z-index:-1;pointer-events:none;background:radial-gradient(26rem circle at var(--mx,50%) var(--my,0%), color-mix(in srgb, var(--accent-bright) 35%, transparent), transparent 70%), radial-gradient(34rem circle at 100% 0%, #3b82f64d, transparent 70%), radial-gradient(36rem circle at 0% 62%, #60a5fa38, transparent 70%), radial-gradient(34rem circle at 80% 105%, #3b82f633, transparent 70%);position:fixed;inset:0}@keyframes rise{0%{opacity:0;transform:translateY(.75rem)}}.intro,.section,.footer{animation:.7s cubic-bezier(.2,.7,.2,1) backwards rise}.section{animation-delay:calc(.1s * var(--n,1) + .15s)}.section:first-child{--n:1}.section:nth-child(2){--n:2}.section:nth-child(3){--n:3}.section:nth-child(4){--n:4}.section:nth-child(5){--n:5}.section:nth-child(6){--n:6}.section:nth-child(7){--n:7}.glass,.intro,.section,.card,.menu__panel{-webkit-backdrop-filter:blur(24px)saturate(1.6);backdrop-filter:blur(24px)saturate(1.6)}.intro{border:1px solid var(--glass-border);background:var(--glass);box-shadow:var(--glass-shadow);border-radius:2rem;margin-bottom:1.5rem;padding:2.75rem}.intro__eyebrow{letter-spacing:.1em;text-transform:uppercase;color:var(--accent-text);align-items:center;gap:.6rem;margin-bottom:1.25rem;font-size:.8rem;font-weight:500;display:inline-flex}.intro__dot{background:var(--accent);width:.4rem;height:.4rem;box-shadow:0 0 .8rem var(--accent);border-radius:50%}.intro__name{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);font-size:clamp(2.4rem,8vw,3.75rem);font-weight:400;line-height:1.05}.intro__role{color:var(--ink-dim);margin-top:.75rem;font-size:1.05rem}.intro__summary{max-width:34rem;color:var(--ink-soft);margin-top:1.5rem}.section{border:1px solid var(--glass-border);background:var(--glass);box-shadow:var(--glass-shadow);border-radius:1.5rem;grid-template-columns:9rem 1fr;gap:1rem 2rem;margin-bottom:1rem;padding:1.75rem 2rem;transition:border-color .3s,background .3s;display:grid}.section:hover{background:#ffffff7a;border-color:#fff}.section__title{letter-spacing:.12em;text-transform:uppercase;color:var(--ink-dim);padding-top:.25rem;font-size:.75rem;font-weight:600;transition:color .3s}.section:hover .section__title{color:var(--accent-text)}.tags{flex-wrap:wrap;gap:.5rem;list-style:none;display:flex}.tags li{border:1px solid var(--glass-border);background:var(--glass-strong);border-radius:999px;padding:.25rem .8rem;font-size:.88rem;transition:border-color .25s,background .25s,transform .25s}.tags li:hover{background:#fffc;border-color:#fff;transform:translateY(-1px)}.rows{gap:1.1rem;list-style:none;display:grid}.row{border-left:2px solid var(--glass-border);gap:.15rem;padding-left:1rem;transition:border-color .25s;display:grid}.row:hover{border-left-color:var(--accent)}.row__title{font-weight:500}.row__meta,.row__text{color:var(--ink-dim);font-size:.95rem}.plain{color:var(--ink-soft)}.links{gap:.4rem;list-style:none;display:grid}.links a{color:var(--ink);text-underline-offset:.25em;-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong);transition:color .2s}.links a:hover{color:var(--accent)}.footer{border-top:1px solid var(--glass-border);color:var(--ink-dim);margin-top:2rem;padding-top:1.5rem;font-size:.85rem;animation-delay:.9s}@media (width<=36rem){.page{padding-top:5.5rem}.intro{padding:1.75rem}.section{grid-template-columns:1fr;gap:.75rem;padding:1.5rem}}@media (prefers-reduced-motion:reduce){.intro,.section,.footer{animation:none}}.topbar{z-index:10;-webkit-backdrop-filter:blur(24px)saturate(1.6);backdrop-filter:blur(24px)saturate(1.6);border-bottom:1px solid var(--glass-border);background:#ffffff61;justify-content:space-between;align-items:center;gap:1rem;padding:.9rem max(1.5rem,50% - 21.5rem);display:flex;position:fixed;top:0;left:0;right:0;box-shadow:0 8px 32px #0a14281f,inset 0 1px #fffc}.topbar__brand{font-family:var(--font-display);color:var(--ink);font-size:1.15rem;text-decoration:none}.menu{position:relative}.menu__button{border:1px solid var(--glass-border);background:var(--glass-strong);color:var(--ink);font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:.5rem;padding:.35rem .9rem;font-size:.88rem;transition:border-color .25s,background .25s;display:inline-flex}.menu__button:hover,.menu__button[aria-expanded=true]{background:#ffffffd9;border-color:#fff}.menu__button:focus-visible,.menu__item:focus-visible,.topbar__brand:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.menu__chevron{border-bottom:1.5px solid;border-right:1.5px solid;width:.4rem;height:.4rem;transition:transform .2s;transform:translateY(-1px)rotate(45deg)}.menu__button[aria-expanded=true] .menu__chevron{transform:translateY(1px)rotate(225deg)}.menu__panel{border:1px solid var(--glass-border);min-width:14rem;box-shadow:var(--glass-shadow);background:#ffffffb3;border-radius:1.25rem;padding:.35rem;list-style:none;animation:.2s backwards rise;position:absolute;top:calc(100% + .5rem);right:0}.menu__item{color:var(--ink);border-radius:.5rem;gap:.1rem;padding:.55rem .75rem;text-decoration:none;transition:background .2s;display:grid}.menu__item:hover{background:#ffffffb3}.menu__note{color:var(--ink-dim);font-size:.8rem}.intro__avatar{border:1px solid var(--glass-border);color:#fff;width:4.5rem;height:4.5rem;font-family:var(--font-display);letter-spacing:.02em;background:linear-gradient(#5fa0ff,#3b82f6);border-radius:50%;place-items:center;margin-bottom:1.75rem;font-size:1.6rem;display:grid;box-shadow:inset 0 1px #ffffff80,0 8px 20px #3b82f680}.intro__cta{color:#fff;background:linear-gradient(#5fa0ff,#3b82f6);border:1px solid #ffffff8c;border-radius:999px;margin-top:1.75rem;padding:.65rem 1.3rem;font-size:.9rem;font-weight:500;text-decoration:none;transition:transform .25s,box-shadow .25s;display:inline-block;box-shadow:inset 0 1px #ffffff80,0 6px 16px #3b82f680}.intro__cta:hover{transform:translateY(-1px);box-shadow:inset 0 1px #ffffff80,0 10px 22px #3b82f699}.cards{gap:.75rem;list-style:none;display:grid}.card{border:1px solid var(--glass-border);background:var(--glass-strong);color:inherit;border-radius:1.1rem;gap:.2rem;padding:1rem 1.1rem;text-decoration:none;transition:border-color .25s,background .25s,transform .25s;display:grid}.card:hover{background:#fffc;border-color:#fff;transform:translateY(-1px)}.card__head{justify-content:space-between;display:flex}.card__arrow{color:var(--accent-text)}.menu__button{text-decoration:none}.projects{flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:2rem;padding-bottom:2rem;display:flex}.projects__list{flex:16rem;min-width:0}
