:root{--bg-0: #f0f0f0;--bg-1: #e8e8e8;--bg-2: #dddddd;--slab: #ececec;--line: rgba(148, 148, 148, .28);--text: #3b3b3b;--text-soft: rgba(59, 59, 59, .66);--shadow-a: rgba(140, 140, 140, .22);--shadow-b: rgba(255, 255, 255, .68);--accent-red: #cf2c2c}html{font-size:calc(100vw / 1512 * 16)}#splash{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;background:#f0f0f0;display:flex;align-items:center;justify-content:center;transition:opacity .6s ease,visibility .6s ease}#splash.fade-out{opacity:0;visibility:hidden}.splash-content{display:flex;flex-direction:column;align-items:center;gap:2rem}.splash-letters{display:flex;gap:.3rem;font-family:Chakra Petch,sans-serif;font-weight:700;font-size:8rem;line-height:1}.splash-r{color:#3b3b3b;animation:splashPulse 1s ease-in-out infinite alternate}.splash-c{color:#cf2c2c;animation:splashPulse 1s ease-in-out .2s infinite alternate}@keyframes splashPulse{0%{opacity:.4;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.splash-bar{width:7.5rem;height:.125rem;background:#00000014;border-radius:.125rem;overflow:hidden}.splash-bar-fill{width:0%;height:100%;background:#cf2c2c;border-radius:.125rem;animation:splashLoad 1s ease-in-out forwards}@keyframes splashLoad{0%{width:0%}60%{width:80%}to{width:100%}}*{box-sizing:border-box}html,body{margin:0;min-height:100%;overscroll-behavior:none}body{font-family:Chakra Petch,Avenir Next,Segoe UI,sans-serif;color:var(--text);background:linear-gradient(160deg,var(--bg-0),var(--bg-1) 52%,var(--bg-2));overflow-x:hidden}#three-canvas{position:absolute;top:0;left:0;width:100%;height:auto;z-index:0;pointer-events:none}.geo-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;overflow:hidden}.geo-lines{position:absolute;top:-6%;right:-6%;bottom:-6%;left:-6%;background-image:repeating-linear-gradient(135deg,transparent 0 2.75rem,rgba(255,255,255,.4) 2.75rem 2.875rem,transparent 2.875rem 5.75rem),repeating-linear-gradient(135deg,transparent 0 7.25rem,var(--line) 7.25rem 7.375rem,transparent 7.375rem 11.5rem);opacity:.5;transition:transform .3s ease;will-change:transform}[data-parallax]{transform:translate3d(calc(var(--parallax-x, 0px) + var(--reveal-x, 0px)),calc(var(--parallax-y, 0px) + var(--reveal-y, 0px)),0);opacity:var(--reveal-opacity, 1);will-change:transform}.geo-label{font-size:.85rem;letter-spacing:.12em;color:#3b3b3b8f;font-weight:600;text-align:center;transition:color .3s ease,transform .3s ease}.page-shell{width:min(calc(100% - 3rem),73.75rem);margin-inline:auto;padding:1.8rem 0 3rem;position:relative;z-index:1}.topbar{display:flex;justify-content:flex-start;align-items:center;gap:1rem;letter-spacing:.08em}.topbar p{margin:0}.sys{font-size:.95rem;color:var(--text-soft);font-weight:600}.sys span{display:inline-block;width:.56rem;height:.56rem;margin-right:.6rem;background:#5b5b5b;vertical-align:middle}.hero{margin-top:2.4rem;position:relative;display:grid;align-content:start}.hero-logo{position:relative;width:fit-content;transform-style:preserve-3d;transition:transform .1s ease-out}.hero-logo-img{display:block;width:22rem;height:auto}.subline{margin:1rem 0 0;max-width:38rem;font-size:1.35rem;color:var(--text-soft);line-height:1.4}.fade-in-section.is-visible{opacity:1;transform:translateY(0)}.actions{margin-top:3.2rem;max-width:53.75rem;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:1rem}.panel{text-decoration:none;color:inherit;background:#eeeeeec7;border:1px solid rgba(255,255,255,.9);padding:1.2rem 1rem 1rem;display:grid;align-content:start;box-shadow:0 1rem 1.375rem -1rem var(--shadow-a),-.125rem -.125rem .375rem var(--shadow-b);transition:box-shadow .3s ease;position:relative;overflow:hidden}.panel:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,#cf2c2c26,#cf2c2c08);opacity:0;transition:opacity .3s ease}.panel:hover,.panel:focus-visible{box-shadow:0 1.5rem 2rem -1rem #cf2c2c33,-.1875rem -.1875rem .5rem #fffc;border-color:#cf2c2c40}.panel:hover:before{opacity:1}.panel-id,.panel-name{display:block}.panel-id{font-size:.9rem;letter-spacing:.08em;color:#3b3b3b80}.panel-name{margin-top:.6rem;font-size:1.8rem;letter-spacing:.01em;word-break:break-all;overflow-wrap:break-word}.what{margin-top:2.1rem;display:flex;flex-wrap:wrap;gap:.6rem 1.3rem;max-width:56.25rem}.what p{margin:0;font-size:1rem;letter-spacing:.14em;color:#3b3b3b73}.box-section{margin-top:4.6rem;padding-bottom:0}.box-section-title{margin:0 0 1rem;letter-spacing:.12em;color:#3b3b3b8c;font-weight:600;font-size:.95rem}.box-stage{position:relative;height:min(200vh,125rem);min-height:87.5rem;border:none;background:transparent;overflow:visible}.moving-box{position:absolute;display:grid;place-items:center;padding:.45rem;pointer-events:none}.moving-box .geo-label{position:fixed;z-index:100;background:#fffffff2;padding:.5rem 1rem;border-radius:.375rem;box-shadow:0 .25rem 1rem #00000026;opacity:0;pointer-events:none;font-size:.945rem;letter-spacing:.12em;color:#3b3b3bd9;font-weight:600;text-align:center;white-space:nowrap;-webkit-backdrop-filter:blur(.25rem);backdrop-filter:blur(.25rem);border:1px solid rgba(255,255,255,.8);transition:opacity .3s ease}.mb1{width:13.125rem;aspect-ratio:1;left:4%;top:8%;transition-delay:.1s}.mb2{width:17.5rem;aspect-ratio:1.12;right:6%;top:6%;transition-delay:.2s}.mb3{width:11.875rem;aspect-ratio:1;left:40%;top:36%;transition-delay:.3s}.mb4{width:13.75rem;aspect-ratio:1;left:8%;bottom:12%;transition-delay:.4s}.mb5{width:11.25rem;aspect-ratio:1;right:38%;bottom:10%;transition-delay:.5s}.mb6{width:15rem;aspect-ratio:1.05;right:8%;bottom:11%;transition-delay:.6s}.projects-section{margin-top:4rem}.projects-grid{display:flex;flex-direction:column;align-items:center;gap:10rem}.project-card{width:80%;text-decoration:none;color:inherit;background:#eeeeeec7;border:1px solid rgba(255,255,255,.9);overflow:hidden;box-shadow:0 1rem 1.375rem -1rem var(--shadow-a),-.125rem -.125rem .375rem var(--shadow-b);transition:box-shadow .3s ease,border-color .3s ease;display:flex;flex-direction:column}.project-card:hover,.project-card:focus-visible{box-shadow:0 1.5rem 2rem -1rem #cf2c2c33,-.1875rem -.1875rem .5rem #fffc;border-color:#cf2c2c40}.project-image-wrap{width:100%;aspect-ratio:16 / 10;overflow:hidden}.project-image-wrap img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease}.project-card:hover .project-image-wrap img{transform:scale(1.03)}.project-divider{margin:0;border:none;border-top:1px solid rgba(59,59,59,.12)}.project-info{padding:1.1rem 1.2rem 1.3rem}.project-title{margin:0;font-size:1.25rem;font-weight:600;letter-spacing:.04em}.project-desc{margin:.4rem 0 0;font-size:.95rem;color:var(--text-soft);line-height:1.45}.site-footer{margin-top:2.4rem;padding:1.4rem 0 .3rem;border-top:1px solid rgba(255,255,255,.7);display:flex;justify-content:space-between;align-items:center;gap:1rem}.footer-brand{margin:0;font-size:.9rem;letter-spacing:.2em;color:#3b3b3b9e;font-weight:600}.footer-links{display:flex;gap:1.2rem;flex-wrap:wrap;justify-content:flex-end}.footer-links a{text-decoration:none;color:#3b3b3b9e;font-size:.86rem;letter-spacing:.08em}.footer-links a:hover,.footer-links a:focus-visible{color:#3b3b3be6}@media(max-width:860px){.page-shell{width:min(calc(100% - 1.6rem),73.75rem)}.actions{grid-template-columns:1fr}.box-stage{min-height:15.5rem}.mb1{left:4%;top:7%;transition-delay:.1s}.mb2{right:2%;top:6%;transition-delay:.2s}.mb3{left:34%;top:38%;transition-delay:.3s}.mb4{left:6%;bottom:12%;transition-delay:.4s}.mb5{right:34%;bottom:9%;transition-delay:.5s}.mb6{right:5%;bottom:10%;transition-delay:.6s}.site-footer{align-items:flex-start;flex-direction:column;padding-top:1.1rem;gap:.8rem}.footer-links{justify-content:flex-start}}@media(prefers-reduced-motion:reduce){[data-parallax]{transform:none!important;transition:none!important}.hero-logo{transform:none!important}.panel{transition:none!important}}.step-1-frame{background:#0f0f11;border:1px solid rgba(255,255,255,.06);box-shadow:0 1.25rem 1.75rem -1rem #0009,inset -.1875rem -.1875rem .5rem #ffffff08;color:#eaeaea;padding:1rem;border-radius:.375rem}.step-1-frame.light{background:var(--slab);border:1px solid rgba(255,255,255,.72);box-shadow:0 1rem 1.375rem -1rem var(--shadow-a),-.125rem -.125rem .375rem var(--shadow-b);color:var(--text)}
