@font-face{font-family:Geist;src:url(../media/GeistVF.40fv_8nktjm_5.woff)format("woff");font-weight:100 900;font-display:swap}@font-face{font-family:Geist Mono;src:url(../media/GeistMonoVF.0kq4e1146y5_w.woff)format("woff");font-weight:100 900;font-display:swap}:root{--ink:#f0eee6;--muted:#9d9f98;--quiet:#6d706b;--black:#070908;--surface:#0e1110;--surface-raised:#151917;--line:#2b302d;--line-strong:#3d4440;--green:#b9f227;--green-dark:#789e12;--amber:#ffb000;--blue:#65a4ff;--violet:#c58cff;--max-width:1600px;--gutter:clamp(1.25rem, 4vw, 4.5rem)}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--black);scroll-padding-top:4rem}body{color:var(--ink);background:radial-gradient(circle at 75% 10%, #b9f2270e, transparent 28rem), radial-gradient(circle at 5% 55%, #65a4ff0b, transparent 32rem), var(--black);-webkit-font-smoothing:antialiased;margin:0;font-family:Geist,system-ui,sans-serif}body:before{z-index:20;pointer-events:none;content:"";opacity:.035;background-image:repeating-linear-gradient(0deg,#0000,#0000 2px,#fffc 3px);position:fixed;inset:0}::selection{color:var(--black);background:var(--green)}a{color:inherit}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}:focus-visible{outline:2px solid var(--green);outline-offset:4px}.skip-link{z-index:100;color:var(--black);background:var(--green);padding:.75rem 1rem;font-family:Geist Mono,monospace;position:fixed;top:.75rem;left:.75rem;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.site-frame{background:#070908c2;border:0;width:100%;min-height:100vh;margin:0;overflow:clip}.system-bar{z-index:10;border-bottom:1px solid var(--line-strong);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);letter-spacing:.06em;text-transform:uppercase;background:#0e1110eb;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;min-height:3.25rem;padding:.75rem 1rem;font:600 .78rem/1 Geist Mono,monospace;display:grid;position:sticky;top:0}.system-logo{justify-self:start;text-decoration:none}.system-logo span{color:var(--green);margin-right:.45rem}.system-bar nav{gap:clamp(.75rem,2.5vw,2rem);display:flex}.system-bar nav a{color:var(--muted);text-decoration:none;transition:color .16s}.system-bar nav a:hover{color:var(--ink)}.system-status{color:var(--muted);justify-self:end}.hero{width:min(100%, var(--max-width));min-height:min(780px,100vh - 5rem);padding:clamp(5rem, 9vw, 9rem) var(--gutter);grid-template-columns:minmax(0,1.35fr) minmax(360px,.65fr);align-items:center;gap:clamp(3rem,6vw,6rem);margin:0 auto;display:grid}.hero-kicker,.eyebrow{color:var(--green);letter-spacing:.11em;text-transform:uppercase;margin:0 0 1.25rem;font:650 .78rem/1.5 Geist Mono,monospace}.hero-kicker span{color:var(--quiet);margin:0 .45rem}.hero h1{letter-spacing:-.067em;text-wrap:balance;max-width:840px;margin:0;font-size:clamp(3.3rem,7.5vw,7.5rem);font-weight:670;line-height:.91}.hero-intro{color:#c4c6c0;max-width:680px;margin:2rem 0 0;font-size:clamp(1.05rem,1.6vw,1.35rem);line-height:1.55}.hero-actions{flex-wrap:wrap;gap:.75rem;margin-top:2.5rem;display:flex}.button{border:1px solid var(--line-strong);letter-spacing:.04em;text-transform:uppercase;justify-content:center;align-items:center;gap:1rem;min-height:3rem;padding:.7rem 1rem;font:650 .76rem/1 Geist Mono,monospace;text-decoration:none;transition:transform .16s,background .16s,border-color .16s;display:inline-flex}.button:hover{transform:translateY(-2px)}.button-primary{color:var(--black);border-color:var(--green);background:var(--green)}.button-primary:hover{background:#cffc52}.button-secondary{background:var(--surface-raised)}.button-secondary:hover{border-color:var(--muted)}.hero-console{min-width:0}.window-titlebar{min-height:2.15rem;color:var(--black);letter-spacing:.08em;background:linear-gradient(90deg,#778179,#bdc4be);justify-content:space-between;align-items:center;padding:.55rem .65rem;font:750 .73rem/1 Geist Mono,monospace;display:flex}.window-controls{gap:.3rem;display:flex}.window-controls i{background:#d6d9d6;border:1px solid #0000008c;width:.72rem;height:.72rem;display:block;box-shadow:inset -1px -1px #00000052,inset 1px 1px #fff}.player{background:#222723;border:1px solid #535a55;padding:.35rem;box-shadow:.7rem .7rem #00000052}.player-screen{background:#050806;border:2px inset #374038;margin:.55rem .3rem .4rem;padding:.9rem}.player-display{color:var(--green);align-items:center;gap:.9rem;font-family:Geist Mono,monospace;display:flex}.player-index{letter-spacing:-.12em;font-size:2.5rem;font-weight:700}.player-display p,.player-display strong{margin:0}.player-display p{color:var(--green-dark);letter-spacing:.15em;font-size:.68rem}.player-display strong{text-transform:uppercase;margin-top:.25rem;font-size:.85rem;font-weight:550;display:block}.equalizer{align-items:flex-end;gap:.2rem;height:2.75rem;margin-top:.85rem;display:flex}.equalizer i{background:linear-gradient(to top, var(--green) 0 60%, var(--amber) 60% 82%, #ff5454 82%);width:100%;height:22%;animation:.7s steps(5,end) infinite alternate equalize;display:block}@keyframes equalize{0%{height:14%}40%{height:88%}75%{height:36%}to{height:64%}}.player-load{width:calc(100% - .6rem);min-height:3.2rem;color:var(--ink);cursor:pointer;letter-spacing:.06em;text-transform:uppercase;background:#2c322e;border:1px solid #4c534e;margin:.25rem .3rem .45rem;font:650 .76rem/1 Geist Mono,monospace}.player-load:hover{color:var(--green);border-color:var(--green-dark)}.spotify-embed{border:0;margin:.25rem 0 0;display:block}.player-empty{color:var(--muted);text-align:center;border:1px dashed #4c534e;margin:.25rem .3rem .45rem;padding:.85rem;font:.75rem/1.5 Geist Mono,monospace}.player-empty span{color:var(--amber);letter-spacing:.1em}.player-empty p{margin:.3rem 0 0}.player-footer{color:#aab2ac;justify-content:space-between;padding:.15rem .45rem .25rem;font:.64rem/1 Geist Mono,monospace;display:flex}.status-card{border:1px solid var(--line-strong);background:var(--surface);margin:1.35rem 0 0 2.2rem;box-shadow:-.65rem .65rem #b9f22714}.status-card dl{margin:0;padding:1rem}.status-card dl div{border-bottom:1px dashed var(--line);grid-template-columns:5rem 1fr;gap:.75rem;padding:.5rem 0;display:grid}.status-card dl div:last-child{border:0}.status-card dt,.status-card dd{margin:0;font:.74rem/1.45 Geist Mono,monospace}.status-card dt{color:var(--green-dark)}.status-card dd{color:#b8bbb5}.marquee{color:var(--black);background:var(--green);letter-spacing:.07em;white-space:nowrap;padding:.75rem 0;font:750 .78rem/1 Geist Mono,monospace;overflow:hidden}.marquee-track{width:max-content;animation:72s linear infinite ticker;display:flex}.marquee-group{flex:none;display:flex}.marquee-group span{flex:none;padding-right:1.2rem}.marquee-group i{font-style:normal}@keyframes ticker{to{transform:translate(-50%)}}.section{padding:clamp(5rem, 10vw, 9rem) var(--gutter);border-bottom:1px solid var(--line);scroll-margin-top:3rem}.section-heading{width:min(100%, var(--max-width));grid-template-columns:clamp(3rem,7vw,6rem) minmax(0,1fr);gap:1rem;margin:0 auto clamp(3rem,7vw,6rem);display:grid}.section-index{color:var(--quiet);font:.78rem/1.5 Geist Mono,monospace}.section-heading .eyebrow{margin-bottom:.8rem}.section-heading h2,.contact-section h2{letter-spacing:-.055em;text-wrap:balance;max-width:850px;margin:0;font-size:clamp(2.4rem,5.2vw,5rem);font-weight:620;line-height:.98}.section-description{max-width:610px;color:var(--muted);margin:1.5rem 0 0;font-size:1.03rem;line-height:1.65}.project-list{width:min(100%, var(--max-width));border-top:1px solid var(--line-strong);margin:0 auto}.project-card{--accent:var(--green);border-bottom:1px solid var(--line-strong);grid-template-columns:4rem minmax(0,1.2fr) minmax(250px,.8fr);gap:clamp(1.2rem,4vw,4rem);padding:clamp(2rem,4vw,3.5rem) 0;display:grid;position:relative}.accent-green{--accent:var(--green)}.accent-amber{--accent:var(--amber)}.accent-blue{--accent:var(--blue)}.accent-violet{--accent:var(--violet)}.project-card:before{z-index:-1;content:"";opacity:0;background:linear-gradient(90deg, color-mix(in srgb, var(--accent) 7%, transparent), transparent 55%);transition:opacity .22s;position:absolute;inset:0}.project-card:hover:before{opacity:1}.project-track{color:var(--accent);font:700 1rem/1 Geist Mono,monospace}.project-main .eyebrow{color:var(--accent)}.project-main h3{letter-spacing:-.045em;max-width:650px;margin:0;font-size:clamp(1.8rem,3.4vw,3.25rem);font-weight:600;line-height:1.05}.project-main>p:not(.eyebrow){max-width:650px;color:var(--muted);margin:1.25rem 0 0;font-size:1.05rem;line-height:1.65}.impact-list{margin:1.5rem 0 0;padding:0;list-style:none}.impact-list li{color:#c1c3be;padding:.4rem 0 .4rem 1.2rem;font-size:.98rem;line-height:1.5;position:relative}.impact-list li:before{color:var(--accent);content:">";font-family:Geist Mono,monospace;position:absolute;left:0}.project-meta{flex-direction:column;justify-content:space-between;align-items:flex-start;gap:2rem;display:flex}.tech-list{flex-wrap:wrap;gap:.4rem;display:flex}.tech-list span{color:var(--muted);border:1px solid var(--line);background:var(--surface);padding:.38rem .48rem;font:.7rem/1 Geist Mono,monospace}.text-link{color:var(--ink);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:.4rem;text-transform:uppercase;font:650 .76rem/1.3 Geist Mono,monospace}.text-link:hover{color:var(--accent)}.experience-section{background:linear-gradient(135deg,#ffb00009,#0000 45%)}.experience-player{width:min(100%, var(--max-width));border:1px solid var(--line-strong);background:#0b0e0c;margin:0 auto;box-shadow:.8rem .8rem #ffb00012}.experience-screen{color:var(--amber);letter-spacing:.06em;background:#111612;border-bottom:1px solid #373c38;justify-content:space-between;gap:1rem;padding:1rem 1.2rem;font:.75rem/1.4 Geist Mono,monospace;display:flex}.experience-screen strong{color:#8b7850;font-weight:500}.experience-list details{border-bottom:1px solid var(--line)}.experience-list details:last-child{border-bottom:0}.experience-list summary{cursor:pointer;grid-template-columns:3rem 1fr auto 2rem;align-items:center;gap:1rem;padding:1.3rem 1.2rem;list-style:none;transition:background .16s;display:grid}.experience-list summary::-webkit-details-marker{display:none}.experience-list summary:hover{background:var(--surface-raised)}.experience-number{color:var(--quiet);font:.75rem/1 Geist Mono,monospace}.experience-company strong,.experience-company small{display:block}.experience-company strong{font-size:1.03rem;font-weight:580}.experience-company small,.experience-period{color:var(--muted);margin-top:.18rem;font-size:.82rem}.experience-period{margin:0;font-family:Geist Mono,monospace}.experience-toggle{color:var(--amber);text-align:center;font:1.4rem/1 Geist Mono,monospace;transition:transform .16s}details[open] .experience-toggle{transform:rotate(45deg)}.experience-detail{color:var(--muted);padding:0 5.2rem 2rem;line-height:1.6}.experience-detail>p:first-child{color:#c3c5bf}.experience-detail ul{padding-left:1.1rem}.experience-detail li{margin:.35rem 0}.experience-tech{color:var(--amber);text-transform:uppercase;font:.72rem/1.5 Geist Mono,monospace}.about-section{background:radial-gradient(circle at 85% 55%,#c58cff12,#0000 24rem)}.about-grid{width:min(100%, var(--max-width));grid-template-columns:minmax(0,1fr) minmax(280px,.52fr);align-items:center;gap:clamp(3rem,9vw,8rem);margin:0 auto;padding-left:clamp(0rem,5vw,5rem);display:grid}.about-copy{max-width:690px}.about-copy p{color:#c1c3bd;margin:0 0 1.4rem;font-size:clamp(1.05rem,1.7vw,1.3rem);line-height:1.7}.about-copy p:first-child:first-letter{float:left;color:var(--violet);margin:.05em .12em 0 0;font:650 4.3rem/.8 Geist,sans-serif}.memory-card{transform:rotate(2deg)}.memory-tape{aspect-ratio:1.55;color:#1a1712;background:linear-gradient(#d7cdb3 0 52%,#df6d5c 52% 70%,#d9cfb7 70%);border:.65rem solid #252826;border-radius:.4rem;flex-direction:column;justify-content:space-between;padding:1rem;font:750 .7rem/1 Geist Mono,monospace;display:flex;box-shadow:1rem 1.2rem #00000040}.tape-reels{background:#f5eedacc;border-radius:3rem;justify-content:space-around;align-items:center;width:78%;height:42%;margin:auto;display:flex}.tape-reels i{aspect-ratio:1;background:#f3ebd5;border:.5rem dotted #252826;border-radius:50%;width:2.5rem}.memory-card>p{color:var(--muted);margin:1.6rem 0 0;font:.78rem/1.6 Geist Mono,monospace}.portrait-card{color:#24201a;background:#ddd4be;margin:0;padding:.6rem .6rem .8rem;box-shadow:1rem 1.2rem #00000040}.portrait-card img{filter:saturate(.82)contrast(1.04);width:100%;height:auto;display:block}.portrait-card figcaption{text-transform:uppercase;padding:.7rem .35rem .15rem;font:700 .65rem/1 Geist Mono,monospace}.contact-section{padding:clamp(6rem, 12vw, 11rem) var(--gutter);scroll-margin-top:3rem}.contact-section h2{max-width:940px}.contact-email{color:var(--green);text-underline-offset:.5rem;margin-top:3rem;font-size:clamp(1rem,2.5vw,1.8rem);text-decoration-thickness:1px;display:inline-block}.social-links{flex-wrap:wrap;gap:.7rem;margin-top:3rem;display:flex}.social-links a{border:1px solid var(--line-strong);background:var(--surface);text-transform:uppercase;padding:.7rem .9rem;font:650 .72rem/1 Geist Mono,monospace;text-decoration:none}.social-links a:hover{color:var(--black);border-color:var(--green);background:var(--green)}footer{padding:1.2rem var(--gutter);color:var(--quiet);border-top:1px solid var(--line);text-transform:uppercase;justify-content:space-between;gap:1rem;font:.7rem/1.5 Geist Mono,monospace;display:flex}.case-page{--accent:var(--green);background:radial-gradient(circle at 80% 10%, color-mix(in srgb, var(--accent) 8%, transparent), transparent 32rem);min-height:100vh}.case-page.accent-green{--accent:var(--green)}.case-page.accent-amber{--accent:var(--amber)}.case-page.accent-blue{--accent:var(--blue)}.case-page.accent-violet{--accent:var(--violet)}.case-topbar{padding:1rem var(--gutter);color:var(--muted);border-bottom:1px solid var(--line);justify-content:space-between;gap:2rem;font:.72rem/1.4 Geist Mono,monospace;display:flex}.case-topbar a{color:var(--accent);text-decoration:none}.case-page article{width:min(100%, var(--max-width));padding:clamp(4rem, 9vw, 9rem) var(--gutter);margin:auto}.case-hero{max-width:920px}.case-hero .eyebrow{color:var(--accent)}.case-hero h1{letter-spacing:-.065em;text-wrap:balance;margin:0;font-size:clamp(3.2rem,8vw,7rem);font-weight:650;line-height:.94}.case-hero>p:last-child{max-width:720px;color:var(--muted);margin-top:2rem;font-size:clamp(1.1rem,2vw,1.4rem);line-height:1.6}.case-layout{border-top:1px solid var(--line-strong);grid-template-columns:1.2fr .8fr;gap:clamp(3rem,10vw,9rem);margin-top:clamp(5rem,10vw,9rem);padding-top:2rem;display:grid}.case-layout h2{color:var(--accent);letter-spacing:.08em;text-transform:uppercase;font:650 .75rem/1.5 Geist Mono,monospace}.case-story p,.case-layout aside{color:#bdc0ba;font-size:1.05rem;line-height:1.75}.case-contributions{border-top:1px solid var(--line);margin-top:3rem;padding-top:1.5rem}.case-contributions ul{gap:.9rem;margin:1.25rem 0 0;padding:0;list-style:none;display:grid}.case-contributions li{color:#bdc0ba;padding-left:1.5rem;font-size:1rem;line-height:1.65;position:relative}.case-contributions li:before{color:var(--accent);content:">";font-family:Geist Mono,monospace;position:absolute;left:0}.case-layout aside section{margin-bottom:2.5rem}.case-layout aside ul{padding-left:1.2rem}.case-layout aside li{margin:.6rem 0}.case-layout .button-primary{--green:var(--accent)}.admin-shell,.admin-state{color:#eceee9;background:#090b0a;min-height:100vh}.admin-state{border:1px solid var(--line-strong);width:min(100% - 2rem,520px);min-height:auto;margin:12vh auto;box-shadow:1rem 1rem #b9f22712}.admin-state-body{flex-direction:column;align-items:flex-start;gap:1rem;padding:2rem;display:flex}.admin-state h1,.admin-state p{margin:0}.admin-state p{color:var(--muted);line-height:1.6}.admin-state a{color:var(--green)}.admin-header{z-index:5;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:#090b0af0;justify-content:space-between;align-items:center;gap:2rem;padding:1.25rem 2rem;display:flex;position:sticky;top:0}.admin-header h1,.admin-header p{margin:0}.admin-header h1{margin-top:.25rem;font-size:1.6rem}.admin-actions{align-items:center;gap:.6rem;display:flex}.admin-actions a,.admin-actions button,.admin-primary,.admin-add{min-height:2.6rem;color:var(--ink);border:1px solid var(--line-strong);background:var(--surface-raised);cursor:pointer;text-transform:uppercase;padding:.65rem .85rem;font:650 .68rem/1 Geist Mono,monospace;text-decoration:none}.admin-actions .admin-primary,.admin-primary{color:var(--black);border-color:var(--green);background:var(--green)}.admin-actions button:disabled{cursor:wait;opacity:.65}.admin-layout{grid-template-columns:210px minmax(0,1fr);min-height:calc(100vh - 5.5rem);display:grid}.admin-tabs{border-right:1px solid var(--line);padding:1.5rem}.admin-tabs button{width:100%;color:var(--muted);border:0;border-bottom:1px solid var(--line);cursor:pointer;text-align:left;text-transform:uppercase;background:0 0;padding:.85rem;font:650 .7rem/1 Geist Mono,monospace;display:block}.admin-tabs button.active{color:var(--black);background:var(--green)}.admin-editor{min-width:0;padding:clamp(1.5rem,4vw,4rem)}.admin-panel{max-width:980px}.admin-editor-title{margin-bottom:2.5rem}.admin-editor-title h2{letter-spacing:-.045em;margin:0;font-size:clamp(2rem,4vw,3.5rem)}.admin-editor-title p{max-width:600px;color:var(--muted);line-height:1.6}.admin-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.admin-field{gap:.45rem;margin-bottom:1rem;display:grid}.admin-field>span{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;font:650 .65rem/1.3 Geist Mono,monospace}.admin-field input,.admin-field textarea,.admin-field select{width:100%;color:var(--ink);border:1px solid var(--line-strong);background:var(--surface);border-radius:0;padding:.85rem}.admin-field textarea{resize:vertical;line-height:1.5}.admin-field input:focus,.admin-field textarea:focus,.admin-field select:focus{border-color:var(--green);outline:1px solid var(--green)}.admin-field small,.admin-note{color:var(--quiet);font:.68rem/1.5 Geist Mono,monospace}.admin-record{border:1px solid var(--line);background:#0e1110b3;margin-bottom:1.5rem;padding:1.25rem}.admin-record-title{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.2rem;padding-bottom:.8rem;display:flex}.admin-record-title button{color:#ff8989;cursor:pointer;background:0 0;border:0;font-size:.72rem}.admin-add{width:100%;color:var(--green);background:0 0;border-style:dashed}.admin-status{font-family:Geist Mono,monospace;color:var(--amber)!important}.admin-toast{z-index:8;max-width:420px;color:var(--black);background:var(--green);margin:0;padding:.9rem 1rem;font:650 .7rem/1.5 Geist Mono,monospace;position:fixed;bottom:1.5rem;right:1.5rem;box-shadow:.5rem .5rem #00000080}@media (max-width:900px){.system-bar{grid-template-columns:1fr auto}.system-bar nav{display:none}.hero{grid-template-columns:1fr;min-height:auto}.hero-console{max-width:600px}.project-card{grid-template-columns:3rem 1fr}.project-meta{grid-column:2}.about-grid{grid-template-columns:1fr;padding-left:0}.memory-card{width:min(100%,430px)}.admin-layout{grid-template-columns:1fr}.admin-tabs{z-index:4;border-right:0;border-bottom:1px solid var(--line);background:var(--black);padding:0;display:flex;position:sticky;top:5.5rem;overflow-x:auto}.admin-tabs button{border-right:1px solid var(--line);border-bottom:0;width:auto;min-width:8rem}}@media (max-width:620px){.site-frame{width:100%}.system-status{display:none}.hero{padding-top:4.5rem}.hero h1{font-size:clamp(3rem,16vw,5rem)}.hero-actions{flex-direction:column;align-items:stretch}.status-card{margin-left:.8rem}.section-heading{grid-template-columns:1fr}.project-card{grid-template-columns:2rem 1fr;gap:.8rem}.experience-screen{flex-direction:column;align-items:flex-start}.experience-list summary{grid-template-columns:2rem 1fr 1.5rem;gap:.7rem;padding-right:.8rem}.experience-period{grid-column:2}.experience-toggle{grid-area:1/3/span 2}.experience-detail{padding:0 1rem 1.5rem 3.7rem}.contact-email{overflow-wrap:anywhere}footer{flex-direction:column;align-items:flex-start}.case-topbar span{display:none}.case-layout{grid-template-columns:1fr}.admin-header{flex-direction:column;align-items:flex-start;padding:1rem;position:static}.admin-actions{flex-wrap:wrap;width:100%}.admin-actions .admin-primary{flex-grow:1}.admin-tabs{top:0}.admin-grid{grid-template-columns:1fr}.admin-editor{padding:1rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
