@import"https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,600;9..144,700&family=Space+Grotesk:wght@400;500;700&display=swap";:root{--color-surface-base: #09090b;--color-surface-panel: #12121a;--color-surface-ink: #000000;--color-text-primary: #e8eaf6;--color-text-secondary: #c8d3f5;--color-text-tertiary: #b5c2e8;--color-text-muted: #8a95b8;--color-accent-violet: #7c6aff;--color-accent-mint: #66ffcc;--color-status-error: #ff9090;--color-border-subtle: rgba(255, 255, 255, .1);--color-overlay-deep: rgba(9, 9, 11, .98);--color-overlay-mid: rgba(9, 9, 11, .76);--color-overlay-soft: rgba(9, 9, 11, .34);--color-violet-glow: rgba(124, 106, 255, .38);--color-mint-glow: rgba(102, 255, 204, .28);--color-sheen: rgba(255, 255, 255, .16);--font-body: "Space Grotesk", "Segoe UI", sans-serif;--font-display: "Fraunces", Georgia, serif;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-12: 3rem;--motion-entry: .8s;--motion-current: 14s;--motion-sheen: 9.8s;--ease-out-expressive: cubic-bezier(.16, 1, .3, 1);font-family:Space Grotesk,Segoe UI,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body{margin:0;min-width:320px}a{color:inherit}#root{width:100%}.landing{position:relative;min-height:100vh;overflow:hidden;padding:clamp(1.25rem,2vw,2.5rem);display:grid;place-items:center;background:radial-gradient(circle at 80% 18%,rgba(141,120,255,.25),transparent 35%),radial-gradient(circle at 18% 22%,rgba(102,255,204,.1),transparent 40%),linear-gradient(130deg,#313f6e,#22345c 48%,#124046)}.landing__glow{position:absolute;inset:auto -10% -35% 40%;height:420px;border-radius:999px;background:linear-gradient(90deg,#8d78ff59,#66ffcc1f);filter:blur(40px);animation:drift 10s ease-in-out infinite}.landing-page{background:var(--color-surface-base)}.hero-stage{position:relative;min-height:clamp(24rem,58vh,34rem);isolation:isolate;background:radial-gradient(circle at 8% 18%,var(--color-violet-glow),transparent 34%),radial-gradient(circle at 90% 82%,var(--color-mint-glow),transparent 36%),var(--color-surface-base)}.hero-stage__mask{position:absolute;inset:0;overflow:hidden;contain:paint}.hero-stage__picture{position:absolute;inset:0;display:block;overflow:hidden}.hero-stage__image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 14%;-webkit-user-select:none;user-select:none;transform-origin:center 18%;will-change:transform;animation:hero-current var(--motion-current) ease-in-out infinite alternate}.hero-stage__overlay{position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(ellipse 35% 32% at 50% 43%,var(--color-overlay-deep) 0%,var(--color-overlay-mid) 48%,transparent 78%),linear-gradient(to bottom,var(--color-overlay-soft),transparent 35%,var(--color-overlay-mid)),linear-gradient(to right,var(--color-overlay-soft),transparent 32% 68%,var(--color-overlay-soft))}.hero-stage__sheen,.hero-stage__ambient{position:absolute;inset:-20%;z-index:2;pointer-events:none}.hero-stage__sheen{opacity:.34;background:linear-gradient(108deg,transparent 36%,var(--color-sheen) 48%,transparent 59%);animation:hero-sheen var(--motion-sheen) linear infinite;will-change:transform,opacity}.hero-stage__ambient{opacity:.42;background:radial-gradient(circle at 18% 40%,var(--color-violet-glow),transparent 28%),radial-gradient(circle at 82% 58%,var(--color-mint-glow),transparent 30%)}.hero-stage__mask[data-paused=true] .hero-stage__image,.hero-stage__mask[data-paused=true] .hero-stage__sheen,.hero-stage__mask[data-paused=true] .hero-stage__ambient{animation-play-state:paused;will-change:auto}.hero{position:absolute;inset:0;z-index:3;display:grid;place-items:center;padding:var(--space-8) var(--space-4);text-align:center;opacity:0;transform:translateY(14px);animation:rise-in var(--motion-entry) var(--ease-out-expressive) forwards}.hero__card{position:relative;width:min(48rem,92vw);padding:var(--space-4)}.hero__eyebrow{margin:0 0 var(--space-4);font-size:.75rem;font-weight:500;letter-spacing:.32em;text-transform:uppercase;color:var(--color-accent-mint)}.hero h1{margin:0;color:var(--color-text-primary);font-family:var(--font-display);font-size:clamp(3rem,8vw,7rem);font-weight:600;line-height:.92;letter-spacing:-.045em;text-wrap:balance;text-shadow:0 1px 32px var(--color-surface-ink)}.hero__description{margin:var(--space-5) 0 0;color:var(--color-text-secondary);font-size:clamp(.95rem,1.6vw,1.15rem);letter-spacing:.02em}.hero__scroll{display:inline-block;margin-top:var(--space-8);padding:.85em 2.4em;border:1px solid rgba(102,255,204,.5);border-radius:999px;color:var(--color-accent-mint);font-size:.75rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;text-decoration:none;transition:background-color var(--motion-entry) var(--ease-out-expressive),border-color var(--motion-entry) var(--ease-out-expressive),color var(--motion-entry) var(--ease-out-expressive)}.hero__scroll:hover{border-color:var(--color-accent-mint);background:#66ffcc1a;color:var(--color-text-primary)}.hero__scroll:focus-visible{outline:2px solid var(--color-accent-violet);outline-offset:3px}.intro{max-width:46rem;margin:0 auto;padding:calc(var(--space-12) * 1.2) var(--space-5);text-align:center}.intro p{margin:0;color:var(--color-text-secondary);font-size:clamp(1rem,1.7vw,1.2rem);line-height:1.75;text-wrap:pretty}.intro__quiet{margin-top:var(--space-6)!important;color:var(--color-text-tertiary);font-size:.95rem!important}.projects{max-width:58rem;margin:0 auto;padding:0 var(--space-5) calc(var(--space-12) * 1.5)}.projects__heading{margin:0 0 var(--space-8);color:var(--color-text-tertiary);font-size:.75rem;font-weight:500;letter-spacing:.32em;text-transform:uppercase}.projects__list{margin:0;padding:0;list-style:none;border-top:1px solid var(--color-border-subtle)}.project{display:grid;grid-template-columns:auto auto 1fr auto;align-items:baseline;gap:var(--space-4);padding:var(--space-6) var(--space-2);border-bottom:1px solid var(--color-border-subtle)}.project__index{color:var(--color-accent-violet);font-size:.8rem;font-variant-numeric:tabular-nums}.project__name{color:var(--color-text-primary);font-family:var(--font-display);font-size:clamp(1.15rem,2.4vw,1.6rem);font-weight:600;letter-spacing:-.01em;text-decoration:none}a.project__name:hover{color:var(--color-accent-mint)}a.project__name:focus-visible{outline:2px solid var(--color-accent-violet);outline-offset:3px}.project__blurb{grid-column:2;grid-row:2;color:var(--color-text-tertiary);font-size:.9rem;line-height:1.6}.project__leader{align-self:center;border-bottom:1px dotted var(--color-border-subtle)}.project__status{color:var(--color-text-muted);font-size:.75rem;letter-spacing:.12em;text-transform:lowercase;white-space:nowrap}.project--locked{opacity:.42}.project--locked .project__name{font-style:italic}.projects__note{margin:var(--space-8) 0 0;color:var(--color-text-muted);font-size:.85rem;text-align:center}.signin{padding:calc(var(--space-12) * 1.5) var(--space-5);border-top:1px solid var(--color-border-subtle);text-align:center}.signin__heading{margin:0;color:var(--color-text-primary);font-family:var(--font-display);font-size:clamp(1.5rem,3.4vw,2.25rem);font-weight:600}.signin__note{margin:var(--space-3) 0 0;color:var(--color-text-tertiary);font-size:.95rem}.site-footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--space-3);max-width:58rem;margin:0 auto;padding:var(--space-8) var(--space-5) var(--space-12);border-top:1px solid var(--color-border-subtle);color:var(--color-text-muted);font-size:.8rem}.site-footer a{color:var(--color-text-tertiary);text-decoration:none}.site-footer a:hover{color:var(--color-accent-mint)}.hero__note{margin:1.4rem auto 0;max-width:58ch;color:#b5c2e8;font-size:.95rem}@keyframes rise-in{to{opacity:1;transform:translateY(0)}}@keyframes hero-current{0%{transform:translate3d(-2.2%,0,0) scale(1.04) rotate(-.25deg)}to{transform:translate3d(2.2%,-1.2%,0) scale(1.1) rotate(.25deg)}}@keyframes hero-sheen{0%{transform:translate3d(-34%,0,0)}to{transform:translate3d(34%,0,0)}}@keyframes drift{0%,to{transform:translate(0) scale(1)}50%{transform:translate(-22px) scale(1.06)}}@media(max-width:720px){.landing{padding-top:3rem}.hero-stage__image{object-position:center}.hero__card{padding-inline:0}.project{grid-template-columns:auto 1fr;gap:var(--space-2) var(--space-3)}.project__leader{display:none}.project__status{grid-column:2}}@media(prefers-reduced-motion:reduce){.hero-stage__image,.hero-stage__sheen,.hero-stage__ambient,.hero{animation:none!important}.hero-stage__image{transform:scale(1.05);will-change:auto}.hero-stage__sheen{opacity:0}.hero{opacity:1;transform:none}}.login-container{margin-top:var(--space-8);display:flex;justify-content:center}.auth-error{margin:1rem auto 0;max-width:40ch;padding:.6rem 1rem;border-radius:6px;background:#ff50501f;border:1px solid rgba(255,80,80,.3);color:#ff9090;font-size:.9rem;text-align:center}.links-wrapper{position:relative;z-index:1;width:100%;max-width:480px;padding:clamp(1rem,3vw,2rem);animation:rise-in .5s ease-out forwards;opacity:0}.user-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid rgba(255,255,255,.08)}.user-header__identity{display:flex;align-items:center;gap:.6rem}.user-avatar{width:32px;height:32px;border-radius:50%;flex-shrink:0}.user-avatar--img{object-fit:cover}.user-avatar--initial{background:#7c6aff;color:#fff;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center}.user-info{display:flex;flex-direction:column}.user-info__email{color:#e8eaf6;font-size:.85rem;font-weight:500}.user-info__sub{color:#888;font-size:.75rem}.logout-btn{background:none;border:none;color:#555;font-size:.8rem;cursor:pointer;padding:.3rem .5rem;border-radius:4px;transition:color .15s}.logout-btn:hover{color:#aaa}.links-list{display:flex;flex-direction:column;gap:.6rem}.link-item{display:flex;align-items:center;justify-content:space-between;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:.85rem 1rem;text-decoration:none;transition:border-color .15s,background .15s}.link-item:hover{border-color:#7c6aff;background:#7c6aff0f}.link-label{color:#e8eaf6;font-size:.9rem;font-weight:500;margin-bottom:.15rem}.link-description{color:#999;font-size:.78rem}.link-arrow{color:#7c6aff;font-size:.9rem;flex-shrink:0;margin-left:.5rem}.links-divider{border:none;border-top:1px solid rgba(255,255,255,.06);margin:.2rem 0}.link-item--mailto .link-label{color:#aaa}.link-item--mailto .link-arrow{color:#555}
