*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:#050d21;color:#f4f7ff;font-family:Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit}a:focus-visible,button:focus-visible{outline:3px solid #a9d4ff;outline-offset:8px}[hidden]{display:none!important}#portal{position:fixed;inset:0;overflow:hidden;background:radial-gradient(ellipse at 35% 25%,#220037,transparent 60%),radial-gradient(ellipse at 80% 80%,#002a35,transparent 60%),#050008;isolation:isolate}#chaos{position:absolute;inset:0;overflow:hidden}.symbol{position:absolute;left:var(--x);top:var(--y);font-size:var(--size);font-weight:900;color:var(--color);line-height:1;text-shadow:0 0 8px currentColor,0 0 28px currentColor,0 0 65px currentColor;animation:fly var(--duration) linear infinite alternate;animation-delay:var(--delay);opacity:.85;will-change:transform}.entry{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:clamp(120px,18vw,230px);height:clamp(120px,18vw,230px);border:2px solid #fff;border-radius:50%;font-size:clamp(90px,13vw,170px);font-weight:900;color:white;background:#090215e8;box-shadow:0 0 22px #fa00ff,inset 0 0 35px #fc00ff80,0 0 100px #6600ff;transition:scale .25s,box-shadow .25s;z-index:2}.entry:hover{scale:1.08;box-shadow:0 0 50px #00ffff,inset 0 0 55px #00ffff70,0 0 140px #ff00fb}@keyframes fly{from{transform:translate3d(-7vw,-10vh,0) rotate(0deg)}to{transform:translate3d(16vw,18vh,0) rotate(390deg)}}header{height:96px;display:flex;align-items:center;gap:40px;padding:0 5.5%;border-bottom:1px solid #26324b}.wordmark{font-size:23px;letter-spacing:-1px;font-weight:900}.wordmark span{font-size:10px;vertical-align:top;margin-left:5px}nav{display:flex;gap:32px;margin-left:auto;font-size:13px}nav a:hover,.text-link:hover{color:#8ab7ff}#exit{border:1px solid #53627d;border-radius:50%;width:34px;height:34px;background:none;color:white;cursor:pointer}.wrap{max-width:1440px;margin:auto;padding-left:8%;padding-right:8%}.hero{position:relative;min-height:760px;padding-top:92px;padding-bottom:50px;overflow:hidden}.eyebrow{font-family:monospace;font-size:11px;letter-spacing:1.5px;color:#99afd0}.dot{display:inline-block;width:6px;height:6px;background:#78aaff;border-radius:50%;margin-right:9px;box-shadow:0 0 10px #609fff}h1{font-size:clamp(70px,9vw,142px);font-weight:500;line-height:.98;letter-spacing:-7px;margin:56px 0 38px;position:relative;z-index:1}h1 em{font-style:normal;color:#85afff}.hero-bottom{display:flex;align-items:end;gap:60px;position:relative;z-index:1}.hero-bottom p{max-width:340px;color:#aebdd4;line-height:1.7;font-size:15px}.text-link{font-size:13px;display:inline-block;border-bottom:1px solid #7193c4;padding-bottom:9px}.text-link span{margin-left:28px}.blueprint{width:54%;position:absolute;right:-5%;top:125px;opacity:.65}.blueprint svg{width:100%}.coord{display:block;text-align:center;font:9px monospace;letter-spacing:2px;color:#7b9ed3}.hero-index{display:block;font:10px monospace;color:#6c83a5;letter-spacing:2px;margin-top:82px}.work{padding-top:85px;padding-bottom:100px;border-top:1px solid #26324b;background:linear-gradient(#09162e,#050d21)}.section-heading{display:flex;justify-content:space-between;align-items:start;margin-bottom:55px}h2{font-size:clamp(32px,4vw,52px);font-weight:400;letter-spacing:-2px;line-height:1.1;margin:0}.project{display:grid;grid-template-columns:1.15fr 1fr;gap:65px;align-items:center}.project-art{aspect-ratio:1.45;position:relative;overflow:hidden;background:radial-gradient(ellipse at center,#183b72,#0a1a35 70%);border:1px solid #244069;display:grid;place-items:center}.project-art>span{font-size:150px;font-weight:100;color:#bed5ff}.project-art small{position:absolute;bottom:24px;left:25px;font:9px monospace;letter-spacing:2px;color:#83a7d9}.orbit{position:absolute;width:70%;height:38%;border:1px solid #6894d0;border-radius:50%;transform:rotate(-30deg)}.o2{transform:rotate(30deg)}.o3{transform:rotate(90deg)}h3{font-size:28px;font-weight:400;letter-spacing:-1px}h3 span{float:right}.project-info p,.about p{color:#aebdd4;line-height:1.8;font-size:15px;max-width:410px}.project-info .text-link{margin-top:20px}.project:hover .project-art{border-color:#85afff}.about{border-top:1px solid #26324b;padding-top:95px;padding-bottom:110px;display:grid;grid-template-columns:1fr 1fr;gap:50px}.about h2{margin-bottom:30px}.about .text-link{margin-top:22px}footer{border-top:1px solid #26324b;padding-top:35px;padding-bottom:35px;display:flex;justify-content:space-between;align-items:center}footer>span{font:10px monospace;letter-spacing:2px;color:#8da3c5}footer>a:last-child{font-size:12px}@media(max-width:700px){header{height:76px;padding:0 6%;gap:18px}.wordmark{font-size:19px}nav{gap:17px;font-size:11px}.wrap{padding-left:7%;padding-right:7%}.hero{padding-top:62px;min-height:790px}h1{letter-spacing:-4px;font-size:75px;margin-top:46px}.blueprint{width:90%;top:340px;right:-17%;opacity:.4}.hero-bottom{display:block}.hero-bottom p{max-width:280px}.hero-bottom .text-link{margin-top:12px}.hero-index{margin-top:205px}.section-heading{display:block}.section-heading h2{margin-top:30px}.project{grid-template-columns:1fr;gap:28px}.about{grid-template-columns:1fr;gap:36px}footer>span{display:none}h3{font-size:26px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.symbol{animation:none}.entry{transition:none}}
/* made with approximately zero taste */
#portal{background-color:#170046;background-image:radial-gradient(circle,#00ff69 1px,transparent 2px),repeating-linear-gradient(32deg,transparent 0 78px,#ff00d522 79px 82px),linear-gradient(110deg,#00003c,#69005c 54%,#003d20);background-size:23px 23px,100% 100%,100% 100%;font-family:'Comic Sans MS',cursive;overflow:auto}.bad-banner{position:absolute;top:2%;left:4%;font-size:clamp(25px,5vw,74px);font-weight:900;color:#0f0;background:#f000b8;border:10px ridge #ffff00;transform:rotate(-8deg);text-shadow:4px 4px blue;z-index:3;padding:4px 14px;letter-spacing:-4px}.bad-links{position:absolute;inset:0;pointer-events:none;z-index:5}.bad-links a{pointer-events:auto;position:absolute;color:blue;text-decoration:underline;font-family:'Times New Roman',serif;font-weight:bold;box-shadow:9px 7px 0 #00f}.bad-links a:nth-child(1){top:22%;left:4%;font-size:34px;background:#0f0;transform:rotate(12deg);border:7px dotted red}.bad-links a:nth-child(2){top:6%;right:5%;font-size:51px;background:#ff0;color:red;border:8px outset #0ff}.bad-links a:nth-child(3){bottom:13%;left:11%;font-size:25px;background:#ff8bd7;color:#00f;border:8px double #70ff00;transform:rotate(-15deg)}.bad-links a:nth-child(4){bottom:9%;right:3%;font-size:40px;background:#00f;color:#0ff;border:9px ridge #f0f;transform:rotate(9deg)}#portal .entry{font-family:'Times New Roman',serif;border:14px outset #00ff00;border-radius:0;background:#ff00a8;color:#ffff00;text-shadow:5px 5px blue;box-shadow:12px 14px 0 blue,0 0 55px #f0f;width:140px;height:150px;font-size:135px;transform:translate(-50%,-50%) rotate(-6deg);top:49%;left:51%}#portal .entry:hover{background:#00f;rotate:8deg;color:#0f0}.retro-gif{position:absolute;image-rendering:pixelated;object-fit:contain;z-index:2;background:black}.banana{top:30%;left:13%;width:148px;height:175px;transform:rotate(-12deg);border:9px inset #f0f}.fire-one{bottom:0;left:0;width:30%;height:135px}.fire-two{top:0;left:43%;width:25%;height:90px;transform:rotate(180deg)}.smile{top:26%;right:3%;width:160px;height:147px;border:12px dashed #ff0;transform:rotate(22deg)}.alien{bottom:9%;left:49%;width:130px;height:150px;border:7px double cyan;transform:rotate(7deg)}.construction{position:absolute;bottom:30%;right:8%;transform:rotate(-17deg);z-index:3;border:9px groove #ff5900;background:#000}.construction img{display:block;width:260px;height:55px;image-rendering:pixelated}.visitor{position:absolute;bottom:3%;left:35%;background:#000;color:#0f0;font:22px monospace;letter-spacing:5px;border:7px inset #aaa;z-index:3}#rainbow{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:4}#doodle{position:fixed;top:0;left:0;width:160px;height:116px;z-index:6;pointer-events:none;filter:drop-shadow(2px 3px 0 #fff);will-change:transform}#doodle svg{width:100%;height:100%}.motion-toggle{position:fixed;bottom:7px;right:7px;background:#bbb;color:#000;border:3px outset #eee;z-index:9;font:18px 'Times New Roman',serif;cursor:pointer;min-width:34px;min-height:34px}.symbol{font-family:'Comic Sans MS',cursive;z-index:1;animation-timing-function:linear;text-shadow:3px 3px #00f,0 0 12px currentColor;opacity:1}.paused .symbol{animation-play-state:paused}@media(max-width:700px){.bad-banner{left:1%;top:4%;font-size:31px;letter-spacing:-2px;border-width:6px}.bad-links a:nth-child(1){font-size:24px;top:23%;left:2%}.bad-links a:nth-child(2){font-size:29px;top:14%;right:3%}.bad-links a:nth-child(3){left:1%;bottom:20%;font-size:22px}.bad-links a:nth-child(4){font-size:24px;bottom:5%}.banana{left:0;top:34%;width:95px;height:115px;border-width:5px}.smile{top:33%;right:0;width:90px;height:100px;border-width:5px}.construction{right:1%;bottom:32%;border-width:5px}.construction img{width:170px;height:40px}.alien{left:40%;bottom:12%;width:90px;height:105px}.visitor{left:3%;bottom:3%;font-size:14px;letter-spacing:2px}.fire-one{width:43%;height:90px}.fire-two{left:53%;width:40%;height:60px}#portal .entry{width:105px;height:120px;font-size:100px;border-width:9px;left:51%;top:49%}#doodle{width:125px;height:90px}}
#portal:not(.paused) .symbol{animation:fly var(--duration) linear infinite alternate;animation-delay:var(--delay)}
/* Flat paint, hard edges, absolutely no airbrush. */
#portal{background:#0000ff;background-image:none}
#portal .symbol{text-shadow:5px 5px 0 #000,9px 9px 0 #ff0000;opacity:1}
#portal .entry,#portal .entry:hover{box-shadow:12px 14px 0 #000,20px 22px 0 #ffff00;text-shadow:6px 6px 0 #ff0000;transition:none}
#portal .bad-banner{text-shadow:5px 5px 0 #000;box-shadow:12px 12px 0 #00ffff}
#portal .retro-gif,#portal .construction{box-shadow:10px 10px 0 #ff0000}
#portal .bad-links a{box-shadow:9px 9px 0 #000,14px 14px 0 #ffff00}
#portal .bad-links a:nth-child(3){background:#ff00ff}
#portal .visitor{box-shadow:8px 8px 0 #ff0000}
/* Flat neon paint only: no shadows, glow, bevels, or tinted outlines. */
#portal,#portal *{text-shadow:none!important;box-shadow:none!important;filter:none!important}
#portal .entry,#portal .entry:hover,#portal .bad-banner,#portal .bad-links a,#portal .retro-gif,#portal .construction,#portal .visitor,#portal .motion-toggle{border-style:solid}
#portal .bad-banner,#portal .entry{background:#ff00ff}
#portal .bad-banner{border-color:#ffff00}
#portal .entry{border-color:#00ff00}
#portal .banana{border-color:#ff00ff}
#portal .alien{border-color:#00ffff}
#portal .construction{border-color:#ff0000}
#portal .visitor{border-color:#00ff00}
#portal .motion-toggle{background:#ffff00;border-color:#ff00ff}
#doodle{position:absolute;z-index:8}
#doodle svg>g{fill:#ff00ff;stroke:#000;stroke-width:4}

#doodle{pointer-events:auto;cursor:pointer;touch-action:manipulation;user-select:none;-webkit-tap-highlight-color:transparent}
#doodle:focus-visible{outline:3px dashed #ffff00;outline-offset:2px}





/* Project portfolio */
#portfolio{background:#050d21;color:#eef4ff}#portfolio .portfolio-header{height:84px;padding:0 7%;position:relative;z-index:2;background:#050d21}.portfolio-hero{padding-top:85px;padding-bottom:76px}.portfolio-hero h1{font-size:clamp(64px,8vw,110px);line-height:.98;letter-spacing:-5px;margin:35px 0 26px}.portfolio-hero h1 em{color:#8ab6ff}.portfolio-hero>p{max-width:490px;color:#adbed7;line-height:1.75;font-size:17px}.portfolio-hero .text-link{margin-top:18px}.project-section{padding-top:38px;padding-bottom:85px}.project-section-top{display:flex;justify-content:space-between;gap:20px;margin-bottom:27px}.muted{font-size:12px;color:#93a9ca}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}.project-card{display:block;border:1px solid #293e5b;background:#0a162a;transition:border-color .2s,transform .2s;overflow:hidden}.project-card:hover{border-color:#81b4ff;transform:translateY(-4px)}.card-image{position:relative;background:#0b1930;aspect-ratio:1.7;border-bottom:1px solid #293e5b;overflow:hidden}.card-image>img{display:block;width:100%;height:100%;object-fit:contain}.card-label{position:absolute;bottom:13px;left:16px;font:9px monospace;letter-spacing:1px;color:#b9ceeb;background:#061023;padding:7px 9px}.site-card-image>img{object-fit:cover}.card-copy{padding:25px}.card-title{display:flex;justify-content:space-between;align-items:center;gap:15px}.card-title h2{font-size:27px;font-weight:500;letter-spacing:-1px}.card-title>span{font-size:25px;color:#8ab6ff}.card-copy p{font-size:14px;line-height:1.7;color:#adbed7;margin:18px 0 30px}.card-bottom{display:flex;justify-content:space-between;gap:15px;flex-wrap:wrap;font:10px monospace;color:#8eaad0}.card-bottom>span:last-child{color:#e5eeff}.portfolio-about{padding-top:75px;padding-bottom:90px;display:grid;grid-template-columns:1fr 1.4fr;gap:50px;border-top:1px solid #26324b}.portfolio-about h2{font-size:42px;letter-spacing:-1.5px;margin-bottom:24px}.portfolio-about p{color:#adbed7;font-size:15px;line-height:1.8;max-width:530px}.portfolio-about .text-link{margin-top:20px}.case-intro{padding-top:42px}.back-link{display:block;color:#a7bfdf;font-size:12px;margin-bottom:50px}.case-intro>.eyebrow{display:block}.case-intro>h1{font-size:clamp(44px,6vw,80px);letter-spacing:-3px;line-height:1.05;margin:24px 0;outline:none}.case-lead{font-size:21px;line-height:1.5;max-width:680px;color:#b3c6e2}.project-tags{display:flex;flex-wrap:wrap;gap:8px;margin:25px 0 40px}.project-tags span{font:10px monospace;color:#a5c5f3;border:1px solid #2b4667;padding:8px 10px}.case-hero-image{margin:0 0 55px;background:#0b1930;border:1px solid #233a58}.case-hero-image>img{display:block;width:100%;max-height:420px;object-fit:contain}.case-study figcaption{padding:14px 17px;color:#91a9cc;font-size:11px;line-height:1.6;border-top:1px solid #233a58}.case-body{display:grid;grid-template-columns:160px minmax(0,1fr);gap:55px;padding-bottom:85px}.case-nav{display:flex;flex-direction:column;gap:20px;align-self:start;position:sticky;top:28px;font-size:12px;color:#91acd0;padding-top:8px}.case-nav a:hover{color:#e5eeff}.case-content>section{padding-bottom:62px;margin-bottom:56px;border-bottom:1px solid #26324b;scroll-margin-top:25px}.case-content h2{font-size:clamp(31px,3.4vw,46px);font-weight:400;letter-spacing:-1.5px;margin:20px 0 25px;line-height:1.1}.case-content p{font-size:15px;line-height:1.8;color:#afc0d9;max-width:800px}.note-box{border-left:3px solid #80b4ff;background:#0b1930;padding:22px 25px;margin:30px 0}.note-box>strong{font-size:14px;font-weight:500}.note-box p{font-size:13px;margin:12px 0 0}.workflow{list-style:none;padding:0;margin:30px 0;display:grid;grid-template-columns:1fr 1fr;gap:12px}.workflow li{display:flex;gap:16px;position:relative;align-items:start;background:#0b1930;border:1px solid #294567;padding:22px}.workflow li>span{font:13px monospace;color:#80b4ff;min-width:22px}.workflow li h3{font-size:16px;line-height:1.3;font-weight:500;letter-spacing:-.3px;margin:0 0 9px}.workflow li p{font-size:12px;line-height:1.6;margin:0}.workflow .workflow-loop{border-style:dashed;border-color:#4d9b9c}.workflow .workflow-loop>span{color:#5ae1cb;font-size:22px}.workflow li:last-child{grid-column:1/-1}#portfolio .small-note{font-size:12px;line-height:1.75;color:#91a9cc}.result-controls{display:grid;grid-template-columns:1fr 1.5fr;gap:18px;margin:28px 0 15px}.result-controls label{display:flex;flex-direction:column;gap:10px;font-size:12px;color:#b8cae4}.result-controls select{width:100%;background:#102039;border:1px solid #3c5879;border-radius:0;color:#f1f6ff;font-size:13px;padding:12px;min-height:44px}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid #294567;margin:25px 0}.metric-grid>div{padding:20px;border-right:1px solid #294567}.metric-grid>div:last-child{border-right:0}.metric-grid span{display:block;font-size:10px;color:#9cb5d9;margin-bottom:13px}.metric-grid strong{font-size:26px;font-weight:400;white-space:nowrap;letter-spacing:-1px}.candidate-geometry{display:grid;grid-template-columns:1fr 1fr;gap:25px;margin:36px 0 20px;align-items:center}.candidate-geometry h3{font:16px monospace;letter-spacing:-.4px;margin:0 0 20px}.candidate-geometry figure{margin:0;background:#0b1930;min-width:0}.candidate-geometry svg{display:block;width:100%}.candidate-geometry dl{font-size:12px;margin:0}.candidate-geometry dl>div{display:flex;justify-content:space-between;gap:20px;padding:11px 0;border-bottom:1px solid #203550}.candidate-geometry dt{color:#91a9cc}.candidate-geometry dd{margin:0;text-align:right;color:#e1ecfc}.table-scroll{overflow:auto;margin:25px 0}.result-table{width:100%;border-collapse:collapse;font-size:12px;text-align:left;white-space:nowrap}.result-table caption{text-align:left;color:#a7bfdf;font-size:12px;margin-bottom:15px;white-space:normal;line-height:1.6}.result-table th,.result-table td{padding:13px 11px;border-bottom:1px solid #263d59}.result-table thead{color:#8facd3;font:10px monospace;background:#0b1930}.result-table tbody th{font-weight:400}.result-table button{padding:6px 7px;background:transparent;border:1px solid #3d5c82;color:#cadcf5;font:11px monospace;cursor:pointer}.result-table button:hover,.result-table button[aria-pressed=true]{border-color:#83b4ff;color:white;background:#1b3b61}.selected-candidate{background:#0e233d}.download-row{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin:25px 0}.quiet-button{border:1px solid #54749b;background:transparent;color:#cee2ff;font-size:12px;padding:12px 16px;cursor:pointer;min-height:44px}.quiet-button:hover{background:#112943}.case-content .subheading{font-size:24px;letter-spacing:-.7px;margin:55px 0 25px}.winner-comparison{display:grid;grid-template-columns:1fr 1fr;gap:20px}.winner-comparison>div{background:#0b1930;border-top:2px solid #81b4ff;padding:25px}.winner-comparison>div+div{border-color:#5ae1cb}.winner-comparison span{font:10px monospace;letter-spacing:1px;color:#9bb7de}.winner-comparison strong{display:block;font-size:46px;font-weight:400;letter-spacing:-2px;margin:16px 0}.winner-comparison p{font-size:12px;line-height:1.8}.evidence-figure{margin:30px 0;border:1px solid #233a58;background:#0b1930}.chart-scroll{overflow:auto}.chart-scroll img{display:block;width:100%;min-width:640px}.geometry-gallery{display:grid;grid-template-columns:1fr 1fr;gap:15px}.geometry-gallery figure{margin:0;background:#0b1930;border:1px solid #233a58;min-width:0}.geometry-gallery img{display:block;width:100%}.dev-log{display:grid;grid-template-columns:1fr 1fr;gap:25px;margin:30px 0}.dev-log>div{padding-top:18px;border-top:1px solid #355373}.dev-log span{font:10px monospace;color:#8ab6ff;letter-spacing:1px}.dev-log h3{font-size:19px;letter-spacing:-.5px;margin:18px 0 12px}.dev-log p{font-size:13px}.source-details{padding:20px 0;border-top:1px solid #294567}.source-details summary{cursor:pointer;font-size:13px;color:#bed6f8}.source-details code{font-size:11px;overflow-wrap:anywhere}.source-details ul{padding-left:18px;font-size:12px;color:#9bc2fa;line-height:2}.site-writeup{max-width:750px;margin:55px auto 80px}.site-writeup h2{font-size:32px;letter-spacing:-1px;margin:40px 0 20px}.site-writeup p{font-size:15px;color:#afc0d9;line-height:1.8}
@media(max-width:800px){.case-body{grid-template-columns:1fr;gap:25px}.case-nav{position:static;flex-direction:row;flex-wrap:wrap;padding:0 0 20px;border-bottom:1px solid #294567}.card-copy{padding:20px}.card-title h2{font-size:24px}.metric-grid strong{font-size:22px}.metric-grid>div{padding:17px 12px}}
@media(max-width:600px){#portfolio .portfolio-header{height:76px;padding:0 6%;gap:14px}.portfolio-header nav{gap:16px;font-size:11px}.portfolio-hero{padding-top:60px;padding-bottom:45px}.portfolio-hero h1{font-size:72px;letter-spacing:-4px}.portfolio-hero>p{font-size:15px}.project-grid{grid-template-columns:1fr;gap:24px}.project-section-top{display:block}.project-section-top .muted{display:block;margin-top:13px}.project-section{padding-bottom:55px}.card-copy p{margin-bottom:24px}.portfolio-about{grid-template-columns:1fr;gap:30px;padding-top:50px;padding-bottom:55px}.portfolio-about h2{font-size:35px}.case-intro{padding-top:30px}.back-link{margin-bottom:35px}.case-intro>h1{font-size:46px;letter-spacing:-2px}.case-lead{font-size:18px}.case-hero-image{margin-bottom:35px}.case-study figcaption{font-size:10px;padding:12px}.case-body{padding-bottom:55px}.case-content>section{padding-bottom:40px;margin-bottom:35px}.workflow{grid-template-columns:1fr}.workflow li:last-child{grid-column:auto}.workflow li{padding:18px}.result-controls{grid-template-columns:1fr}.metric-grid{grid-template-columns:1fr 1fr}.metric-grid>div:nth-child(2){border-right:0}.metric-grid>div:nth-child(-n+2){border-bottom:1px solid #294567}.candidate-geometry{grid-template-columns:1fr}.winner-comparison{gap:10px}.winner-comparison>div{padding:17px 13px}.winner-comparison strong{font-size:40px}.geometry-gallery{grid-template-columns:1fr}.dev-log{grid-template-columns:1fr;gap:18px}.note-box{padding:19px}.site-writeup h2{font-size:29px}}
@media(prefers-reduced-motion:reduce){.project-card{transition:none}}

.workflow{grid-template-columns:1fr;gap:24px}.workflow li:not(:last-child)::after{content:"↓";position:absolute;left:30px;bottom:-23px;color:#81b4ff;font-size:20px}.workflow li:last-child{grid-column:auto}
.case-content{min-width:0}.case-study section,.workflow li>div{min-width:0}@media(max-width:800px){.case-body{grid-template-columns:minmax(0,1fr)}}

/* Things: restrained project pages, neutral engineering figures. */
#portfolio h1{font-size:clamp(42px,6vw,76px);letter-spacing:-2px;line-height:1.05;margin:26px 0}
#portfolio h2{font-size:clamp(28px,3.5vw,40px);letter-spacing:-1px;line-height:1.15}
#portfolio h3{letter-spacing:0}#portfolio p{line-height:1.7}
.portfolio-hero{padding-top:65px;padding-bottom:30px}.project-grid{display:flex;flex-direction:column;gap:42px}.project-card{display:grid;grid-template-columns:1.15fr 1fr;align-items:center;background:transparent;border:0;border-top:1px solid #293e5b;padding-top:32px}.project-card:hover{transform:none}.card-image{aspect-ratio:1.7;border:1px solid #293e5b}.card-copy{padding:20px 0 20px 36px}.card-copy p{margin:18px 0 24px}.card-bottom{flex-wrap:wrap;gap:12px}.case-intro{padding-bottom:32px}.case-layout{align-items:start}.case-content>section{margin-bottom:65px}.case-content p{max-width:78ch}.case-sidebar nav,aside nav{display:flex;flex-direction:column;gap:16px;margin:0;font-size:13px}aside{position:sticky;top:28px}aside a:hover{color:#8ab6ff}.engineering-chart{margin:24px 0;background:white;border:1px solid #d5deea;color:#172233}.engineering-chart svg{width:100%;display:block;max-height:680px}.engineering-chart figcaption{padding:15px 20px;color:#435164;font-size:12px;border-top:1px solid #d5deea}.evidence-figure{background:white}.evidence-figure figcaption{background:#f5f7fa;color:#435164;padding:14px}.table-scroll{max-width:100%;overflow:auto}.result-table{font-variant-numeric:tabular-nums}.result-table th,.result-table td{line-height:1.55}.result-table a{text-decoration:underline;text-underline-offset:3px}.viewer-label{display:grid;gap:12px;margin:25px 0 16px}.viewer-label select{max-width:100%;width:100%;background:#10233f;color:white;border:1px solid #456080;padding:13px;font:inherit}.model-viewer{position:relative;background:#eef3fa}.model-viewer canvas{width:100%;height:420px;display:block;touch-action:none;cursor:grab}.viewer-hint{position:absolute;top:15px;left:16px;color:#334155;font:12px Arial;pointer-events:none}.viewer-tools{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:14px 0}.viewer-tools button{background:#10233f;color:white;border:1px solid #456080;padding:10px 15px;cursor:pointer}.viewer-tools label,.compare-toggle{font-size:13px}.compare-toggle{display:block;margin-bottom:15px}.doc-links{display:grid;gap:12px;margin:25px 0}.doc-links a{border:1px solid #293e5b;padding:20px;display:flex;justify-content:space-between;gap:18px}.doc-links span{font-size:13px;color:#adbed7}#portfolio footer>span{display:block;text-transform:none;letter-spacing:0;font-family:Arial;font-size:14px}
@media(max-width:760px){.project-card{display:block}.card-copy{padding:25px 0}.portfolio-hero{padding-top:35px}.case-layout{display:block}aside{position:relative;top:0;margin-bottom:30px;border-bottom:1px solid #293e5b;padding-bottom:20px}aside nav{flex-direction:row;flex-wrap:wrap;gap:15px!important}.model-viewer canvas{height:310px}.doc-links a{display:grid;gap:8px}.case-content{min-width:0}.engineering-chart svg{min-width:530px}.engineering-chart{overflow:auto}.portfolio-header nav{gap:14px}#portfolio .portfolio-header{padding:0 6%;gap:18px}.candidate-geometry{display:block}.result-table{font-size:12px}}

.case-nav{display:block;align-self:start}.case-nav nav{display:flex;flex-direction:column;gap:16px}.case-body{align-items:start}@media(max-width:800px){.case-nav nav{flex-direction:row;flex-wrap:wrap}.engineering-chart{max-width:100%}}
