@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.06d3mdzz5bre_.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.11.cyxs5p-0z~.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.16t1db8_9y2o~.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_a71539c9-module__T19VSG__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_a71539c9-module__T19VSG__variable{--font-geist-sans:"Geist", "Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.0q3udbd2bu5yp.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.0gw~uztddq1df.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_8d43a2aa-module__8Li5zG__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_8d43a2aa-module__8Li5zG__variable{--font-geist-mono:"Geist Mono", "Geist Mono Fallback"}
*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--ink:#f0ede4;--paper:#0a0a08;--paper2:#111110;--accent:#c8a84b;--muted:#6a6860;--rule:#f0ede414;--font-display:"Bebas Neue", sans-serif;--font-body:"Fraunces", serif;--font-mono:"DM Mono", monospace}html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.grain-overlay,.avail-dot,.footer-clock-dot{animation:none}.typed-cursor{opacity:.6;animation:none}}body{background:var(--paper);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;cursor:none;overflow-x:hidden}.cursor-pill{background:var(--accent);height:30px;color:var(--paper);font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;pointer-events:none;z-index:9999;transform-origin:50%;mix-blend-mode:normal;will-change:transform;border-radius:999px;justify-content:center;align-items:center;min-width:30px;padding:0 14px;font-size:10.5px;font-weight:500;display:flex;position:fixed;top:0;left:0;translate:-50% -50%}.cursor-ring{pointer-events:none;z-index:9998;transform-origin:50%;will-change:transform;width:88px;height:88px;position:fixed;top:0;left:0;translate:-50% -50%}@media (pointer:coarse){.cursor-pill,.cursor-ring{display:none}body{cursor:auto}}.cursor-ring svg{width:100%;height:100%}.cursor-ring text{font-family:var(--font-mono);fill:var(--ink);letter-spacing:3.6px;text-transform:uppercase;font-size:9.5px}.nav-indicator{background:var(--accent);height:1.5px;position:absolute;bottom:-2px;left:0;right:0}.portfolio-nav{z-index:100;background:var(--paper);border-bottom:1.5px solid var(--ink);justify-content:space-between;align-items:center;height:52px;padding:0 3rem;display:flex;position:sticky;top:0}.nav-logo{font-family:var(--font-display);letter-spacing:.05em;color:var(--ink);flex-shrink:0;font-size:22px}.nav-logo em{color:var(--accent);font-style:normal}.nav-links{gap:2rem;display:flex}.nav-btn{font-family:var(--font-mono);letter-spacing:.15em;text-transform:uppercase;color:var(--muted);cursor:none;white-space:nowrap;background:0 0;border:none;padding:0;font-size:11px;transition:color .15s;position:relative}.nav-btn:hover,.nav-btn--active{color:var(--ink)}.hero{border-bottom:1.5px solid var(--ink);grid-template-columns:1fr 1fr;align-items:end;gap:3rem;padding:5rem 3rem 4rem;display:grid}.kicker{font-family:var(--font-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--muted);align-items:center;gap:.75rem;margin-bottom:1.5rem;font-size:11px;display:flex}.kicker:before{content:"";background:var(--accent);flex-shrink:0;width:28px;height:1.5px;display:inline-block}.hero-headline{flex-direction:column;display:flex;overflow:hidden}.hero-word{font-family:var(--font-display);letter-spacing:.01em;color:var(--ink);will-change:transform;font-size:clamp(56px,9vw,118px);line-height:.93;display:block}.accent-text{color:var(--accent)}.hero-right{padding-bottom:.5rem}.hero-desc{color:var(--ink);max-width:400px;margin-bottom:1.5rem;font-size:1.05rem;font-style:italic;font-weight:300;line-height:1.8}.btn-group{flex-wrap:wrap;gap:1rem;margin-bottom:3rem;display:flex}.btn-primary,.btn-secondary{font-family:var(--font-mono);letter-spacing:.15em;text-transform:uppercase;cursor:none;border:1.5px solid var(--ink);padding:12px 28px;font-size:11px;transition:all .18s}.btn-primary{background:var(--ink);color:var(--paper)}.btn-primary:hover{background:var(--accent);border-color:var(--accent);color:var(--paper)}.btn-secondary{color:var(--ink);background:0 0}.btn-secondary:hover{border-color:var(--accent);color:var(--accent)}.scroll-hint{align-items:center;gap:.75rem;display:flex}.scroll-line{background:var(--ink);transform-origin:top;width:1.5px;height:40px;display:block}.marquee-track{border-top:1px solid var(--rule);border-bottom:1.5px solid var(--ink);background:var(--paper2);padding:.85rem 0;overflow:hidden}.marquee-inner{white-space:nowrap;width:max-content;display:flex}.marquee-item{font-family:var(--font-display);letter-spacing:.06em;color:var(--ink);padding:0 1.5rem;font-size:18px;transition:color .15s}.marquee-item:hover{color:var(--accent)}.marquee-dot{font-family:var(--font-mono);color:var(--accent);align-items:center;padding:0 .25rem;font-size:14px;display:inline-flex}.section{border-bottom:1.5px solid var(--ink)}.section-inner{padding:3.5rem 3rem}.section-label{font-family:var(--font-mono);letter-spacing:.25em;text-transform:uppercase;color:var(--muted);align-items:center;gap:.85rem;margin-bottom:2.5rem;font-size:10px;display:flex}.section-label:after{content:"";background:var(--rule);flex:1;height:1px;margin-left:.4rem}.section-num{font-family:var(--font-mono);color:var(--accent);letter-spacing:.2em;font-weight:500}.section-dash{color:var(--rule);font-weight:400}.section-name{color:var(--ink);letter-spacing:.28em}.about-grid{grid-template-columns:160px 1fr;align-items:start;gap:4rem;display:grid}.about-number{font-family:var(--font-display);color:var(--paper2);-webkit-text-stroke:1.5px var(--ink);letter-spacing:-.02em;-webkit-user-select:none;user-select:none;will-change:transform;font-size:110px;line-height:1;display:block}.about-content{flex-direction:column;gap:2rem;max-width:640px;padding-top:.25rem;display:flex}.about-text{color:var(--ink);font-size:1.1rem;font-weight:300;line-height:1.85}.about-text--pull{color:var(--muted);border-left:1.5px solid var(--accent);padding-left:1.25rem;font-size:1rem;font-style:italic;line-height:1.8}.about-facts{border-top:1px solid var(--rule);grid-template-columns:repeat(2,1fr);gap:1.5rem 2.5rem;margin-top:1rem;padding-top:1.75rem;display:grid}.about-fact{flex-direction:column;gap:.4rem;display:flex}.about-fact dt{font-family:var(--font-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--accent);font-size:10px;font-weight:500}.about-fact dd{font-family:var(--font-body);color:var(--ink);font-size:.98rem;font-weight:300;line-height:1.5}@media (max-width:640px){.about-content{gap:1.5rem}.about-facts{grid-template-columns:1fr;gap:1.1rem;padding-top:1.25rem}.about-text--pull{padding-left:1rem;font-size:.95rem}}.tech-grid{grid-template-columns:repeat(3,1fr);gap:1.5rem;display:grid}.tech-card{background:var(--paper2);border:1px solid var(--rule);border-radius:18px;height:100%;padding:2rem 1.75rem 1.75rem;transition:border-color .25s,transform .3s;position:relative;overflow:hidden}.tech-card:before{content:"";background:linear-gradient(90deg, transparent, var(--accent), transparent);opacity:0;height:1px;transition:opacity .3s;position:absolute;top:0;left:0;right:0}.tech-card:hover{border-color:#c8a84b52;transform:translateY(-2px)}.tech-card:hover:before{opacity:.8}.tech-card-title{font-family:var(--font-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--accent);border-bottom:1px solid var(--rule);margin-bottom:1.25rem;padding-bottom:.85rem;font-size:11px;font-weight:500}.tech-chips{flex-wrap:wrap;gap:.5rem;display:flex}.tech-chip{background:var(--paper);border:1px solid var(--rule);font-family:var(--font-mono);letter-spacing:.05em;color:var(--ink);cursor:none;white-space:nowrap;border-radius:999px;align-items:center;gap:.55rem;padding:7px 13px;font-size:11px;transition:border-color .18s,transform .2s,background .2s;display:inline-flex}.tech-chip:hover{background:#c8a84b0d;border-color:#c8a84b8c;transform:translateY(-2px)}.tech-chip-icon{flex-shrink:0;width:14px;height:14px;display:block}.tech-chip-icon--custom{color:var(--ink);opacity:.78;justify-content:center;align-items:center;transition:color .2s,opacity .2s;display:inline-flex}.tech-chip-icon--custom svg{width:14px;height:14px;display:block}.tech-chip:hover .tech-chip-icon--custom{color:var(--accent);opacity:1}.tech-chip-label{line-height:1}.project-index{border-top:1px solid var(--rule);margin:2rem 0 0;padding:0;list-style:none}.project-row{border-bottom:1px solid var(--rule);position:relative}.project-row:before{content:"";background:var(--accent);z-index:1;width:0;height:1px;transition:width .55s cubic-bezier(.22,1,.36,1);position:absolute;bottom:-1px;left:0}.project-row--linked:hover:before{width:100%}.project-row-link{color:inherit;cursor:none;grid-template-columns:60px 90px 1fr 48px;align-items:start;gap:2.5rem;padding:2.25rem 0;text-decoration:none;transition:padding-left .45s cubic-bezier(.22,1,.36,1);display:grid}.project-row--linked .project-row-link:hover{padding-left:1.5rem}.project-row-link--static{cursor:none;opacity:.78}.project-row-num{font-family:var(--font-mono);letter-spacing:.2em;color:var(--accent);padding-top:1.1rem;font-size:10.5px;font-weight:500}.project-row-year{font-family:var(--font-mono);letter-spacing:.2em;color:var(--muted);padding-top:1.1rem;font-size:10.5px;transition:color .2s}.project-row--linked .project-row-link:hover .project-row-year{color:var(--ink)}.project-row-main{flex-direction:column;gap:.85rem;min-width:0;display:flex}.project-row-title{font-family:var(--font-display);letter-spacing:.02em;color:var(--ink);font-size:clamp(40px,5.2vw,72px);line-height:.95;transition:color .2s,transform .4s cubic-bezier(.22,1,.36,1)}.project-row--linked .project-row-link:hover .project-row-title{color:var(--accent);transform:translate(6px)}.project-row-desc{font-family:var(--font-body);color:var(--muted);max-width:560px;font-size:1.05rem;font-style:italic;font-weight:300;line-height:1.7}.project-row-tags{flex-wrap:wrap;gap:.45rem;margin-top:.35rem;display:flex}.project-row-tag{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);border:1px solid var(--rule);border-radius:999px;padding:4px 11px;font-size:10px;transition:border-color .2s,color .2s}.project-row--linked .project-row-link:hover .project-row-tag{color:var(--ink);border-color:#c8a84b66}.project-row-arrow{font-family:var(--font-display);color:var(--accent);justify-self:end;padding-top:.6rem;font-size:30px;line-height:1;transition:transform .35s cubic-bezier(.22,1,.36,1)}.project-row--linked .project-row-link:hover .project-row-arrow{transform:translate(8px,-8px)}.project-row-soon{font-family:var(--font-mono);letter-spacing:.18em;color:var(--accent);white-space:nowrap;background:#c8a84b14;border:1px solid #c8a84b80;border-radius:999px;place-self:start end;margin-top:.6rem;padding:.35rem .6rem;font-size:10px;font-weight:600}.exp-row{border-top:1px solid var(--rule);grid-template-columns:200px 1fr;align-items:start;gap:3rem;padding:1.5rem 0;display:grid}.exp-year{font-family:var(--font-mono);letter-spacing:.15em;color:var(--muted);padding-top:.2rem;font-size:11px}.exp-content h3{font-family:var(--font-display);letter-spacing:.02em;color:var(--ink);margin-bottom:.5rem;font-size:28px}.exp-company{color:var(--muted);font-family:var(--font-display);letter-spacing:.02em}.exp-content p{color:var(--muted);max-width:520px;font-size:.95rem;font-weight:300;line-height:1.75}.contact-section{border-bottom:1.5px solid var(--ink);grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:end;gap:3rem;padding:5rem 3rem;display:grid}.contact-right{align-self:end;width:100%}.contact-big{font-family:var(--font-display);letter-spacing:.02em;color:var(--ink);font-size:clamp(40px,7vw,96px);line-height:1}.contact-icon{width:16px;height:16px;color:var(--accent);flex-shrink:0;transition:transform .25s,color .15s}.contact-left{flex-direction:column;gap:2.25rem;min-width:0;display:flex}.contact-email{color:var(--ink);font-family:var(--font-body);letter-spacing:-.01em;z-index:2;pointer-events:auto;cursor:none;flex-wrap:wrap;align-items:baseline;gap:.6rem;width:fit-content;max-width:100%;padding-bottom:6px;font-size:clamp(18px,2.2vw,28px);font-style:italic;font-weight:300;line-height:1.1;text-decoration:none;display:inline-flex;position:relative}@media (pointer:coarse){.contact-email{cursor:pointer}}.contact-email-kicker{font-family:var(--font-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--muted);font-size:10px;font-style:normal;font-weight:400}.contact-email-addr{font-variant-ligatures:none;word-break:break-all;position:relative}.contact-email-addr:after{content:"";background:var(--accent);transform-origin:0;height:1px;transition:transform .4s;position:absolute;bottom:-4px;left:0;right:0;transform:scaleX(.18)}.contact-email-arrow{font-family:var(--font-mono);color:var(--accent);font-size:.7em;transition:transform .25s;display:inline-block}.contact-email:hover .contact-email-addr{color:var(--accent)}.contact-email:hover .contact-email-addr:after{transform:scaleX(1)}.contact-email:hover .contact-email-arrow{transform:translate(3px,-3px)}.contact-email.is-copied .contact-email-kicker,.contact-email.is-copied .contact-email-addr{color:var(--accent)}.contact-email.is-copied .contact-email-addr:after{transform:scaleX(1)}.contact-email.is-copied .contact-email-arrow{color:var(--accent);transform:scale(1.15)}@media (max-width:640px){.contact-left{gap:1.5rem}.contact-email{font-size:16px}}.contact-form{border-top:1px solid var(--rule);flex-direction:column;gap:1.75rem;max-width:520px;margin-top:.5rem;padding-top:2rem;display:flex}.contact-form-field{flex-direction:column;gap:.55rem;display:flex}.contact-form-field label{font-family:var(--font-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--accent);justify-content:space-between;align-items:baseline;font-size:10px;font-weight:500;display:flex}.contact-form-count{color:var(--muted);letter-spacing:.15em;font-variant-numeric:tabular-nums;font-weight:400}.contact-form-field input,.contact-form-field textarea{font-family:var(--font-body);color:var(--ink);border:none;border-bottom:1px solid var(--rule);resize:none;cursor:none;appearance:none;background:0 0;border-radius:0;outline:none;width:100%;padding:.5rem 0;font-size:1rem;font-weight:300;transition:border-color .2s,color .2s}.contact-form-field textarea{min-height:96px;line-height:1.6;font-family:var(--font-body)}.contact-form-field input::placeholder,.contact-form-field textarea::placeholder{color:var(--muted);opacity:.5}.contact-form-field input:focus,.contact-form-field textarea:focus{border-bottom-color:var(--accent)}.contact-form-field input:disabled,.contact-form-field textarea:disabled{opacity:.5}.contact-form-error{font-family:var(--font-mono);letter-spacing:.15em;text-transform:uppercase;color:#e6797a;border-left:1.5px solid #e6797a;padding-left:.9rem;font-size:10px;line-height:1.6}.contact-form-submit{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--paper);background:var(--ink);border:1.5px solid var(--ink);cursor:none;align-self:flex-start;margin-top:.25rem;padding:12px 28px;font-size:11px;font-weight:500;transition:background .2s,border-color .2s,color .2s,transform .2s}.contact-form-submit:hover:not(:disabled){background:var(--accent);border-color:var(--accent);transform:translateY(-2px)}.contact-form-submit:disabled{opacity:.55;cursor:not-allowed}.contact-form-success{border-top:1px solid var(--rule);flex-direction:column;align-items:flex-start;gap:1rem;margin-top:.5rem;padding-top:2rem;display:flex}.contact-form-success-line{font-family:var(--font-body);color:var(--ink);font-size:1.3rem;font-style:italic;font-weight:300;line-height:1.4}.contact-form-success-line:before{content:"✓ ";color:var(--accent);font-style:normal;font-weight:500}.contact-form-reset{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--muted);cursor:none;background:0 0;border:none;padding:0;font-size:10px;transition:color .15s}.contact-form-reset:hover{color:var(--accent)}@media (max-width:640px){.contact-form{gap:1.25rem;padding-top:1.5rem}.contact-form-submit{cursor:pointer;text-align:center;width:100%}.contact-form-field input,.contact-form-field textarea,.contact-form-reset{cursor:text}.contact-form-reset{cursor:pointer}}.portfolio-footer{justify-content:space-between;align-items:center;padding:1.25rem 3rem;display:flex}.portfolio-footer span{font-family:var(--font-mono);letter-spacing:.15em;text-transform:uppercase;color:var(--muted);font-size:10px}.page-wipe{background:var(--accent);z-index:9000;transform-origin:100%;pointer-events:none;position:fixed;inset:0}.stats-bar{border-bottom:1.5px solid var(--ink);grid-template-columns:repeat(4,1fr);display:grid}.stat-item{border-right:1px solid var(--rule);flex-direction:column;gap:.25rem;padding:1.75rem 2rem;display:flex}.stat-item:last-child{border-right:none}.stat-num{font-family:var(--font-display);color:var(--ink);letter-spacing:.02em;font-size:42px;line-height:1}.stat-label{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-size:10px}.avail-badge{font-family:var(--font-mono);letter-spacing:.15em;text-transform:uppercase;color:var(--muted);border:1px solid var(--rule);white-space:nowrap;border-radius:999px;align-items:center;gap:.5rem;padding:5px 12px 5px 10px;font-size:10px;display:flex}.avail-badge-accent{color:var(--accent)}.avail-dot{background:#4ade80;border-radius:50%;flex-shrink:0;width:7px;height:7px;animation:2s ease-in-out infinite pulse-dot;box-shadow:0 0 6px #4ade80}@keyframes pulse-dot{0%,to{opacity:1;box-shadow:0 0 6px #4ade80}50%{opacity:.5;box-shadow:0 0 12px #4ade80}}.typed-status{align-items:center;gap:2px;margin-bottom:2rem;display:flex}.typed-text{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink);font-size:11px}.typed-cursor{font-family:var(--font-mono);color:var(--accent);font-size:13px;animation:1s step-end infinite blink}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@media (max-width:900px){.hero{grid-template-columns:1fr;gap:2rem;padding:3.5rem 2rem 3rem}.hero-word{font-size:clamp(56px,12vw,88px)}.about-grid{grid-template-columns:120px 1fr;gap:2rem}.about-number{font-size:88px}.section-inner{padding:3rem 2rem}.portfolio-nav{padding:0 2rem}.nav-links{gap:1.25rem}.stats-bar{grid-template-columns:repeat(2,1fr)}.stat-item{padding:1.25rem}.stat-item:nth-child(2){border-right:none}.stat-item:nth-child(3){border-top:1px solid var(--rule)}.stat-item:nth-child(4){border-top:1px solid var(--rule);border-right:none}.tech-grid{grid-template-columns:1fr;gap:1rem}.tech-card{padding:1.5rem 1.35rem 1.35rem}}@media (max-width:640px){body{cursor:auto}.cursor-pill,.cursor-ring{display:none}.portfolio-nav{height:48px;padding:0 1.25rem}.portfolio-footer-bottom{flex-direction:column;align-items:flex-start;gap:.25rem;padding:1rem 1.25rem}.nav-logo{font-size:18px}.nav-links{gap:.75rem}.nav-btn{letter-spacing:.1em;cursor:pointer;font-size:9px}.avail-badge{display:none}.hero{grid-template-columns:1fr;align-items:start;gap:1.75rem;padding:2.5rem 1.25rem 2rem}.kicker{margin-bottom:1rem}.hero-word{font-size:clamp(52px,15vw,72px)}.hero-desc{max-width:100%;margin-bottom:1rem;font-size:.95rem}.btn-group{margin-bottom:2rem}.btn-primary,.btn-secondary{cursor:pointer;text-align:center;flex:1;padding:11px 22px}.scroll-hint{display:none}.marquee-item{padding:0 1rem;font-size:15px}.section-inner{padding:2rem 1.25rem}.section-label{margin-bottom:1.75rem}.about-grid{grid-template-columns:1fr;gap:0}.about-number{display:none}.about-text{font-size:1rem}.project-row-link{grid-template-columns:50px 1fr 30px;gap:1rem;padding:1.75rem 0}.project-row-year{grid-area:1/2;margin-bottom:.5rem;padding-top:0}.project-row-num{padding-top:.25rem}.project-row-main{grid-area:2/2;gap:.55rem}.project-row-arrow{padding-top:0;font-size:22px}.project-row--linked .project-row-link:hover{padding-left:0}.project-row--linked .project-row-link:hover .project-row-title{transform:none}.project-row-title{font-size:34px}.exp-row{grid-template-columns:1fr;gap:.5rem;padding:1.25rem 0}.exp-content h3{font-size:22px}.contact-section{grid-template-columns:1fr;gap:2rem;padding:3rem 1.25rem}.contact-big{font-size:clamp(36px,12vw,56px)}.contact-section{grid-template-columns:1fr}.contact-social{cursor:pointer;gap:1rem;min-height:84px;padding:1.25rem}.contact-social-icon{width:32px;height:32px}.contact-social-icon .contact-icon{width:26px;height:26px}.portfolio-footer{flex-direction:column;align-items:stretch;padding:0}.portfolio-footer-bottom{flex-wrap:wrap;gap:.5rem 1rem;padding:1rem 1.25rem}.footer-clock{order:2}.stats-bar{grid-template-columns:repeat(2,1fr)}.stat-item{padding:1rem}.stat-item:nth-child(2){border-right:none}.stat-item:nth-child(3){border-top:1px solid var(--rule)}.stat-item:nth-child(4){border-top:1px solid var(--rule);border-right:none}}.portfolio-footer{border-top:1.5px solid var(--ink);flex-direction:column;padding:0}.footer-marquee-track{border-bottom:1px solid var(--rule);background:var(--paper2);padding:1rem 0;overflow:hidden}.footer-marquee-inner{white-space:nowrap;width:max-content;display:flex}.footer-marquee-item{font-family:var(--font-display);letter-spacing:.05em;color:var(--muted);padding:0 1.5rem;font-size:22px;transition:color .15s}.footer-marquee-item:hover{color:var(--ink)}.footer-dot{font-family:var(--font-mono);color:var(--accent);align-items:center;padding:0 .5rem;font-size:16px;display:inline-flex}.portfolio-footer-bottom{justify-content:space-between;align-items:center;padding:1.25rem 3rem;display:flex}.portfolio-footer-bottom span{font-family:var(--font-mono);letter-spacing:.15em;text-transform:uppercase;color:var(--muted);font-size:10px}.grain-overlay{pointer-events:none;z-index:9997;opacity:.025;width:400%;height:400%;animation:12s steps(10,end) infinite grain-shift;position:fixed;inset:-200%}.grain-svg{width:100%;height:100%}@keyframes grain-shift{0%{transform:translate(0)}10%{transform:translate(-5%,-10%)}20%{transform:translate(-15%,5%)}30%{transform:translate(7%,-25%)}40%{transform:translate(-5%,25%)}50%{transform:translate(-15%,10%)}60%{transform:translate(15%)}70%{transform:translateY(15%)}80%{transform:translate(3%,35%)}90%{transform:translate(-10%,10%)}to{transform:translate(0)}}.footer-big{border-bottom:1px solid var(--rule);flex-direction:column;padding:3.5rem 3rem 2.5rem;line-height:.82;display:flex;overflow:hidden}.footer-big-line{font-family:var(--font-display);letter-spacing:.005em;color:var(--ink);font-size:clamp(72px,16vw,220px);display:block}.footer-big-line--alt{color:#0000;-webkit-text-stroke:1.5px var(--ink);align-self:flex-end;margin-top:-.06em}.footer-big-line em{color:var(--accent);-webkit-text-stroke:0;font-style:normal}.contact-socials{flex-direction:column;gap:1rem;width:100%;display:flex}.contact-social{min-height:110px;color:var(--ink);border:1px solid var(--rule);cursor:none;isolation:isolate;background:0 0;border-radius:14px;grid-template-columns:auto 1fr auto;align-items:center;gap:1.5rem;padding:1.75rem 2rem;text-decoration:none;transition:border-color .3s,color .25s,transform .35s cubic-bezier(.22,1,.36,1),box-shadow .35s;display:grid;position:relative;overflow:hidden}.contact-social:before{content:"";background:var(--accent);z-index:0;transition:transform .55s cubic-bezier(.22,1,.36,1);position:absolute;inset:0;transform:translateY(101%)}.contact-social:after{content:"";z-index:2;pointer-events:none;background:linear-gradient(110deg,#0000 0%,#ffffff14 50%,#0000 100%);width:50%;height:100%;transition:left .8s cubic-bezier(.22,1,.36,1);position:absolute;top:0;left:-60%;transform:skew(-18deg)}.contact-social>*{z-index:1;position:relative}.contact-social:hover{border-color:var(--accent);color:var(--bg);box-shadow:-6px 6px 0 var(--ink);transform:translate(-4px)}.contact-social:hover:before{transform:translateY(0)}.contact-social:hover:after{left:140%}.contact-social:hover .contact-social-icon{color:var(--bg);transform:rotate(-8deg)scale(1.08)}.contact-social:hover .contact-social-label{color:var(--bg);opacity:.85}.contact-social:hover .contact-social-meta{color:var(--bg);opacity:.6}.contact-social:hover .contact-social-arrow{transform:translate(5px,-5px)}.contact-social:hover .contact-social-index{color:var(--bg);opacity:.55}.contact-social:hover .contact-social-dot{background:var(--bg);box-shadow:0 0 8px var(--bg)}.contact-social:hover .contact-social-corner{border-color:var(--bg);opacity:1}.contact-social-corner{border:1.5px solid var(--accent);opacity:0;z-index:3;pointer-events:none;width:10px;height:10px;transition:opacity .3s .1s,border-color .25s;position:absolute}.contact-social-corner--tl{border-bottom:0;border-right:0;top:8px;left:8px}.contact-social-corner--tr{border-bottom:0;border-left:0;top:8px;right:8px}.contact-social-corner--bl{border-top:0;border-right:0;bottom:8px;left:8px}.contact-social-corner--br{border-top:0;border-left:0;bottom:8px;right:8px}.contact-social-index{font-family:var(--font-mono);letter-spacing:.18em;color:var(--muted);opacity:.6;z-index:1;font-size:10px;transition:color .2s,opacity .2s;position:absolute;top:.9rem;right:1.1rem}.contact-social-dot{background:var(--accent);width:6px;height:6px;box-shadow:0 0 6px var(--accent);border-radius:50%;margin-right:.55rem;transition:background .2s,box-shadow .2s;animation:2.2s ease-in-out infinite pulse-dot;display:inline-block;transform:translateY(-1px)}.contact-social-meta{color:var(--muted);opacity:.7;margin-left:.55rem;transition:color .2s,opacity .2s}.contact-social-icon{width:44px;height:44px;color:var(--accent);flex-shrink:0;justify-content:center;align-items:center;transition:color .2s,transform .35s cubic-bezier(.22,1,.36,1);display:inline-flex}.contact-social-icon .contact-icon{width:36px;height:36px;color:inherit}.contact-social-text{flex-direction:column;gap:.4rem;min-width:0;display:flex}.contact-social-label{font-family:var(--font-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--muted);font-size:11px;transition:color .2s}.contact-social-handle{font-family:var(--font-display);letter-spacing:.005em;color:inherit;white-space:nowrap;text-overflow:ellipsis;font-size:clamp(20px,2vw,28px);line-height:1.1;overflow:hidden}.contact-social-arrow{font-family:var(--font-display);color:inherit;font-size:28px;transition:transform .3s cubic-bezier(.22,1,.36,1)}.footer-clock{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--ink);font-variant-numeric:tabular-nums;align-items:center;gap:.55rem;font-size:10px;display:inline-flex}.footer-clock-dot{background:var(--accent);width:5px;height:5px;box-shadow:0 0 6px var(--accent);border-radius:50%;animation:2s ease-in-out infinite pulse-dot}.contact-line{vertical-align:top;margin-bottom:-.14em;padding-top:.02em;padding-bottom:.14em;line-height:1.05;display:inline-block;overflow:hidden}@media (max-width:640px){.footer-big{padding:2rem 1.25rem 1.25rem}.footer-big-line{font-size:clamp(56px,22vw,88px)}}
