@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700;800&display=swap";@import "https://fonts.googleapis.com/css2?family=Archivo:wght@400;500;600;700&family=Barlow+Condensed:ital,wght@0,600;0,800;1,700;1,800;1,900&display=swap";:root{color:#171717;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-optical-sizing:auto;background:#f7f6f2;font-family:Manrope,sans-serif;font-weight:400}*{box-sizing:border-box}html{scroll-behavior:smooth;min-width:320px}body{min-width:320px;margin:0}button,a{font:inherit}a{color:inherit}button:focus-visible,a:focus-visible{outline-offset:4px;outline:3px solid #171717}::selection{color:#171717;background:#ffe600}@property --accent{syntax:"<color>";inherits:true;initial-value:#e4002b}@property --accent-ink{syntax:"<color>";inherits:true;initial-value:#fff}html{scroll-behavior:smooth;scroll-padding-top:76px}body{background:#1c1e22;min-width:320px;margin:0;display:block}#root{text-align:left;max-width:none;margin:0;padding:0}.portfolio{--asphalt:#1c1e22;--graphite:#272a30;--graphite-2:#31353c;--line:#3d424b;--paper:#f3f2ee;--muted:#a9adb5;--good:#3ddc84;--red:#e4002b;--font-display:"Barlow Condensed", "Arial Narrow", Impact, sans-serif;--font-body:"Archivo", system-ui, -apple-system, "Segoe UI", sans-serif;--accent:#e4002b;--accent-ink:#fff;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-wipe:cubic-bezier(.7, 0, .2, 1);background:var(--asphalt);min-height:100vh;color:var(--paper);font-family:var(--font-body);font-size:16px;line-height:1.5;transition:--accent .5s,--accent-ink .5s;position:relative;overflow-x:clip}.portfolio *,.portfolio :before,.portfolio :after{box-sizing:border-box}.portfolio h1,.portfolio h2,.portfolio h3,.portfolio p,.portfolio ul{margin:0}.portfolio :focus-visible{outline:3px solid var(--paper);outline-offset:3px}.about-section :focus-visible,.contact-section :focus-visible{outline-color:#14161a}.section-wrap{width:min(1280px,100%);margin-inline:auto;padding-inline:clamp(1rem,4vw,3rem)}.portfolio h2{font-family:var(--font-display);text-transform:uppercase;letter-spacing:-.005em;font-size:clamp(2.9rem,7.4vw,6.2rem);font-style:italic;font-weight:900;line-height:.9}.section-tag{color:var(--muted);align-items:center;gap:.65rem;font-size:.95rem;font-weight:600;display:inline-flex;margin-bottom:1.1rem!important}.section-tag span{background:var(--accent);color:var(--accent-ink);font-family:var(--font-display);clip-path:polygon(14% 0,100% 0,86% 100%,0 100%);padding:.05rem .7rem .05rem .55rem;font-size:1.05rem;font-style:italic;font-weight:800}.button{--tx:0px;--ty:0px;background:var(--accent);color:var(--accent-ink);font-family:var(--font-display);letter-spacing:.02em;text-transform:uppercase;isolation:isolate;cursor:pointer;transform:translate(var(--tx), var(--ty)) skewX(-10deg);transition:transform .25s var(--ease-out), color .2s .1s;align-items:center;padding:.95rem 1.8rem;font-size:1.3rem;font-style:italic;font-weight:800;line-height:1;text-decoration:none;display:inline-flex;position:relative;overflow:hidden}.button:before{content:"";z-index:-1;background:var(--paper);transition:transform .35s var(--ease-wipe);position:absolute;inset:0;transform:translate(-101%)}.button:hover:before,.button:focus-visible:before{transform:translate(0)}.button:hover,.button:focus-visible{color:#14161a}.btn-label{align-items:center;gap:.6rem;display:inline-flex;transform:skew(10deg)}.button-small{padding:.6rem 1.15rem;font-size:1.05rem}.button-dark{color:var(--paper);background:#14161a}.button-dark:before{background:var(--paper)}.text-link{color:var(--paper);padding-bottom:.2rem;font-weight:600;text-decoration:none;position:relative}.text-link:after{content:"";background:var(--accent);transform-origin:0;height:2px;transition:transform .35s var(--ease-wipe);position:absolute;bottom:0;left:0;right:0}.text-link:hover:after{transform:scaleX(.35)}.topbar{z-index:50;border-bottom:1px solid #0000;justify-content:space-between;align-items:center;gap:1.5rem;padding:.95rem clamp(1rem,4vw,3rem);transition:background .3s,padding .3s,border-color .3s;display:flex;position:fixed;inset:0 0 auto}.topbar.is-scrolled{background:color-mix(in srgb, var(--asphalt) 84%, transparent);border-bottom-color:var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);padding-block:.55rem}.wordmark{background:var(--accent);color:var(--accent-ink);font-family:var(--font-display);clip-path:polygon(10% 0,100% 0,90% 100%,0 100%);transition:transform .3s var(--ease-out);padding:.05em .5em .05em .4em;font-size:1.9rem;font-style:italic;font-weight:900;line-height:1.1;text-decoration:none;display:inline-flex}.wordmark:hover{transform:translate(4px)}.main-nav{gap:.25rem;display:flex}.main-nav a{color:var(--paper);align-items:center;gap:.5rem;padding:.6rem .95rem;font-size:.92rem;font-weight:600;text-decoration:none;display:inline-flex;position:relative}.sector-tag{color:var(--muted);font-family:var(--font-display);font-size:.85rem;font-style:italic;font-weight:800;transition:color .3s}.main-nav a.is-done .sector-tag{color:var(--good)}.sector-track{background:var(--line);height:3px;position:absolute;bottom:0;left:.95rem;right:.95rem;overflow:hidden}.sector-fill{background:var(--accent);transform-origin:0;position:absolute;inset:0;transform:scaleX(0)}.main-nav a.is-done .sector-fill{background:var(--good)}.topbar-end{align-items:center;gap:1.1rem;display:flex}.lap{border:1px solid var(--line);background:#0d0e10;align-items:baseline;gap:.55rem;padding:.3rem .7rem;display:inline-flex}.lap-label{color:var(--muted);font-size:.72rem;font-weight:600}.lap-time{min-width:5.2ch;font-family:var(--font-display);font-variant-numeric:tabular-nums;color:var(--paper);font-size:1.15rem;font-style:italic;font-weight:800}.hero{background:radial-gradient(55% 65% at 76% 48%, color-mix(in srgb, var(--accent) 24%, transparent), transparent 70%), repeating-linear-gradient(115deg, transparent 0 46px, #ffffff07 46px 48px), var(--asphalt);min-height:100svh;padding-block:8rem 6rem;position:relative;overflow:hidden}.hero:after{content:"";pointer-events:none;background:linear-gradient(90deg,#0000,#ffffff24,#0000);width:50%;height:130px;position:absolute;top:30%;left:0;transform:translate(-120%)skew(-30deg)}.hero.is-go:after{animation:1.1s cubic-bezier(.5,0,.2,1) both hero-sweep}@keyframes hero-sweep{to{transform:translate(330%)skew(-30deg)}}.hero-grid{z-index:1;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:center;gap:clamp(1.5rem,4vw,4rem);display:grid;position:relative}.lights-row{flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:1.8rem;display:flex}.start-lights{border:2px solid var(--line);cursor:pointer;background:#0b0c0e;gap:.55rem;padding:.65rem .95rem;transition:border-color .2s;display:inline-flex;transform:skew(-10deg)}.start-lights:hover{border-color:var(--paper)}.light{background:#3b1013;border-radius:50%;width:1.7rem;height:1.7rem;transition:background 80ms,box-shadow 80ms;box-shadow:inset 0 2px 6px #000000b3}.light.on{background:#ff2020;box-shadow:0 0 22px 5px #ff202099,inset 0 -3px 6px #78000080}.lights-hint{color:var(--muted);opacity:0;font-size:.85rem;transition:opacity .5s 1.2s}.lights-hint.is-visible{opacity:1}.hero-title{font-family:var(--font-display);text-transform:uppercase;letter-spacing:-.01em;font-size:clamp(3.6rem,9.5vw,9rem);font-style:italic;font-weight:900;line-height:.86}.title-line{display:block}.word{white-space:nowrap;display:inline-block}.ch{color:#0000;-webkit-text-stroke:2px var(--paper);display:inline-block}.hero.is-go .ch{animation:char-fill .6s var(--ease-out) both;animation-delay:calc(var(--i) * 32ms)}@keyframes char-fill{0%{color:#0000;transform:translate(-.25em)}to{color:var(--paper);-webkit-text-stroke-width:0;transform:none}}.title-stripes{gap:.5rem;width:min(30rem,90%);margin-top:1.4rem;display:flex;transform:skew(-20deg)}.title-stripes i{width:0;height:10px;transition:width .9s var(--ease-out) .5s;display:block}.title-stripes i:first-child{background:var(--accent)}.title-stripes i:nth-child(2){background:var(--paper)}.title-stripes i:nth-child(3){background:var(--red)}.hero.is-go .title-stripes i:first-child{width:58%}.hero.is-go .title-stripes i:nth-child(2){width:20%}.hero.is-go .title-stripes i:nth-child(3){width:8%}.hero-description{color:#f3f2eed1;max-width:34rem;font-size:1.18rem;line-height:1.6;margin-top:1.8rem!important}.hero-actions{flex-wrap:wrap;align-items:center;gap:1.8rem;margin-top:2rem;display:flex}.hero-meta{flex-wrap:wrap;gap:.7rem;margin-top:2rem;display:flex}.hero-meta span{border:1px solid var(--line);background:#ffffff08;align-items:center;gap:.5rem;padding:.4rem .85rem;font-size:.9rem;display:inline-flex}.hero-meta svg{color:var(--accent)}.hero-index{z-index:1;color:var(--muted);letter-spacing:.12em;writing-mode:vertical-rl;font-size:.8rem;font-weight:600;position:absolute;top:50%;right:.9rem;transform:translateY(-50%)rotate(180deg)}.hero-visual{justify-items:center;padding-bottom:3.5rem;display:grid;position:relative}.gauge{width:min(100%,34rem)}.gauge svg{width:100%;height:auto;filter:drop-shadow(0 0 44px color-mix(in srgb, var(--accent) 32%, transparent));display:block;overflow:visible}.shift-lights{justify-content:center;gap:.35rem;margin-bottom:1.1rem;display:flex}.shift-lights i{background:#2b2e34;width:1.5rem;height:.8rem;transition:background 60ms,box-shadow 60ms;transform:skew(-16deg)}.shift-lights i.on:nth-child(-n+4){background:var(--good);box-shadow:0 0 10px var(--good)}.shift-lights i.on:nth-child(n+5):nth-child(-n+8){background:#ff2a2a;box-shadow:0 0 10px #ff2a2a}.shift-lights i.on:nth-child(n+9){background:#4cc3ff;box-shadow:0 0 10px #4cc3ff}.g-face{fill:#0f1012;stroke:var(--line);stroke-width:3px}.g-inner{fill:#17181b}.g-ring-base{fill:none;stroke:#2a2d33;stroke-width:7px;stroke-linecap:butt}.g-ring{fill:none;stroke:var(--accent);stroke-width:7px}.g-redzone{fill:none;stroke:var(--red);stroke-width:7px}.g-tick{stroke:#8d929b;stroke-width:2px}.g-tick.is-major{stroke:var(--paper);stroke-width:4px}.g-tick.is-red{stroke:var(--red)}.g-number{fill:var(--paper);font-family:var(--font-display);text-anchor:middle;dominant-baseline:central;font-size:28px;font-style:italic;font-weight:800}.g-number.is-red{fill:#ff4d63}.g-unit{fill:var(--muted);font-family:var(--font-body);text-anchor:middle;font-size:13px;font-weight:600}.g-needle{fill:var(--accent)}.g-needle-tail{fill:#6b7079}.g-hub{fill:#0f1012;stroke:var(--paper);stroke-width:3px}.g-hub-dot{fill:var(--accent)}.g-gear{fill:var(--paper);font-family:var(--font-display);text-anchor:middle;font-size:76px;font-style:italic;font-weight:900}.g-speed{fill:var(--accent);font-family:var(--font-display);text-anchor:middle;font-variant-numeric:tabular-nums;font-size:36px;font-style:italic;font-weight:800}.pit-board{background:var(--paper);color:#14161a;border-left:10px solid var(--accent);width:min(15.5rem,62%);padding:1.1rem 1.2rem 1rem 1.4rem;transition:transform .9s cubic-bezier(.2,1.3,.4,1) .7s,opacity .4s .7s;position:absolute;bottom:0;left:0;transform:rotate(-3deg);box-shadow:0 18px 40px #00000073}.hero:not(.is-go) .pit-board{opacity:0;transform:translateY(40px)rotate(8deg)}.note-icon{background:var(--accent);width:2.7rem;height:2.7rem;color:var(--accent-ink);border-radius:50%;place-items:center;display:grid;position:absolute;top:-1.1rem;right:-1rem}.note-label{color:#4a4f58;font-size:.8rem;font-weight:700;display:block}.pit-board p{font-family:var(--font-display);text-transform:uppercase;font-size:2.1rem;font-style:italic;font-weight:900;line-height:.95;margin-top:.3rem!important}.note-stamp{border-top:2px solid #14161a;margin-top:.9rem;padding-top:.5rem;font-size:.74rem;font-weight:700}.ticker{z-index:2;background:var(--accent);color:var(--accent-ink);margin-block:-1.2rem;position:relative;overflow:hidden;transform:rotate(-1.4deg)scale(1.06);box-shadow:0 12px 30px #00000059}.ticker-track{width:max-content;animation:36s linear infinite ticker;display:flex}.ticker:hover .ticker-track{animation-play-state:paused}.ticker ul{padding:0;list-style:none;display:flex}.ticker li{font-family:var(--font-display);text-transform:uppercase;white-space:nowrap;align-items:center;gap:1.5rem;padding:.75rem 1.5rem .75rem 0;font-size:2.1rem;font-style:italic;font-weight:900;line-height:1;display:inline-flex}@keyframes ticker{to{transform:translate(-50%)}}.projects-section{background:var(--asphalt);padding-block:clamp(6rem,11vw,9.5rem) clamp(4.5rem,9vw,8rem)}.section-heading{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:2rem;margin-bottom:2.5rem;display:flex}.section-aside{justify-items:start;gap:1.3rem;max-width:24rem;display:grid}.section-intro{color:#f3f2eecc;line-height:1.6}.project-toolbar{border-block:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:2.5rem;padding-block:1rem;display:flex}.filters{flex-wrap:wrap;gap:.4rem;display:flex}.filter-button{color:var(--paper);font-family:var(--font-display);text-transform:uppercase;cursor:pointer;isolation:isolate;background:0 0;border:0;padding:.55rem 1.25rem;font-size:1.2rem;font-style:italic;font-weight:800;transition:color .25s;position:relative}.filter-button:before{content:"";z-index:-1;background:var(--graphite-2);transform-origin:0;transition:transform .35s var(--ease-wipe), background .3s;position:absolute;inset:0;transform:skew(-14deg)scaleX(0)}.filter-button:hover:before{transform:skew(-14deg)scaleX(1)}.filter-button.is-active{color:var(--accent-ink)}.filter-button.is-active:before{background:var(--accent);transform:skew(-14deg)scaleX(1)}.theme-picker{color:var(--muted);align-items:center;gap:.6rem;display:flex}.theme-label{font-size:.85rem;font-weight:600}.theme-swatch{cursor:pointer;width:1.9rem;height:1.35rem;transition:transform .25s var(--ease-out), border-color .2s;border:2px solid #0000;transform:skew(-14deg)}.theme-swatch:hover{transform:skew(-14deg)translateY(-3px)}.theme-swatch.is-selected{border-color:var(--paper);transform:skew(-14deg)scale(1.18)}.project-grid{perspective:1200px;grid-template-columns:repeat(auto-fill,minmax(min(100%,22rem),1fr));gap:1.6rem;display:grid}.project-grid:not(.is-seen) .project-card{opacity:0}.project-grid.is-seen .project-card{animation:grid-launch .75s var(--ease-out) calc(var(--i) * .12s) backwards}@keyframes grid-launch{0%{opacity:0;transform:translate(-70px)skew(-8deg)}to{opacity:1;transform:none}}.project-card{--rx:0deg;--ry:0deg;--mx:50%;--my:50%;color:var(--paper);font:inherit;text-align:left;cursor:pointer;transform:rotateX(var(--rx)) rotateY(var(--ry));background:0 0;border:0;padding:0;transition:transform .2s ease-out;display:block}.card-face{background:var(--graphite);border-top:6px solid var(--card-color);clip-path:polygon(0 0,calc(100% - 30px) 0,100% 30px,100% 100%,0 100%);flex-direction:column;height:100%;transition:background .3s;display:flex;position:relative;overflow:hidden}.project-card:hover .card-face,.project-card:focus-visible .card-face{background:var(--graphite-2)}.card-glare{z-index:2;background:radial-gradient(circle at var(--mx) var(--my), #ffffff24, transparent 45%);opacity:0;pointer-events:none;transition:opacity .25s;position:absolute;inset:0}.project-card:hover .card-glare{opacity:1}.card-topline{color:var(--muted);font-family:var(--font-display);justify-content:space-between;align-items:center;padding:1rem 1.3rem .8rem;font-size:1.15rem;font-style:italic;font-weight:800;display:flex}.card-arrow{transition:transform .3s var(--ease-out), color .3s}.project-card:hover .card-arrow{color:var(--card-color);transform:translate(5px,-5px)}.project-art{background:#17181b;place-items:center;height:11rem;margin-inline:1.3rem;display:grid;position:relative;overflow:hidden}.project-art:before{content:"";background:repeating-linear-gradient(-62deg, var(--card-color) 0 18px, transparent 18px 48px);opacity:.92;transition:transform .7s var(--ease-out);position:absolute;inset:-30% -20%;transform:translate(-9%)}.project-card:hover .project-art:before{transform:translate(0)}.art-roundel{z-index:1;background:var(--paper);color:#14161a;width:5.6rem;height:5.6rem;transition:transform .5s var(--ease-out);border-radius:50%;place-items:center;display:grid;position:relative;box-shadow:0 0 0 7px #17181b}.project-card:hover .art-roundel{transform:scale(1.1)rotate(-8deg)}.project-info{flex-direction:column;align-items:flex-start;gap:.5rem;padding:1.3rem 1.3rem 1.5rem;display:flex}.project-category{background:var(--card-color);color:#14161a;padding:.15rem .65rem;font-size:.8rem;font-weight:700}.project-title{font-family:var(--font-display);text-transform:uppercase;font-size:2.7rem;font-style:italic;font-weight:900;line-height:.95}.project-context{color:var(--muted);font-size:.9rem}.project-description{color:#f3f2eed6;font-size:.97rem;line-height:1.55}.tag-list{flex-wrap:wrap;gap:.4rem;margin-top:.4rem;display:flex}.tag{border:1px solid var(--line);padding:.2rem .6rem;font-size:.78rem}.empty-state{color:var(--muted);padding:2.5rem 0}.about-section{background:var(--paper);color:#14161a;padding-block:clamp(6rem,11vw,9.5rem) clamp(4.5rem,9vw,8rem);position:relative}.about-section:before{content:"";background:repeating-linear-gradient(-60deg, var(--red) 0 34px, var(--paper) 34px 68px);height:22px;position:absolute;inset:0 0 auto}.about-grid{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:center;gap:clamp(2rem,6vw,6rem);display:grid}.about-mark{place-items:center;display:grid}.tire{filter:drop-shadow(0 22px 28px #00000047);width:min(100%,26rem);height:auto}.t-rubber{fill:#101114}.t-tread{fill:none;stroke:#2a2d33;stroke-width:12px;stroke-dasharray:13 9}.t-text{fill:#cfd2d8;font-family:var(--font-display);font-size:23px;font-style:italic;font-weight:800}.t-rim{fill:#15171a;stroke:#d9dbe0;stroke-width:14px}.t-spoke{fill:#d9dbe0}.t-cap{fill:var(--accent);stroke:#101114;stroke-width:6px}.t-cap-text{fill:var(--accent-ink);font-family:var(--font-display);text-anchor:middle;dominant-baseline:central;font-size:32px;font-style:italic;font-weight:900}.about-section .section-tag{color:#4a4f58}.about-copy>p:not(.section-tag){color:#2d3036;max-width:36rem;margin-top:1.8rem;font-size:1.17rem;line-height:1.65}.principles{gap:.6rem;max-width:36rem;padding:0;list-style:none;display:grid;margin-top:2.2rem!important}.principles li{isolation:isolate;font-family:var(--font-display);text-transform:uppercase;border:2px solid #14161a;align-items:center;gap:1rem;padding:.85rem 1.1rem;font-size:1.55rem;font-style:italic;font-weight:800;line-height:1.1;transition:color .3s 50ms;display:flex;position:relative;overflow:hidden}.principles li:before{content:"";z-index:-1;transition:transform .4s var(--ease-wipe);background:#14161a;position:absolute;inset:0;transform:translate(-101%)}.principles li:hover{color:var(--paper)}.principles li:hover:before{transform:translate(0)}.checker-dot{background:conic-gradient(#14161a 25%, var(--paper) 0 50%, #14161a 0 75%, var(--paper) 0);border:1px solid #14161a;flex:none;width:1.2rem;height:1.2rem}.contact-section{background:var(--accent);color:var(--accent-ink);padding-block:clamp(8rem,13vw,11rem) clamp(4.5rem,8vw,7rem);position:relative;overflow:hidden}.finish-line{background:conic-gradient(#14161a 25%, #f3f2ee 0 50%, #14161a 0 75%, #f3f2ee 0) 0 0 / 64px 64px;clip-path:inset(0 100% 0 0);height:64px;transition:clip-path 1.2s var(--ease-wipe);position:absolute;inset:0 0 auto}.contact-section.is-seen .finish-line{clip-path:inset(0)}.contact-section .section-tag{color:inherit}.contact-section .section-tag span{color:var(--paper);background:#14161a}.contact-section h2{max-width:12ch;margin-bottom:2.5rem;font-size:clamp(3.4rem,11vw,9.5rem)}.social-links{flex-wrap:wrap;gap:.7rem;padding:0;list-style:none;display:flex;margin-top:2.8rem!important}.social-link{color:inherit;border:2px solid;align-items:center;gap:.45rem;padding:.6rem 1.05rem;font-weight:600;text-decoration:none;transition:background .25s,color .25s,border-color .25s;display:inline-flex}.social-link:hover{color:var(--paper);background:#14161a;border-color:#14161a}.footer{border-top:1px solid var(--line);color:var(--muted);background:#15171a;padding-block:1.6rem;font-size:.9rem}.footer-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.footer-links{gap:1.4rem;display:flex}.footer-links a{color:var(--paper);text-decoration:none;transition:color .2s}.footer-links a:hover{color:var(--accent)}.modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0a0b0dcc;place-items:center;padding:1rem;animation:.25s both fade-in;display:grid;position:fixed;inset:0}.modal-backdrop.is-closing{animation:.24s both fade-out}@keyframes fade-in{0%{opacity:0}}@keyframes fade-out{to{opacity:0}}.project-modal{background:var(--graphite);border-top:10px solid var(--card-color);width:min(960px,100%);max-height:calc(100svh - 2rem);animation:modal-in .6s var(--ease-out) backwards;padding:clamp(1.5rem,4vw,3rem);position:relative;overflow:auto}.modal-backdrop.is-closing .project-modal{animation:.24s cubic-bezier(.7,0,.8,.3) forwards modal-out}@keyframes modal-in{0%{clip-path:inset(0 100% 0 0);transform:translate(-36px)skew(-3deg)}to{clip-path:inset(0);transform:none}}@keyframes modal-out{to{clip-path:inset(0 0 0 100%);transform:translate(36px)skew(3deg)}}.modal-close{background:var(--accent);width:2.8rem;height:2.8rem;color:var(--accent-ink);cursor:pointer;transition:transform .3s var(--ease-out), background .2s, color .2s;border:0;place-items:center;display:grid;position:absolute;top:1rem;right:1rem}.modal-close:hover{background:var(--paper);color:#14161a;transform:rotate(90deg)}.modal-code{color:var(--card-color);font-size:.95rem;font-weight:700;margin-bottom:.8rem!important}.project-modal h2{max-width:calc(100% - 3.5rem);font-size:clamp(3rem,8vw,6.5rem)}.modal-context{color:var(--muted);margin-top:.7rem!important}.modal-summary{color:#f3f2eee6;max-width:44rem;font-size:1.12rem;line-height:1.6;margin-top:1.2rem!important}.modal-details{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.4rem;margin-top:2rem;display:grid}.modal-details>div{border-top:3px solid var(--card-color);animation:detail-rise .55s var(--ease-out) calc(.3s + var(--i) * 90ms) backwards;padding-top:1rem}@keyframes detail-rise{0%{opacity:0;transform:translateY(14px)}}.modal-details h3{font-family:var(--font-display);text-transform:uppercase;font-size:1.7rem;font-style:italic;font-weight:800;margin-bottom:.5rem!important}.modal-details p{color:#f3f2eed1;font-size:.97rem;line-height:1.6}.modal-link{margin-top:2.2rem}.laps{gap:.5rem;display:flex}.lap-last{background:0 0}.lap-last .lap-time{color:var(--good)}@media (width<=1100px){.laps{display:none}}@media (width<=960px){.hero{padding-block:7rem 5rem}.hero-grid,.about-grid{grid-template-columns:1fr}.hero-title{font-size:clamp(3.6rem,17vw,8rem)}.hero-index{display:none}.hero-visual{padding-bottom:4rem}.pit-board{margin-left:min(-7.75rem,-31%);left:50%}.about-mark{order:2}.modal-details{grid-template-columns:1fr}}@media (width<=640px){.topbar-cta,.sector-tag{display:none}.main-nav a{padding-inline:.6rem}.sector-track{left:.6rem;right:.6rem}.section-aside{max-width:none}.ticker li{font-size:1.7rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.portfolio *,.portfolio :before,.portfolio :after,.modal-backdrop,.modal-backdrop *{transition-duration:.001ms!important;transition-delay:0s!important;animation-duration:.001ms!important;animation-iteration-count:1!important;animation-delay:0s!important}}
