*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}:root{--bg:#111110;--bg-raised:#1a1a18;--bg-subtle:#161614;--text:#d4cfc4;--text-dim:#7a766b;--text-faint:#4a473f;--accent:#c9a84c;--accent-dim:#8a7234;--accent-bright:#e4c565;--serif:'Cormorant Garamond',Georgia,'Times New Roman',serif;--mono:'IBM Plex Mono','Courier New',monospace;--sans:'Inter',-apple-system,system-ui,sans-serif;--measure:72ch}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background:var(--bg);color:var(--text);font-family:var(--sans);font-weight:300;line-height:1.7;min-height:100vh;overflow-x:hidden}body::before{content:'';position:fixed;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");pointer-events:none;z-index:9999}.page{max-width:1200px;margin:0 auto;padding:0 2rem}header{padding:3rem 0 2rem;border-bottom:1px solid var(--text-faint)}.mark{font-family:var(--mono);font-size:.8125rem;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:var(--accent)}.hero{padding:6rem 0 5rem;position:relative}.hero::after{content:'';position:absolute;right:-2rem;top:3rem;width:1px;height:calc(100% - 3rem);background:linear-gradient(to bottom,var(--text-faint),transparent)}.hero h1{font-family:var(--serif);font-size:clamp(3rem,8vw,5.5rem);font-weight:400;line-height:1.05;color:var(--text);max-width:14ch;letter-spacing:-.02em}.hero h1 em{font-style:italic;color:var(--accent)}.hero-sub{margin-top:2.5rem;font-family:var(--mono);font-size:.875rem;line-height:1.8;color:var(--text-dim);max-width:52ch}.hero-sub strong{color:var(--text);font-weight:500}.divider{display:flex;align-items:center;gap:1.5rem;padding:1rem 0;color:var(--text-faint);font-family:var(--mono);font-size:.6875rem;letter-spacing:.2em;text-transform:uppercase}.divider::before,.divider::after{content:'';flex:1;height:1px;background:var(--text-faint)}.projects{padding:4rem 0}.project{display:grid;grid-template-columns:1fr 1fr;gap:4rem;padding:4rem 0;border-top:1px solid var(--text-faint);position:relative}.project:last-child{border-bottom:1px solid var(--text-faint)}.project-num{position:absolute;top:4rem;left:-2rem;font-family:var(--mono);font-size:.6875rem;color:var(--text-faint);writing-mode:vertical-lr;letter-spacing:.15em}.project-header{display:flex;flex-direction:column;gap:1.5rem}.project-name{font-family:var(--serif);font-size:clamp(2rem,4vw,3.25rem);font-weight:600;line-height:1.1;color:var(--text);letter-spacing:-.01em}.project-name a{color:inherit;text-decoration:none;transition:color .3s ease}.project-name a:hover{color:var(--accent)}.project-tagline{font-family:var(--mono);font-size:.8125rem;color:var(--accent);font-weight:400;letter-spacing:.05em}.project-desc{font-size:.9375rem;color:var(--text-dim);line-height:1.8;max-width:48ch}.project-body{display:flex;flex-direction:column;gap:2rem}.project-detail{font-size:.875rem;line-height:1.8;color:var(--text-dim)}.project-detail p+p{margin-top:1rem}.sql-frag{margin-top:2rem;padding:1.25rem 1.5rem;background:var(--bg-subtle);border:1px solid var(--text-faint);border-left:3px solid var(--accent-dim);font-family:var(--mono);font-size:.75rem;line-height:2;color:var(--text-dim);overflow-x:auto}.sql-frag .kw{color:var(--accent)}.sql-frag .fn{color:#8a9a7b}.sql-frag .str{color:#b07a5b}.sql-frag .cmt{color:var(--text-faint);font-style:italic}.concepts{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.5rem}.concept{font-family:var(--mono);font-size:.6875rem;padding:.3rem .7rem;border:1px solid var(--text-faint);color:var(--text-dim);letter-spacing:.05em}footer{padding:4rem 0 3rem;display:flex;justify-content:space-between;align-items:baseline;font-family:var(--mono);font-size:.75rem;color:var(--text-faint)}footer a{color:var(--text-dim);text-decoration:none;transition:color .3s ease}footer a:hover{color:var(--accent)}@media(max-width:768px){.page{padding:0 1.25rem}.hero{padding:4rem 0 3rem}.hero::after{display:none}.project{grid-template-columns:1fr;gap:2rem;padding:3rem 0}.project-num{display:none}footer{flex-direction:column;gap:1rem}}@keyframes rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.hero h1{animation:rise .8s ease both}.hero-sub{animation:rise .8s ease .15s both}.project:nth-child(1){animation:rise .6s ease .3s both}.project:nth-child(2){animation:rise .6s ease .45s both}