:root{--navy-950: #000512;--navy-900: #020a1c;--navy-800: #071936;--blue: #1f5fd0;--blue-2: #72adff;--cyan: #38bdf8;--text: #f8fafc;--muted: #9fb3d1;--line: rgba(114, 173, 255, .26);--panel: rgba(2, 10, 28, .66);--panel-strong: rgba(1, 7, 20, .88);--mono: "JetBrains Mono", monospace;--sans: "Inter", system-ui, sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-height:100vh;margin:0;color:var(--text);font-family:var(--sans);background:radial-gradient(circle at 78% 32%,rgba(31,95,208,.28),transparent 35rem),radial-gradient(circle at 15% 9%,rgba(38,137,255,.12),transparent 26rem),linear-gradient(180deg,var(--navy-950),#00030c 92%)}body:before{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-3;content:"";pointer-events:none;background-image:linear-gradient(rgba(114,173,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(114,173,255,.035) 1px,transparent 1px);background-size:48px 48px;-webkit-mask-image:linear-gradient(to bottom,black,transparent 82%);mask-image:linear-gradient(to bottom,black,transparent 82%)}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}.site-shell{position:relative;z-index:2;display:flex;min-height:100vh;flex-direction:column}.site-shell{transition:opacity .8s ease,transform .8s cubic-bezier(.22,1,.36,1)}.site-shell.is-loading{opacity:0;transform:translateY(18px);pointer-events:none}.home-page,.portfolio-page{width:min(1220px,calc(100% - 32px));margin:0 auto}.home-hero{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(260px,.72fr);gap:clamp(28px,6vw,88px);align-items:center;min-height:calc(100vh - 94px);padding:clamp(28px,5vw,72px) 0 92px}.hero-copy-card,.hero-side-card,.home-contact,.project-card{border:1px solid var(--line);background:linear-gradient(135deg,#08183685,#0107136b);box-shadow:0 26px 100px #00000070;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.hero-copy-card{padding:clamp(30px,5vw,66px);border-radius:32px}.eyebrow{margin:0 0 18px;color:var(--blue-2);font-family:var(--mono);font-size:.75rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase}.hero-copy-card h1,.portfolio-hero h1{max-width:880px;margin:0;color:#fff;font-size:clamp(4.4rem,10vw,10.8rem);font-weight:900;line-height:.92;letter-spacing:-.035em;text-shadow:0 0 52px rgba(96,165,250,.26)}.lede,.portfolio-hero p,.hero-side-card p{color:var(--muted);font-size:clamp(1rem,1.4vw,1.22rem);line-height:1.78}.lede{max-width:760px;margin:30px 0 0}.cad-note{display:flex;align-items:center;gap:10px;margin:26px 0 0;padding:12px 16px;border:1px solid var(--line);border-radius:14px;background:#3b82f614;color:#c7d7f0;font-size:.95rem;line-height:1.5}.cad-note span{color:#7fb0ff;font-size:1.1rem}.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:34px}.button-primary,.button-secondary{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 20px;border-radius:999px;font-size:.78rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase;transition:transform .18s ease,border-color .18s ease,background .18s ease}.button-primary{border:1px solid var(--blue);color:#fff;background:linear-gradient(135deg,var(--blue),#1d4ed8);box-shadow:0 18px 50px #2563eb47}.button-secondary{border:1px solid rgba(96,165,250,.58);color:var(--blue-2);background:#2563eb14}.button-primary:hover,.button-secondary:hover{transform:translateY(-2px)}.hero-side-card{overflow:hidden;border-radius:28px;transform:rotate(1.4deg)}.hero-side-card img{width:100%;aspect-ratio:4 / 5;object-fit:cover;filter:saturate(.88) contrast(1.04)}.hero-side-card div{padding:20px}.hero-side-card span{color:var(--cyan);font-family:var(--mono);font-size:.72rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase}.hero-side-card p{margin:10px 0 0}.home-contact{margin-bottom:70px;padding:clamp(28px,4vw,54px);border-radius:30px;text-align:center}.home-contact a{color:var(--blue-2);font-family:var(--mono);font-size:clamp(1.45rem,3vw,3rem);border-bottom:2px solid transparent}.home-contact a:hover{border-color:var(--blue-2)}.portfolio-hero{padding:56px 0 36px}.portfolio-hero h1{font-size:clamp(3rem,8vw,7rem)}.portfolio-hero p{max-width:720px;margin-top:14px}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;padding-bottom:40px}.project-card{overflow:hidden;display:flex;flex-direction:column;border-radius:22px;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}a.project-card:hover{border-color:#60a5fa9e;box-shadow:0 0 42px #2563eb33;transform:translateY(-4px)}.project-image{position:relative;overflow:hidden;aspect-ratio:4 / 3;background:#020617b8}.project-image img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}a.project-card:hover .project-image img{transform:scale(1.04)}.project-copy{display:flex;flex:1;flex-direction:column;padding:16px 18px 18px}.project-subtitle{margin:0 0 6px;color:var(--blue-2);font-family:var(--mono);font-size:.66rem;letter-spacing:.16em;text-transform:uppercase}.project-copy h2{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0;color:#fff;font-size:1.3rem;font-weight:900;letter-spacing:-.03em;text-transform:uppercase}.project-arrow{color:var(--blue-2);font-size:1.1rem;transition:transform .18s ease}a.project-card:hover .project-arrow{transform:translate(4px)}.project-desc{margin:8px 0 0;color:var(--muted);font-size:.9rem;line-height:1.5}.also-worked{padding:8px 0 82px}.also-worked .eyebrow{margin-bottom:12px}.also-worked ul{display:flex;flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none}.also-worked li{display:flex;align-items:baseline;gap:8px;padding:8px 14px;border:1px solid var(--line);border-radius:999px;background:#0206178c}.also-worked strong{color:#fff;font-size:.85rem;font-weight:700}.also-worked span{color:var(--muted);font-family:var(--mono);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase}.detail-page{padding:40px 0 82px}.detail-back{display:inline-block;margin-bottom:28px;color:var(--blue-2);font-family:var(--mono);font-size:.75rem;letter-spacing:.14em;text-transform:uppercase}.detail-back:hover{color:#fff}.detail-header{margin-bottom:28px}.detail-header .eyebrow{margin-bottom:12px}.detail-header h1{margin:0;color:#fff;font-size:clamp(2.8rem,7vw,6rem);font-weight:900;line-height:.9;letter-spacing:-.06em;text-shadow:0 0 52px rgba(96,165,250,.26)}.detail-summary{max-width:640px;margin:16px 0 0;color:var(--muted);font-size:clamp(1rem,1.4vw,1.15rem);line-height:1.6}.detail-facts{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0 0}.detail-facts div{padding:8px 14px;border:1px solid var(--line);border-radius:12px;background:#0206178c}.detail-facts dt{color:var(--blue-2);font-family:var(--mono);font-size:.6rem;letter-spacing:.16em;text-transform:uppercase}.detail-facts dd{margin:2px 0 0;color:#fff;font-size:.95rem;font-weight:700}.detail-gallery{display:grid;grid-template-columns:repeat(var(--gallery-cols, 4),minmax(0,1fr));gap:16px}.detail-media{grid-column:span 2;margin:0}.detail-media.is-portrait{grid-column:span 1}.detail-media:first-child:not(.is-portrait),.detail-media.is-wide,.detail-gallery.is-single .detail-media{grid-column:1 / -1}.media-frame{overflow:hidden;aspect-ratio:16 / 9;border:1px solid var(--line);border-radius:18px;background:#020617b8}.detail-media:first-child:not(.is-portrait):has(img) .media-frame{aspect-ratio:3 / 2}.detail-media.is-portrait .media-frame{aspect-ratio:3 / 4}.media-frame img,.media-frame video{display:block;width:100%;height:100%;object-fit:cover}.media-frame a{display:block;width:100%;height:100%;cursor:zoom-in}.detail-media.is-contain .media-frame img{object-fit:contain}.detail-media.is-wide.is-contain .media-frame{aspect-ratio:auto}.detail-media.is-wide.is-contain .media-frame img{height:auto}.detail-publication{display:inline-block;margin-top:16px;color:var(--blue-2);font-family:var(--mono);font-size:.75rem;letter-spacing:.08em;border-bottom:1px solid transparent}.detail-publication:hover{color:#fff;border-color:#fff}.detail-media figcaption{margin-top:8px;color:var(--muted);font-family:var(--mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase}.cad-background{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1;overflow:hidden;pointer-events:none}.cad-background.is-loading{z-index:150}.cad-background:after{position:absolute;top:0;right:0;bottom:0;left:0;content:"";background:radial-gradient(circle at 70% 42%,transparent 0 31rem,rgba(0,5,18,.02) 42rem),linear-gradient(90deg,#00051205,#0005121f 54%,#00051257)}.cad-background.is-loading:after{background:radial-gradient(circle at 50% 50%,transparent 0 28rem,rgba(0,5,18,.1) 46rem),linear-gradient(180deg,#00051214,#00051247)}.cad-background canvas{width:100%!important;height:100%!important;opacity:1;filter:drop-shadow(0 0 86px rgba(96,165,250,.66)) saturate(1.2)}.cad-background.is-loading canvas{opacity:1;filter:drop-shadow(0 0 110px rgba(96,165,250,.82)) saturate(1.35)}.cad-background-label{position:absolute;right:28px;bottom:22px;z-index:1;max-width:min(520px,calc(100% - 56px));color:#bfdbfe66;font-family:var(--mono);text-align:right}.cad-background-label span{display:block;color:#72adffb8;font-size:.66rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase}.cad-background-label p{margin:6px 0 0;font-size:.62rem;line-height:1.5;letter-spacing:.08em;text-transform:uppercase}.cad-background.is-loading .cad-background-label{display:none}.loading-screen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:grid;place-items:center;color:#fff;pointer-events:none;background:transparent}.loading-screen:before{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;content:"";background:radial-gradient(circle at 50% 48%,rgba(31,95,208,.18),transparent 34rem),#00051233}.loading-screen{transition:opacity .8s ease}.loading-screen.is-leaving{opacity:0}.loading-content{display:grid;justify-items:center;gap:28px;transition:transform .8s cubic-bezier(.22,1,.36,1)}.loading-screen.is-leaving .loading-content{transform:translateY(-14px) scale(.98)}.loading-bar{width:min(320px,60vw);height:3px;overflow:hidden;border-radius:999px;background:#72adff29}.loading-bar span{display:block;width:100%;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--blue),var(--blue-2));box-shadow:0 0 16px #72adffb3;transform:scaleX(0);transform-origin:left;animation:loading-fill linear forwards}@keyframes loading-fill{0%{transform:scaleX(0)}60%{transform:scaleX(.72)}to{transform:scaleX(1)}}@media(prefers-reduced-motion:reduce){.site-shell,.loading-screen,.loading-content{transition:none}}.loading-screen h1{margin:0;color:#fff;font-size:clamp(2.6rem,7.5vw,6.6rem);font-weight:900;line-height:.9;letter-spacing:-.08em;text-shadow:0 0 46px rgba(114,173,255,.65),0 12px 80px rgba(0,0,0,.8)}@media(max-width:980px){.home-hero{grid-template-columns:1fr}.project-grid,.detail-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.cad-background canvas{opacity:.78}}@media(max-width:640px){.home-page,.portfolio-page{width:min(100% - 32px,1220px)}.home-hero{min-height:auto;padding-top:26px}.hero-copy-card h1{font-size:clamp(3.8rem,18vw,6.8rem)}.portfolio-hero{padding:36px 0 28px}.portfolio-hero h1{font-size:clamp(3rem,14vw,5rem)}.project-grid{grid-template-columns:1fr}.project-copy h2{font-size:1.2rem}.detail-page{padding-top:24px}.detail-gallery{gap:10px}.detail-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.detail-facts div{padding:7px 10px}.detail-facts dd{font-size:.85rem}.media-frame{border-radius:14px}.cad-background-label{display:none}}.site-nav{position:fixed;top:0;left:0;right:0;z-index:50;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#020a1cdb,#000512b8);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.site-nav-inner{display:flex;align-items:center;justify-content:space-between;width:min(1220px,calc(100% - 32px));height:64px;margin:0 auto}.site-nav-logo{display:inline-flex;align-items:center;color:#fff;transition:color .16s ease,transform .22s ease}.logo-mark{font-family:var(--mono);font-size:1.35rem;font-weight:700;letter-spacing:.02em;line-height:1}.logo-mark span{color:var(--blue-2)}.site-nav-logo:hover{transform:translateY(-1px) scale(1.06)}.site-nav-links{display:flex;gap:clamp(20px,4vw,36px)}.site-nav-links a{position:relative;padding:6px 0;color:var(--muted);font-family:var(--mono);font-size:.75rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;transition:color .16s ease}.site-nav-links a:after{position:absolute;left:0;right:.22em;bottom:0;height:2px;content:"";border-radius:999px;background:var(--blue-2);transform:scaleX(0);transform-origin:left;transition:transform .22s ease}.site-nav-links a:hover{color:#fff}.site-nav-links a.is-active{color:var(--blue-2)}.site-nav-links a.is-active:after{transform:scaleX(1)}
