@import "https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&family=IBM+Plex+Mono:wght@300;400;500&family=DM+Mono:wght@300;400;500&display=swap";:root{--bg-primary:#f8f8f6;--bg-surface:#f0f0ee;--text-primary:#111110;--text-secondary:#5a5a58;--accent:#2a7aff;--accent-soft:#e8f0ff;--grid:#e2e2df;--gold:#c9a84c;--green:#22c55e;--font-display:"Instrument Serif", serif;--font-mono:"IBM Plex Mono", "DM Mono", monospace}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background-color:var(--bg-primary);color:var(--text-primary);font-family:var(--font-mono);-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.6;overflow-x:hidden}body:before{content:"";background-image:linear-gradient(var(--grid) 1px, transparent 1px), linear-gradient(90deg, var(--grid) 1px, transparent 1px);opacity:.4;pointer-events:none;z-index:0;background-size:60px 60px;position:fixed;inset:0}body:after{content:"";background:radial-gradient(400px circle at var(--cursor-x,-9999px) var(--cursor-y,-9999px), #2a7aff0f, transparent 70%);pointer-events:none;z-index:1;position:fixed;inset:0}#root{z-index:2;position:relative}.font-display{font-family:var(--font-display)}.font-mono{font-family:var(--font-mono)}.label{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-secondary);font-size:.7rem}.label--accent{color:var(--accent)}.section{max-width:1200px;margin:0 auto;padding:120px clamp(24px,5vw,80px)}.reveal-header{clip-path:inset(0 100% 0 0)}@media (width<=768px){body:after{display:none}}.nav{z-index:100;justify-content:space-between;align-items:center;padding:20px clamp(24px,5vw,80px);transition:background .3s,-webkit-backdrop-filter .3s,backdrop-filter .3s;display:flex;position:fixed;top:0;left:0;right:0}.nav--scrolled{-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--grid);background:#f8f8f6d9}.nav__monogram{font-family:var(--font-mono);color:var(--text-primary);letter-spacing:.05em;font-size:.875rem;font-weight:500;text-decoration:none}.nav__right{align-items:center;gap:24px;display:flex}.nav__badge{font-family:var(--font-mono);color:var(--text-secondary);border:1px solid var(--grid);background:var(--bg-surface);border-radius:999px;align-items:center;gap:8px;padding:4px 12px;font-size:.7rem;display:flex}.nav__dot{background:var(--green);border-radius:50%;flex-shrink:0;width:8px;height:8px;animation:2s ease-in-out infinite pulse-dot}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.4)}}.nav__links{gap:32px;list-style:none;display:flex}.nav__links a{font-family:var(--font-mono);color:var(--text-secondary);font-size:.8rem;text-decoration:none;transition:color .2s}.nav__links a:hover{color:var(--text-primary)}@media (width<=768px){.nav__badge{display:none}.nav__links{gap:20px}.nav__links a{font-size:.75rem}}.hero{align-items:center;min-height:100vh;display:flex;position:relative;overflow:hidden}.hero__canvas{cursor:grab;width:50vw;height:100%;position:absolute;top:0;right:0}.hero__canvas:active{cursor:grabbing}.hero__tooltip{background:var(--bg-surface);border:1px solid var(--grid);font-family:var(--font-mono);color:var(--text-primary);pointer-events:none;z-index:10;border-radius:6px;max-width:220px;padding:8px 12px;font-size:.72rem;line-height:1.5;display:none;position:absolute}.hero__content{z-index:2;max-width:600px;padding:80px clamp(24px,5vw,80px) 0;position:relative}.hero__label{margin-bottom:24px;display:block}.hero__name{font-family:var(--font-display);color:var(--text-primary);flex-direction:column;margin-bottom:32px;font-size:clamp(56px,8vw,96px);font-weight:400;line-height:1;display:flex}.hero__name-line{display:block}.hero__subtext{font-family:var(--font-mono);color:var(--text-primary);font-size:1rem;line-height:1.7}.hero__subtext-secondary{color:var(--text-secondary)}.hero__scroll{flex-direction:column;align-items:center;gap:8px;display:flex;position:absolute;bottom:40px;left:clamp(24px,5vw,80px)}.hero__scroll-line{background:var(--grid);width:1px;height:48px;position:relative;overflow:hidden}.hero__scroll-dot{background:var(--accent);border-radius:50%;width:4px;height:4px;animation:1.6s ease-in-out infinite scroll-dot;position:absolute;left:-1.5px}@keyframes scroll-dot{0%{opacity:1;top:0}80%{opacity:.3;top:calc(100% - 4px)}to{opacity:0;top:0}}@media (width<=768px){.hero__canvas{opacity:.08;pointer-events:none;width:100%}.hero__content{padding-top:100px}}.about__section-label{margin-bottom:48px}.about__grid{grid-template-columns:1fr 1fr;align-items:start;gap:80px;display:grid}.about__quote{color:var(--text-primary);font-size:clamp(1.5rem,3vw,2.2rem);font-style:italic;font-weight:400;line-height:1.3;position:sticky;top:120px}.about__body p{color:var(--text-secondary);margin-bottom:20px;font-size:.95rem;line-height:1.8}.about__body p:last-of-type{margin-bottom:48px}.about__stats{flex-wrap:wrap;align-items:flex-start;gap:16px;display:flex}.about__stat{flex-direction:column;gap:2px;display:flex}.about__stat-number{color:var(--accent);font-size:1.5rem;font-weight:500}.about__stat-unit{color:var(--text-primary);font-size:.75rem}.about__stat-note{color:var(--text-secondary);font-size:.68rem}.about__stat-divider{color:var(--grid);padding-top:8px;font-size:1.2rem}@media (width<=768px){.about__grid{grid-template-columns:1fr;gap:40px}.about__quote{position:static}}.project-card{background:var(--bg-surface);border:1px solid var(--grid);border-radius:4px;padding:clamp(32px,4vw,56px);transition:border-color .2s,box-shadow .2s;position:relative}.project-card:hover{border-color:var(--accent);box-shadow:0 8px 32px #2a7aff0f}.project-card--right{margin-left:auto}@media (width>=900px){.project-card{max-width:88%}}.project-card__number{font-family:var(--font-mono);color:var(--grid);pointer-events:none;-webkit-user-select:none;user-select:none;font-size:clamp(3rem,6vw,5rem);font-weight:300;line-height:1;position:absolute;top:24px;right:32px}.project-card__tags{flex-wrap:wrap;gap:8px;margin-bottom:20px;display:flex}.project-card__tag{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:4px 10px;font-size:.65rem}.project-card__title{color:var(--text-primary);margin-bottom:8px;font-size:clamp(1.5rem,3vw,2rem);font-weight:400}.project-card__subtitle{font-family:var(--font-mono);color:var(--text-secondary);margin-bottom:20px;font-size:.85rem}.project-card__description{font-family:var(--font-mono);color:var(--text-secondary);max-width:600px;margin-bottom:20px;font-size:.88rem;line-height:1.8}.project-card__impact{font-family:var(--font-mono);color:var(--accent);margin-bottom:28px;font-size:.82rem}.project-card__footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.project-card__roles{flex-wrap:wrap;gap:12px;display:flex}.project-card__role{color:var(--text-secondary)}.project-card__link{font-family:var(--font-mono);color:var(--text-primary);border-bottom:1px solid var(--grid);font-size:.8rem;text-decoration:none;transition:color .2s,border-color .2s}.project-card__link:hover{color:var(--accent);border-color:var(--accent)}.projects__heading{color:var(--text-primary);margin:12px 0 64px;font-size:clamp(2rem,5vw,3.5rem);font-weight:400}.projects__list{flex-direction:column;gap:32px;display:flex}.stack__heading{color:var(--text-primary);margin:12px 0 56px;font-size:clamp(2rem,5vw,3.5rem);font-weight:400}.stack__grid{border:1px solid var(--grid);grid-template-columns:1fr 1fr;display:grid}.stack__quadrant{border-right:1px solid var(--grid);border-bottom:1px solid var(--grid);padding:40px}.stack__quadrant:nth-child(2n){border-right:none}.stack__quadrant:nth-child(3),.stack__quadrant:nth-child(4){border-bottom:none}.stack__quadrant-label{margin-bottom:20px}.stack__items{flex-direction:column;gap:10px;list-style:none;display:flex}.stack__item{font-family:var(--font-mono);color:var(--text-secondary);padding-left:16px;font-size:.88rem;position:relative}.stack__item:before{content:"·";color:var(--accent);position:absolute;left:0}.stack__tagline{font-family:var(--font-mono);color:var(--text-secondary);margin-top:40px;font-size:.82rem;font-style:italic}@media (width<=640px){.stack__grid{grid-template-columns:1fr}.stack__quadrant{border-right:none}.stack__quadrant:last-child{border-bottom:none}}.timeline__heading{color:var(--text-primary);margin:12px 0 64px;font-size:clamp(2rem,5vw,3.5rem);font-weight:400}.timeline__track{max-width:760px;padding-left:32px;position:relative}.timeline__line{background:var(--grid);transform-origin:top;width:1px;position:absolute;top:0;bottom:0;left:7px}.timeline__entry{align-items:flex-start;gap:32px;margin-bottom:56px;display:flex;position:relative}.timeline__node-wrap{position:absolute;top:6px;left:-32px}.timeline__node{border:2px solid var(--grid);background:var(--bg-primary);border-radius:50%;width:14px;height:14px;display:block}.timeline__node--blue{background:var(--accent);border-color:var(--accent)}.timeline__node--gold{background:var(--gold);border-color:var(--gold)}.timeline__node--dashed{border-style:dashed;border-color:var(--text-secondary)}.timeline__node--diamond{background:var(--accent);border-radius:2px;width:12px;height:12px;display:block;transform:rotate(45deg)}.timeline__card{flex:1}.timeline__meta{flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:8px;display:flex}.timeline__year{color:var(--accent)}.timeline__location{color:var(--text-secondary)}.timeline__badge{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;border:1px dashed var(--text-secondary);color:var(--text-secondary);border-radius:999px;padding:2px 8px;font-size:.6rem}.timeline__title{color:var(--text-primary);margin-bottom:10px;font-size:1.4rem;font-weight:400}.timeline__body{font-family:var(--font-mono);color:var(--text-secondary);font-size:.88rem;line-height:1.8}.chat{margin-top:48px}.chat__toggle{cursor:pointer;background:0 0;border:none;padding:0;font-size:.85rem;transition:opacity .2s}.chat__toggle:hover{opacity:.7}.chat__panel{background:#1a1a18;border-radius:8px;max-width:560px;margin-top:16px;overflow:hidden}.chat__messages{flex-direction:column;gap:12px;min-height:200px;max-height:360px;padding:24px;display:flex;overflow-y:auto}.chat__starters{flex-direction:column;gap:8px;display:flex}.chat__starter{color:#8ab4ff;font-family:var(--font-mono);text-align:left;cursor:pointer;background:#2a7aff1f;border:1px solid #2a7aff33;border-radius:4px;padding:8px 14px;font-size:.78rem;transition:background .2s}.chat__starter:hover{background:#2a7aff38}.chat__msg{font-family:var(--font-mono);border-radius:6px;max-width:90%;padding:10px 14px;font-size:.85rem;line-height:1.7}.chat__msg--user{color:#c8d8ff;background:#2a7aff26;align-self:flex-end}.chat__msg--assistant{color:#e8e8e6;background:#ffffff0f;align-self:flex-start}.chat__loading{letter-spacing:4px;animation:1s steps(3,end) infinite blink}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}.chat__input-row{border-top:1px solid #ffffff14;display:flex}.chat__input{color:#e8e8e6;font-family:var(--font-mono);background:0 0;border:none;outline:none;flex:1;padding:16px 20px;font-size:.85rem}.chat__input::placeholder{color:#5a5a58}.chat__send{color:var(--accent);cursor:pointer;background:0 0;border:none;border-left:1px solid #ffffff14;padding:0 20px;font-size:1.1rem;transition:opacity .2s}.chat__send:disabled{opacity:.3;cursor:default}.contact{text-align:left;max-width:800px}.contact__heading{color:var(--text-primary);margin-bottom:28px;font-size:clamp(2.2rem,5vw,4rem);font-weight:400;line-height:1.15}.contact__subtext{font-family:var(--font-mono);color:var(--text-secondary);margin-bottom:40px;font-size:.92rem;line-height:1.8}.contact__ctas{flex-wrap:wrap;gap:32px;display:flex}.contact__cta{font-family:var(--font-mono);color:var(--text-primary);border-bottom:1px solid var(--text-primary);padding-bottom:2px;font-size:.9rem;text-decoration:none;transition:color .2s,border-color .2s}.contact__cta:hover{color:var(--accent);border-color:var(--accent)}.easter__trigger{cursor:pointer;opacity:.25;background:0 0;border:none;transition:opacity .3s;animation:4s ease-in-out infinite easter-pulse}.easter__trigger:hover{opacity:.7}@keyframes easter-pulse{0%,to{opacity:.15}50%{opacity:.35}}.easter__panel{border-top:1px solid var(--grid);margin-top:32px;padding:32px 0}.easter__heading{color:var(--text-primary);margin-bottom:32px;font-size:2rem;font-weight:400}.easter__grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:20px;display:grid}.easter__card{background:var(--bg-surface);border:1px solid var(--grid);border-radius:4px;flex-direction:column;gap:8px;padding:20px;display:flex}.easter__emoji{font-size:1.5rem}.easter__label{color:var(--text-secondary)}.easter__quote{font-family:var(--font-mono);color:var(--text-secondary);font-size:.8rem;font-style:italic;line-height:1.6}.footer{border-top:1px solid var(--grid);margin-top:80px}.footer__inner{flex-direction:column;gap:24px;padding-top:40px;padding-bottom:40px;display:flex}.footer__copy{color:var(--text-secondary)}.build{max-width:640px;min-height:100vh;padding-top:120px}.build__back{color:var(--text-secondary);margin-bottom:48px;text-decoration:none;transition:color .2s;display:inline-block}.build__back:hover{color:var(--text-primary)}.build__heading{color:var(--text-primary);margin-bottom:24px;font-size:clamp(2rem,5vw,3.5rem);font-weight:400;line-height:1.15}.build__subtext{font-family:var(--font-mono);color:var(--text-secondary);margin-bottom:56px;font-size:.88rem;line-height:1.8}.build__form{flex-direction:column;gap:32px;display:flex}.build__field{flex-direction:column;gap:10px;display:flex}.build__field input,.build__field textarea,.build__field select{background:var(--bg-surface);border:1px solid var(--grid);color:var(--text-primary);font-family:var(--font-mono);resize:vertical;appearance:none;border-radius:4px;outline:none;padding:12px 16px;font-size:.88rem;transition:border-color .2s}.build__field input:focus,.build__field textarea:focus,.build__field select:focus{border-color:var(--accent)}.build__error{font-family:var(--font-mono);color:#e05555;font-size:.82rem}.build__submit{background:var(--text-primary);color:var(--bg-primary);font-family:var(--font-mono);cursor:pointer;border:none;border-radius:4px;align-self:flex-start;padding:12px 28px;font-size:.88rem;transition:opacity .2s}.build__submit:hover{opacity:.85}.build__submit:disabled{opacity:.5;cursor:default}.build__success{font-family:var(--font-mono);color:var(--text-primary);border:1px solid var(--grid);background:var(--bg-surface);border-radius:4px;padding:32px;font-size:.92rem;line-height:1.8}.build__success-sig{color:var(--text-secondary);margin-top:8px}
