@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Noto+Sans+SC:wght@400;500;600;700&display=swap";:root{font-family:DM Sans,Noto Sans SC,sans-serif;color:#f1f0e8;background:#11120f;font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;background:#11120f}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}.site-shell{min-height:100vh;overflow:hidden;background:#11120f}.topbar{height:82px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 4.5vw;border-bottom:1px solid #30312c;font-size:13px;letter-spacing:.05em;position:relative;z-index:10}.brand{display:flex;align-items:center;gap:10px;font-weight:600}.brand-mark{width:38px;height:38px;display:block;object-fit:contain;image-rendering:pixelated}.brand>span{letter-spacing:.015em}.topbar nav{display:flex;gap:38px;color:#a4a59d}.topbar nav a:hover{color:#fff}.contact-link{justify-self:end;display:flex;align-items:center;gap:8px}.hero{min-height:calc(100vh - 82px);display:grid;grid-template-columns:minmax(360px,.9fr) 1.1fr;grid-template-rows:1fr auto;position:relative;padding:4.5vw 4.5vw 28px}.hero:before{content:"";position:absolute;inset:0;background-image:linear-gradient(#ffffff06 1px,transparent 1px),linear-gradient(90deg,#ffffff06 1px,transparent 1px);background-size:72px 72px;-webkit-mask-image:linear-gradient(to right,black,transparent 68%);mask-image:linear-gradient(to right,black,transparent 68%);pointer-events:none}.hero-copy{align-self:center;position:relative;z-index:2;padding-bottom:4vh}.eyebrow-row{display:flex;align-items:center;gap:11px;font-size:11px;letter-spacing:.18em;color:#a7a99f;margin-bottom:30px}.pulse-dot{width:7px;height:7px;background:var(--accent);border-radius:50%;box-shadow:0 0 0 5px color-mix(in srgb,var(--accent) 14%,transparent)}h1{max-width:740px;margin:0;font-size:clamp(57px,7.4vw,116px);line-height:.96;letter-spacing:-.065em;font-weight:500}.hero-copy>p{max-width:520px;margin:34px 0;color:#a7a99f;line-height:1.8;font-size:16px}.hero-actions{display:flex;gap:12px}.button{height:52px;padding:0 24px;display:inline-flex;align-items:center;justify-content:center;gap:18px;border:1px solid #40413b;border-radius:100px;font-size:14px;transition:.25s ease}.button-primary{color:#10110e;background:var(--accent);border-color:var(--accent)}.button-primary:hover{transform:translateY(-2px);box-shadow:0 10px 36px color-mix(in srgb,var(--accent) 18%,transparent)}.button-ghost:hover{border-color:#e6e5dd}.scene-wrap{min-height:590px;position:relative;margin:-1vw -4vw -1vw -5vw;background:transparent}.scene-wrap canvas{display:block;cursor:grab;touch-action:none}.scene-wrap canvas:active{cursor:grabbing}.model-loading{display:block;width:max-content;padding:10px 14px;border:1px solid #3c3e37;border-radius:100px;background:#171814d9;color:#a6a89f;font-size:10px;letter-spacing:.1em}.api-status{display:flex;align-items:center;gap:8px;color:#8b8d84;font-size:11px}.status-light{width:6px;height:6px;border-radius:50%;background:#d59458}.api-status.live .status-light{background:var(--accent);box-shadow:0 0 12px var(--accent)}.ticker{display:flex;align-items:center;justify-content:space-around;gap:30px;min-width:max-content;background:var(--accent);color:#11120f;padding:19px 3vw;font-size:12px;font-weight:600;letter-spacing:.1em}.ticker i{font-style:normal}.work-section{padding:8vw 4.5vw 9vw;background:#e9e8df;color:#12130f}.section-no{color:#6e7069;font-size:11px;letter-spacing:.1em}.work-layout{min-height:clamp(560px,86vh,760px);margin-top:34px;position:relative}.repository-cards{min-height:clamp(560px,86vh,760px);min-width:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.repository-card-shell{min-width:0;height:100%;opacity:0;clip-path:inset(0 100% 0 0);transform:translate3d(-28px,0,0) scaleX(.94);transform-origin:left center;will-change:clip-path,opacity,transform}.repository-card-shell>.project-card{height:100%}.work-copy-track{position:absolute;inset:0;z-index:4;pointer-events:none}.work-copy-sticky{width:min(48%,660px);position:absolute;top:0;right:0;text-align:right;will-change:transform}.work-copy-sticky h2{margin:0;color:#fff;font-size:clamp(30px,3.1vw,54px);line-height:1.08;letter-spacing:-.045em;font-weight:500;white-space:pre-line}.project-card{min-height:470px;padding:28px;border-radius:4px;display:flex;flex-direction:column;transition:transform .3s ease;overflow:hidden}.project-card:hover{transform:translateY(-7px)}.model-project-card{position:relative;padding:0;background:#cac9bf;border-bottom:5px solid var(--accent)}.model-project-card:nth-child(2n){background:color-mix(in srgb,var(--accent) 72%,#e9e8df)}.repository-placeholder{border:1px solid #c9c8bf;border-bottom-color:#c1c0b7;background:#d8d7ce}.repository-placeholder:before{content:"";position:absolute;inset:18px;border:1px solid #c3c2b8;border-radius:2px}.card-model{position:absolute;inset:0;min-height:100%}.card-model canvas{display:block;cursor:grab;touch-action:none}.card-model canvas:active{cursor:grabbing}.card-overlay{position:absolute;inset:0;z-index:2;padding:28px;display:flex;flex-direction:column;justify-content:space-between;pointer-events:none;background:transparent}.card-top{display:flex;align-items:center;justify-content:space-between;color:#fff;font-size:12px;letter-spacing:.08em;text-shadow:0 2px 16px #000c}.card-top svg{width:19px;height:19px}.card-copy{color:#fff;text-shadow:0 2px 18px #11120f80}.project-card h3{margin:0 0 7px;font-size:22px;font-weight:600;letter-spacing:-.02em}.project-card p{max-width:34em;margin:0;color:#d0d1c9;font-size:13px;line-height:1.55}.model-project-card .card-copy p{color:#fff}.shadow-gallery{height:min(900px,92vh);min-height:690px;position:relative;overflow:hidden;isolation:isolate;background:#171914}.shadow-gallery:before{content:"";position:absolute;inset:0;z-index:2;background:radial-gradient(circle at 50% 50%,#11120f35,#11120f85 58%,#11120fd9);pointer-events:none}.shadow-waterfall{position:absolute;inset:-72% -16%;display:grid;grid-template-columns:repeat(var(--waterfall-columns, 5),var(--waterfall-column-width, 220px));align-items:center;justify-content:center;gap:clamp(8px,1.2vw,18px)}.shadow-column{min-width:0;height:100%;overflow:hidden;transform:rotate(-30deg);transform-origin:center}.shadow-track{display:flex;flex-direction:column;will-change:transform;animation:shadow-flow-down var(--column-duration, var(--flow-duration, 40s)) linear infinite;animation-delay:calc(var(--column-index, 0) * -5s)}.shadow-gallery.speed-slow{--flow-duration: 58s}.shadow-gallery.speed-medium{--flow-duration: 40s}.shadow-gallery.speed-fast{--flow-duration: 26s}.shadow-column:hover .shadow-track{animation-play-state:paused}.shadow-cycle{padding:9px 0;display:grid;gap:clamp(10px,1.25vw,18px)}.shadow-card{width:100%;aspect-ratio:var(--photo-ratio, 1);margin:0;padding:0;border:0;border-radius:5px;position:relative;display:block;background:transparent;cursor:pointer;perspective:1200px;transition:transform .4s cubic-bezier(.2,.75,.25,1),filter .3s ease}.shadow-card:not(.is-blank):hover{z-index:3;transform:scale(.94);filter:brightness(1.06)}.shadow-card:disabled{cursor:default}.shadow-card-inner{position:absolute;inset:0;display:block;transform-style:preserve-3d;transition:transform .85s cubic-bezier(.18,.72,.2,1)}.shadow-card.is-flipped .shadow-card-inner{transform:rotateY(180deg)}.shadow-card-face{position:absolute;inset:0;border-radius:inherit;display:block;overflow:hidden;backface-visibility:hidden;-webkit-backface-visibility:hidden;box-shadow:0 22px 55px #0008}.shadow-card-front{background:#31332d}.shadow-card-front img{width:100%;height:100%;display:block;object-fit:cover}.shadow-card-back{padding:15%;transform:rotateY(180deg);background:linear-gradient(145deg,color-mix(in srgb,var(--accent) 82%,#fff),#809f47);color:#11120f}.shadow-card-copy{width:100%;height:100%;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;text-align:left}.shadow-card-copy small{margin-bottom:auto;font-size:8px;letter-spacing:.16em;text-transform:uppercase}.shadow-card-copy strong{margin-bottom:9px;font-size:clamp(14px,1.35vw,22px);line-height:1.05}.shadow-card-copy>span{font-size:clamp(9px,.72vw,12px);line-height:1.6}.shadow-card.is-blank .shadow-card-front{border:1px solid #ffffff0d;background:linear-gradient(145deg,#242620,#1b1d18);box-shadow:none}.shadow-card.is-blank:nth-child(2n) .shadow-card-front{background:linear-gradient(145deg,#30322b,#22241f)}.shadow-gallery-copy{position:absolute;inset:0;z-index:3;padding:6vw 4.5vw;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#f6f5ed;text-align:center;pointer-events:none;text-shadow:0 5px 32px #000}.shadow-gallery-copy>span{color:var(--accent);font-size:clamp(12px,1vw,15px);letter-spacing:.18em}.shadow-gallery-copy p{margin:18px 0 0;font-size:clamp(15px,1.25vw,19px);letter-spacing:.08em}.shadow-empty-note{position:absolute;z-index:4;left:50%;bottom:7%;margin:0;color:#9c9e95;font-size:10px;letter-spacing:.14em;transform:translate(-50%)}@keyframes shadow-flow-down{0%{transform:translateY(-33.333333%)}to{transform:translateY(0)}}.placeholder-page{min-height:100vh;background:#11120f;color:#f1f0e8}.placeholder-content{min-height:calc(100vh - 82px);padding:9vw 4.5vw;display:flex;flex-direction:column;justify-content:center}.placeholder-content>span{color:var(--accent, #b7f34a);font-size:10px;letter-spacing:.18em}.placeholder-content h1{margin-top:24px}.placeholder-content p{margin:25px 0;color:#8b8d84}.placeholder-content a{width:max-content;padding-bottom:4px;border-bottom:1px solid #5c5e56;font-size:12px}footer{background:#11120f;padding:46px 4.5vw 52px;font-size:11px;color:#8b8d84}.footer-directory{max-width:1200px;min-height:150px;padding-bottom:34px;display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:34px;border-bottom:1px solid #30312c}.footer-homepage-column{min-width:0}.footer-homepage-column h2{margin:0 0 13px;color:#ecebe3;font-size:12px;line-height:1.35;font-weight:600}.footer-homepage-list{margin:0;padding:0;display:grid;gap:9px;list-style:none}.footer-homepage-list a{color:#96988f;font-size:12px;line-height:1.45;transition:color .18s ease}.footer-homepage-list a:hover{color:#ecebe3;text-decoration:underline;text-underline-offset:3px}.footer-bottom{padding-top:32px;display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center}.footer-bottom p{margin:0;justify-self:center;color:#ecebe3;font-size:15px}.footer-legal{display:flex;flex-wrap:wrap;gap:6px 12px}.footer-legal a{color:#8b8d84;transition:color .2s ease}.footer-legal a:hover{color:#ecebe3}.footer-actions{justify-self:end;display:flex;align-items:center;gap:22px}.footer-actions a{white-space:nowrap}@media(max-width:900px){.topbar{grid-template-columns:1fr auto;padding:0 22px}.topbar nav{display:none}.hero{grid-template-columns:1fr;padding:70px 22px 24px}.hero-copy{text-align:left}.scene-wrap{min-height:480px;margin:-35px -50px 8px}.work-section{padding:90px 22px}.work-layout{min-height:620px}.work-copy-sticky{width:min(62%,520px)}.repository-cards{min-height:520px;grid-template-columns:repeat(3,minmax(0,1fr))}.project-card{min-height:430px}.shadow-gallery{min-height:620px}.shadow-waterfall{inset:-66% -35%;grid-template-columns:repeat(var(--mobile-columns, 3),var(--mobile-column-width, 210px));justify-content:center;gap:10px}.shadow-column:nth-child(n+4){display:none}.footer-directory{grid-template-columns:repeat(3,minmax(120px,1fr))}}@media(max-width:620px){.contact-link{font-size:0;gap:0}.contact-link svg{width:20px;height:20px}.hero{padding-top:58px}h1{font-size:clamp(51px,16vw,75px)}.hero-copy>p{margin:26px 0;font-size:14px}.button{padding:0 18px}.scene-wrap{min-height:390px;margin:-20px -40px 4px}.repository-cards{min-height:0;grid-template-columns:1fr}.repository-card-shell{min-height:430px}.work-copy-sticky{width:82%}.project-card{min-height:430px}.shadow-gallery{height:720px}.shadow-waterfall{inset:-62% -52%;gap:8px}.shadow-gallery-copy p{max-width:250px;line-height:1.7}.footer-directory{min-height:0;grid-template-columns:1fr;gap:28px}.footer-bottom{grid-template-columns:1fr auto;gap:20px}.footer-bottom p{grid-column:1 / -1;grid-row:1;justify-self:start}.footer-actions{align-items:flex-end;flex-direction:column-reverse;gap:10px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
