:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-synthesis:none;text-rendering:optimizelegibility;--paper:#f0eee7;--paper-bright:#f8f6ef;--ink:#111214;--muted:#686a6e;--blue:#3157ff;--hairline:#11121433;--grid:#1112140e;--gutter:clamp(20px, 3.25vw, 58px);--header-h:72px;--max:1600px;--ease-response:cubic-bezier(.2, .8, .2, 1);--ease-settle:cubic-bezier(.16, 1, .3, 1);font-family:Helvetica Neue,Helvetica,Arial,sans-serif}*{box-sizing:border-box}html{background:var(--paper);scroll-behavior:smooth;min-width:320px}body{min-width:320px;color:var(--ink);background:var(--paper);margin:0;overflow-x:hidden}body.overlay-open{overflow:hidden}button,a{color:inherit;font:inherit}button{cursor:pointer}a{text-underline-offset:4px}::selection{color:var(--paper-bright);background:var(--blue)}.trace-site{min-height:100svh;overflow:clip}.micro{letter-spacing:.075em;text-transform:uppercase;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:10px;font-weight:500;line-height:1.35}.skip-link{z-index:2000;color:#fff;background:var(--blue);padding:12px 16px;transition:transform .16s;position:fixed;top:12px;left:12px;transform:translateY(-150%)}.skip-link:focus{transform:none}.route-announcer{clip:rect(0 0 0 0);width:1px;height:1px;position:fixed;overflow:hidden}.site-header{z-index:100;height:var(--header-h);padding:0 var(--gutter);border-bottom:1px solid var(--hairline);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#f0eee7db;grid-template-columns:1fr auto 1fr;align-items:center;display:grid;position:fixed;inset:0 0 auto}.site-mark{letter-spacing:-.05em;justify-self:start;align-items:center;gap:11px;font-size:12px;font-weight:750;text-decoration:none;display:inline-flex}.site-mark i{background:var(--blue);transform-origin:0;width:32px;height:1px;transition:transform .3s var(--ease-settle);display:block}.site-mark:hover i,.site-mark:focus-visible i{transform:scaleX(1.8)}.site-header nav{height:100%;display:flex}.site-header button{border:0;border-left:1px solid var(--hairline);letter-spacing:.06em;background:0 0;min-width:112px;padding:0 20px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:10px}.site-header button:last-child{border-right:1px solid var(--hairline)}.site-header button:hover,.site-header button:focus-visible{color:var(--paper-bright);background:var(--blue)}.site-status{letter-spacing:.07em;justify-self:end;align-items:center;gap:8px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:9px;text-decoration:none;display:inline-flex}.site-status i{background:var(--blue);border-radius:50%;width:6px;height:6px;box-shadow:0 0 0 4px #3157ff1c}.trace-svg{z-index:1;pointer-events:none;position:absolute;inset:0 auto auto 0;overflow:visible}.trace-line{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.trace-line--base{stroke:#11121445;stroke-width:1px}.trace-line--progress{stroke:var(--blue);stroke-width:1.6px}.trace-line--active{stroke:var(--blue);stroke-width:2.2px;opacity:.72;transition:opacity .18s}.trace-line--pulse{stroke:var(--blue);stroke-width:5px;stroke-dasharray:.018 .982;filter:drop-shadow(0 0 5px #3157ff99);animation:.72s cubic-bezier(.65,0,.2,1) both trace-pulse}.trace-webgl{z-index:1;pointer-events:none;mix-blend-mode:multiply;position:fixed;inset:0}.trace-anchor{z-index:4;border:1px solid var(--ink);background:var(--paper);width:11px;height:11px;transition:width .18s var(--ease-response), height .18s var(--ease-response), border-color .18s ease, background .18s ease, box-shadow .18s ease;border-radius:50%;display:block;position:absolute;transform:translate(-50%,-50%)}.trace-anchor:after{content:"";background:var(--blue);border-radius:50%;width:3px;height:3px;position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%)}.trace-anchor.is-active{border-color:var(--blue);width:23px;height:23px;box-shadow:0 0 0 7px #3157ff1a}@keyframes trace-pulse{0%{stroke-dashoffset:1px;opacity:1}82%{opacity:1}to{stroke-dashoffset:0;opacity:0}}.home-page,.detail-page,.dead-end,.site-footer{z-index:2;position:relative}.home-hero{min-height:100svh;padding:calc(var(--header-h) + 28px) var(--gutter) 36px;border-bottom:1px solid var(--hairline);isolation:isolate;grid-template-rows:auto 1fr auto;grid-template-columns:repeat(12,minmax(0,1fr));gap:0 18px;display:grid}.home-hero:before{content:"";z-index:-1;inset:var(--header-h) var(--gutter) 0;background-image:linear-gradient(to right, var(--grid) 1px, transparent 1px);pointer-events:none;background-size:8.33333% 100%;position:absolute}.hero-meta{color:var(--muted);grid-column:1/-1;justify-content:space-between;align-self:start;display:flex}.home-hero h1{letter-spacing:-.082em;grid-column:1/-1;align-self:center;margin:0;font-size:clamp(72px,14.25vw,226px);font-weight:650;line-height:.72}.home-hero h1 span{width:max-content;display:block}.home-hero h1 span:last-child{margin-left:8.4vw}.hero-role{border-top:1px solid var(--ink);grid-column:2/7;grid-template-columns:minmax(0,1fr) auto;align-self:end;align-items:end;gap:18px;padding-top:16px;display:grid;position:relative}.hero-role .trace-anchor{top:0;left:0}.hero-role p{letter-spacing:-.04em;margin:0;font-size:clamp(25px,2.45vw,38px);line-height:1}.hero-role a{text-transform:uppercase;letter-spacing:.06em;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:10px;line-height:1.2;text-decoration:none}.hero-role a span{color:var(--blue);margin-top:8px;font-size:17px;display:block}.hero-note{max-width:330px;color:var(--muted);letter-spacing:-.015em;grid-column:9/-1;place-self:end;margin:0;font-size:clamp(16px,1.3vw,20px);line-height:1.42}.work-index{padding:clamp(110px, 11vw, 185px) var(--gutter) 0}.section-header{grid-template-columns:repeat(12,minmax(0,1fr));gap:18px;margin-bottom:clamp(100px,12vw,190px);display:grid}.section-header>p{color:var(--muted);grid-column:1/3;margin:5px 0 0}.section-header h2{letter-spacing:-.067em;grid-column:4/11;margin:0;font-size:clamp(58px,8.5vw,136px);font-weight:580;line-height:.86}.project-entry{--project-accent:var(--blue);border-top:1px solid var(--ink);grid-template-columns:repeat(12,minmax(0,1fr));gap:18px;min-height:min(980px,105svh);padding:clamp(68px,7vw,112px) 0;display:grid;position:relative}.project-rail{grid-column:1/2;min-height:100%;position:relative}.project-rail .trace-anchor{top:6px;left:0}.project-number{margin:-3px 0 0 28px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:10px;display:block}.project-link{color:inherit;grid-column:2/-1;grid-template-columns:repeat(11,minmax(0,1fr));gap:18px;text-decoration:none;display:grid}.project-heading{grid-column:1/5;padding-right:clamp(20px,3vw,52px)}.project-heading .micro{color:var(--muted);margin:0 0 48px}.project-heading h3{letter-spacing:-.065em;text-wrap:balance;margin:0;font-size:clamp(54px,6.15vw,98px);font-weight:590;line-height:.86}.project-heading>p:not(.micro){max-width:390px;color:var(--muted);margin:38px 0 0;font-size:clamp(17px,1.35vw,21px);line-height:1.43}.project-open{letter-spacing:.06em;border-bottom:1px solid;align-items:center;gap:16px;margin-top:56px;padding-bottom:7px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:10px;display:inline-flex}.project-open i{color:var(--project-accent);transition:transform .2s var(--ease-response);font-size:17px;font-style:normal}.project-link:hover .project-open i,.project-link:focus-visible .project-open i{transform:translate(5px,-5px)}.project-visual{--project-accent:var(--blue);min-height:560px;color:var(--paper-bright);background:var(--ink);transition:clip-path .76s var(--ease-settle), transform .76s var(--ease-settle);clip-path:inset(0);isolation:isolate;grid-column:5/-1;position:relative;overflow:hidden}.project-entry:not(:hover):not(:focus-within) .project-visual{clip-path:inset(0 0 0 5%)}.project-entry:hover .project-visual,.project-entry:focus-within .project-visual{transform:translate(-1.5%)}.project-visual:before{content:"";opacity:.55;background-image:linear-gradient(#ffffff0f 1px,#0000 1px),linear-gradient(90deg,#ffffff0f 1px,#0000 1px);background-size:8.333% 12.5%;position:absolute;inset:0}.project-visual:after{content:"";aspect-ratio:1;border:1px solid color-mix(in srgb, var(--project-accent), transparent 40%);width:60%;box-shadow:0 0 90px color-mix(in srgb, var(--project-accent), transparent 72%);transition:transform .9s var(--ease-settle);border-radius:50%;position:absolute;top:12%;left:18%;transform:scale(.92)}.project-link:hover .project-visual:after,.project-link:focus-visible .project-visual:after{transform:scale(1.08)}.visual-coordinate,.visual-caption{z-index:3;text-transform:uppercase;letter-spacing:.07em;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:9px;position:absolute}.visual-coordinate{top:18px;left:18px}.visual-caption{bottom:18px;right:18px}.visual-axis,.visual-route{z-index:2;background:#ffffff38;display:block;position:absolute}.visual-axis--x{width:100%;height:1px;top:50%;left:0}.visual-axis--y{width:1px;height:100%;top:0;left:50%}.visual-route{background:var(--project-accent);transform-origin:0;height:1px}.visual-route--one{width:70%;top:36%;left:15%;transform:rotate(17deg)}.visual-route--two{width:58%;top:70%;left:27%;transform:rotate(-24deg)}.visual-node{z-index:4;border:2px solid var(--paper-bright);background:var(--project-accent);width:12px;height:12px;box-shadow:0 0 0 8px color-mix(in srgb, var(--project-accent), transparent 82%);border-radius:50%;position:absolute}.visual-node--one{top:40%;left:20%}.visual-node--two{top:52%;left:54%}.visual-node--three{top:31%;left:78%}.project-visual--network:after{border-radius:0;width:74%;top:-10%;left:13%;transform:rotate(23deg)}.project-visual--network .visual-route--one{width:86%;top:48%;left:8%;transform:rotate(-10deg)}.project-visual--network .visual-route--two{top:30%;transform:rotate(38deg)}.project-visual--language:after{border-radius:0;width:45%;top:18%;left:28%;transform:rotate(45deg)}.project-visual--language .visual-axis--x{transform:rotate(6deg)}.project-visual--language .visual-route--one{transform:rotate(-37deg)}.technology-list{flex-wrap:wrap;grid-column:5/-1;align-self:end;gap:7px;margin:0;padding:0;list-style:none;display:flex}.technology-list li{border:1px solid var(--hairline);text-transform:uppercase;letter-spacing:.04em;border-radius:99px;padding:8px 11px 7px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:9px}.home-contact{min-height:82svh;padding:clamp(100px, 11vw, 180px) var(--gutter);color:var(--paper-bright);background:var(--blue);grid-template-columns:repeat(12,minmax(0,1fr));align-content:center;gap:18px;margin-top:clamp(80px,10vw,160px);display:grid;position:relative}.home-contact .trace-anchor{left:var(--gutter);border-color:var(--paper-bright);background:var(--blue);top:50%}.home-contact .trace-anchor:after{background:var(--paper-bright)}.home-contact>.micro{grid-column:1/3;margin:8px 0 0}.home-contact h2{letter-spacing:-.075em;grid-column:3/11;margin:0;font-size:clamp(70px,11vw,175px);font-weight:590;line-height:.79}.contact-node{border-top:1px solid #ffffff8c;grid-column:3/10;grid-template-columns:1fr auto;align-items:center;gap:18px;margin-top:82px;padding-top:18px;display:grid}.contact-node a{letter-spacing:-.05em;font-size:clamp(27px,4vw,63px);font-weight:560;line-height:1;text-decoration:none}.contact-node a span{font-size:.45em}.contact-node button{color:inherit;letter-spacing:.06em;background:0 0;border:0;padding:10px 0;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:9px}.contact-node.is-copied button{color:var(--ink)}.contact-context{grid-column:10/-1;align-self:end;margin:82px 0 0;font-size:14px;line-height:1.55}.detail-page{--project-accent:var(--blue);padding-top:var(--header-h)}.detail-hero{min-height:100svh;padding:40px var(--gutter) clamp(80px, 8vw, 130px);grid-template-columns:repeat(12,minmax(0,1fr));gap:18px;display:grid}.back-link{grid-column:1/3;align-self:start;text-decoration:none}.detail-title-row{grid-column:1/-1;grid-template-columns:repeat(12,minmax(0,1fr));align-items:start;gap:18px;margin-top:clamp(70px,9vw,150px);display:grid;position:relative}.detail-title-row .trace-anchor{top:15px;left:0}.detail-index{grid-column:1/2;margin:3px 0 0 28px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:10px}.detail-title-row h1{letter-spacing:-.075em;grid-column:2/-1;margin:0;font-size:clamp(78px,12.5vw,200px);font-weight:590;line-height:.77}.detail-summary{grid-column:3/11;grid-template-columns:1.3fr 1fr;gap:clamp(50px,8vw,130px);margin:78px 0;display:grid}.detail-summary>p{letter-spacing:-.035em;margin:0;font-size:clamp(24px,2.5vw,39px);line-height:1.15}.detail-summary dl{margin:0}.detail-summary dl div{border-top:1px solid var(--hairline);grid-template-columns:72px 1fr;gap:20px;padding:11px 0;display:grid}.detail-summary dt,.detail-summary dd{letter-spacing:.045em;margin:0;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:9px;line-height:1.45}.detail-summary dt{color:var(--muted)}.detail-hero>.project-visual{grid-column:2/-1;min-height:70svh}.detail-section{min-height:80svh;padding:clamp(100px, 12vw, 190px) var(--gutter);border-top:1px solid var(--ink);grid-template-columns:repeat(12,minmax(0,1fr));align-content:center;gap:18px;display:grid;position:relative}.detail-section-node{grid-column:1/2;align-self:start;position:relative}.detail-section-node .trace-anchor{top:5px;left:0}.detail-section-node>span{margin-left:28px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:10px;display:block}.detail-section h2{letter-spacing:.08em;grid-column:2/5;margin:0;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:10px}.detail-section>p{letter-spacing:-.052em;text-wrap:balance;grid-column:5/11;margin:-8px 0 0;font-size:clamp(32px,4vw,64px);line-height:1.04}.architecture{border:1px solid var(--hairline);background-image:linear-gradient(var(--grid) 1px, transparent 1px), linear-gradient(90deg, var(--grid) 1px, transparent 1px);background-size:10% 20%;grid-column:3/12;min-height:520px;margin-top:100px;position:relative}.architecture svg{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.architecture path{fill:none;stroke:var(--hairline);stroke-width:.2px;vector-effect:non-scaling-stroke;transition:stroke .16s,stroke-width .16s}.architecture path.is-active{stroke:var(--project-accent);stroke-width:2px}.architecture-node{text-align:left;background:0 0;border:0;width:120px;padding:0;position:absolute;transform:translate(-7px,-7px)}.architecture-node i{border:1px solid var(--ink);background:var(--paper);border-radius:50%;width:14px;height:14px;transition:box-shadow .18s,background .18s;display:block}.architecture-node span{margin-top:10px;font-size:13px;display:block}.architecture-node small{max-width:115px;color:var(--muted);opacity:0;margin-top:4px;font-size:10px;line-height:1.3;transition:opacity .18s;display:block}.architecture-node:hover i,.architecture-node:focus-visible i,.architecture-node.is-active i{background:var(--project-accent);box-shadow:0 0 0 7px color-mix(in srgb, var(--project-accent), transparent 82%)}.architecture-node:hover small,.architecture-node:focus-visible small,.architecture-node.is-active small{opacity:1}.detail-next{min-height:65svh;padding:120px var(--gutter);color:var(--paper-bright);background:var(--ink);align-content:center;display:grid;position:relative}.detail-next .trace-anchor{left:var(--gutter);border-color:var(--paper-bright);background:var(--ink);top:50%}.detail-next p{color:#929398;margin:0 0 38px}.detail-next>a{letter-spacing:-.065em;width:-moz-fit-content;width:fit-content;font-size:clamp(52px,9vw,140px);font-weight:580;line-height:.85;text-decoration:none}.detail-next>a span{color:var(--project-accent);vertical-align:top;font-size:.35em}.overview{z-index:1000;padding:26px var(--gutter);color:var(--paper-bright);animation:overlay-in .56s var(--ease-settle) both;background:#111214fb;grid-template-rows:auto 1fr auto;display:grid;position:fixed;inset:0}.overview>header{justify-content:space-between;align-items:start;display:flex}.overview header p{color:#929398;margin:0 0 8px}.overview h2{letter-spacing:-.055em;margin:0;font-size:clamp(38px,5vw,76px);font-weight:580;line-height:.85}.overview button,.info-panel button{color:inherit;letter-spacing:.06em;background:0 0;border:0;padding:12px 0 12px 16px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:10px}.overview button span,.info-panel button span{color:var(--blue);margin-left:10px;font-size:17px}.overview-map{align-self:center;width:min(100%,1400px);height:min(62vh,680px);margin-inline:auto;position:relative}.overview-map svg{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.overview-map path{fill:none;stroke:#f8f6ef57;stroke-width:1px;vector-effect:non-scaling-stroke}.overview-node{color:inherit;text-align:left;background:0 0;border:0;grid-template-columns:15px auto;gap:7px 12px;padding:8px;text-decoration:none;display:grid;position:absolute;transform:translate(-8px,-8px)}.overview-node i{background:var(--ink);border:1px solid;border-radius:50%;grid-row:1/3;width:15px;height:15px}.overview-node span{font-size:clamp(13px,1.2vw,18px);line-height:1}.overview-node small{color:#929398;letter-spacing:.06em;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:8px}.overview-node:hover i,.overview-node:focus-visible i,.overview-node.is-active i{border-color:var(--blue);background:var(--blue);box-shadow:0 0 0 7px #3157ff26}.overview-node--root{top:50%;left:8%}.overview-node--1{top:17.3%;left:43%}.overview-node--2{top:50%;left:78%}.overview-node--3{top:80%;left:95%;transform:translate(-100%,-8px)}.overview-node--info{top:35.5%;left:75%}.overview-node--contact{top:65%;left:93%;transform:translate(-100%,-8px)}.overview-hint{color:#929398;align-self:end;margin:0}@keyframes overlay-in{0%{opacity:0;clip-path:inset(48%)}to{opacity:1;clip-path:inset(0)}}.info-panel{z-index:1100;width:min(720px,100%);padding:26px var(--gutter);color:var(--paper-bright);background:var(--ink);animation:drawer-in .52s var(--ease-settle) both;grid-template-rows:auto 1fr auto;display:grid;position:fixed;inset:0 0 0 auto;box-shadow:-30px 0 90px #0003}.info-panel header{justify-content:space-between;align-items:start;display:flex}.info-panel header p{color:#929398;margin:12px 0 0}.info-body{align-self:center}.info-body h2{letter-spacing:-.06em;margin:0 0 60px;font-size:clamp(48px,6vw,84px);font-weight:580;line-height:.88}.info-body>p{color:#c4c4c2;max-width:590px;margin:0 0 20px;font-size:18px;line-height:1.5}.info-body dl{grid-template-columns:1fr 1fr;gap:28px;margin:55px 0;display:grid}.info-body dl div{border-top:1px solid #ffffff38;padding-top:12px}.info-body dt,.info-body dd{letter-spacing:.05em;margin:0;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:9px;line-height:1.55}.info-body dt{color:#888a8f;margin-bottom:16px}.info-email{letter-spacing:-.04em;border-top:1px solid #ffffff73;border-bottom:1px solid #ffffff73;justify-content:space-between;padding:18px 0;font-size:clamp(25px,3.5vw,44px);text-decoration:none;display:flex}.info-email span{color:var(--blue);font-size:.6em}.info-panel footer{align-items:end;gap:28px;display:flex}.info-panel footer a{letter-spacing:.06em;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:9px}@keyframes drawer-in{0%{transform:translate(100%)}to{transform:none}}.dead-end{min-height:calc(100svh - 80px);padding:calc(var(--header-h) + 40px) var(--gutter) 40px;place-items:center;display:grid;overflow:hidden}.dead-end>div{z-index:2;position:relative}.dead-end p{color:var(--muted);margin:0 0 30px}.dead-end h1{letter-spacing:-.085em;margin:0;font-size:clamp(110px,21vw,330px);font-weight:600;line-height:.62}.dead-end a{border-top:1px solid var(--ink);justify-content:space-between;margin-top:72px;padding:16px 0;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px;text-decoration:none;display:flex}.dead-end a span{color:var(--blue)}.dead-end>.trace-anchor:first-child{left:var(--gutter);top:50%}.dead-end>.trace-anchor:last-child{left:calc(100% - var(--gutter));top:50%}.site-footer{min-height:80px;padding:0 var(--gutter);color:var(--paper-bright);background:var(--ink);grid-template-columns:1fr auto 1fr;align-items:center;gap:30px;display:grid}.site-footer>span:nth-child(2){color:#888a8f;justify-self:center}.site-footer nav{justify-self:end;gap:24px;display:flex}.site-footer a{color:inherit}::view-transition-old(root){animation-duration:.42s;animation-timing-function:var(--ease-settle)}::view-transition-new(root){animation-duration:.42s;animation-timing-function:var(--ease-settle)}a:focus-visible,button:focus-visible{outline:2px solid var(--blue);outline-offset:5px}@media (max-width:1050px){.home-hero h1{font-size:14vw}.hero-role{grid-column:1/7}.project-heading{grid-column:1/6}.project-visual,.technology-list{grid-column:6/-1}.detail-summary,.home-contact h2{grid-column:2/12}.contact-node{grid-column:2/10}}@media (max-width:760px){:root{--header-h:62px;--gutter:20px}.site-header{grid-template-columns:1fr auto}.site-header nav button{min-width:88px;padding-inline:12px}.site-header nav button:first-child{border-left:0}.site-status,.trace-webgl{display:none}.home-hero{min-height:92svh;padding-top:calc(var(--header-h) + 22px);grid-template-rows:auto 1fr auto auto;gap:0}.home-hero:before{background-size:25% 100%}.hero-meta{font-size:8px}.home-hero h1{grid-column:1/-1;align-self:center;font-size:clamp(62px,20vw,104px);line-height:.76}.home-hero h1 span:last-child{margin-left:0}.hero-role{grid-area:3/1/auto/-1}.hero-role p{font-size:25px}.hero-note{grid-area:4/1/auto/-1;justify-self:start;margin-top:28px;font-size:15px}.work-index{padding-top:90px}.section-header{margin-bottom:100px;display:block}.section-header h2{margin-top:32px;font-size:clamp(52px,16vw,78px)}.project-entry{min-height:auto;padding:60px 0 96px;display:block}.project-rail{position:absolute;top:64px;left:0}.project-link{flex-direction:column;padding-left:34px;display:flex}.project-heading{padding-right:0}.project-heading .micro{margin-bottom:28px}.project-heading h3{font-size:clamp(49px,15vw,74px)}.project-heading>p:not(.micro){margin-top:24px}.project-open{margin-top:36px}.project-visual{order:2;min-height:66svh;margin-top:52px;clip-path:none!important}.technology-list{order:3;margin-top:18px}.home-contact{min-height:78svh;padding-block:100px;display:block}.home-contact h2{margin:46px 0 0;font-size:clamp(64px,19vw,96px)}.contact-node{margin-top:72px;display:block}.contact-node a{overflow-wrap:anywhere;font-size:clamp(26px,8.1vw,42px);display:block}.contact-node button{margin-top:12px}.contact-context{margin-top:58px}.detail-hero{padding-top:28px;display:block}.detail-title-row{margin-top:90px;padding-left:32px;display:block}.detail-index{margin:0;position:absolute;top:4px;left:0}.detail-title-row h1{font-size:clamp(70px,19vw,104px)}.detail-summary{margin:60px 0;display:block}.detail-summary dl{margin-top:44px}.detail-hero>.project-visual{min-height:64svh}.detail-section{min-height:74svh;padding-block:100px;display:block}.detail-section-node{left:var(--gutter);position:absolute;top:105px}.detail-section h2{margin-left:62px}.detail-section>p{margin:65px 0 0 32px;font-size:clamp(32px,10vw,50px)}.architecture{min-height:460px;margin:80px 0 0 32px}.architecture-node{width:90px}.detail-next>a{font-size:clamp(52px,16vw,82px)}.overview{padding-block:20px}.overview-map{height:70vh;margin-top:20px}.overview-map svg{display:none}.overview-map:before{content:"";background:#ffffff47;width:1px;position:absolute;top:4%;bottom:4%;left:14px}.overview-node,.overview-node--root,.overview-node--1,.overview-node--2,.overview-node--3,.overview-node--info,.overview-node--contact{align-content:center;width:100%;height:16.6667%;display:grid;position:relative;inset:auto;transform:none}.overview-node i{background:var(--ink)}.overview-hint{display:none}.info-panel{padding-block:20px}.info-body h2{margin-bottom:42px}.info-body>p{font-size:16px}.info-body dl{margin-block:38px}.site-footer{grid-template-columns:1fr auto;align-content:center;min-height:116px}.site-footer>span:nth-child(2){display:none}}@media (max-width:420px){.site-mark i{width:18px}.site-header nav button{min-width:78px;font-size:8px}.project-link{padding-left:28px}.project-visual{min-height:480px}.visual-caption{text-align:right;max-width:140px}.info-body h2{font-size:44px}.info-body dl{gap:16px}}@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}.trace-webgl{display:none}.project-entry:not(:hover):not(:focus-within) .project-visual{clip-path:none}}@media (forced-colors:active){.trace-anchor,.visual-node,.architecture-node i{forced-color-adjust:none}}
