@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap');
:root{--bg:#090e13;--surface:#101820;--surface-strong:#151f27;--line:rgba(200,229,229,.15);--text:#eef4f3;--muted:#9cacae;--accent:#94d9cf;--accent-soft:rgba(148,217,207,.12);--font:'DM Sans',Arial,sans-serif;--mono:'JetBrains Mono',monospace}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font)}
a{color:inherit;text-decoration:none}
button,input{font:inherit}
button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.landing{min-height:100vh;background:radial-gradient(circle at 80% 9%,rgba(61,112,111,.13),transparent 33%),var(--bg)}
.site-shell{max-width:1440px;margin:auto;padding:0 clamp(22px,5vw,76px)}
.site-header,.site-footer{display:flex;justify-content:space-between;align-items:center;gap:20px}
.site-header{height:91px;border-bottom:1px solid var(--line)}
.wordmark{display:inline-flex;align-items:center;gap:13px;font:600 12px var(--mono);letter-spacing:.11em}
.wordmark em{font-style:normal;color:var(--accent)}
.brand-mark{display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--accent);color:var(--accent);font:600 12px var(--mono);letter-spacing:-.1em}
.header-note,.eyebrow,.section-heading>span,.project-number,.visual-index,.visual-coord,.site-footer{font:500 10px var(--mono);letter-spacing:.14em;color:var(--muted)}
.hero{min-height:590px;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:50px;border-bottom:1px solid var(--line)}
.hero-copy{padding:70px 0 82px;position:relative;z-index:1}
.eyebrow{color:var(--accent);display:flex;align-items:center;gap:10px}
.signal{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 15px var(--accent)}
h1,h2,h3,p{margin-top:0}
h1{font-size:clamp(54px,6.8vw,106px);font-weight:500;letter-spacing:-.075em;line-height:.99;margin:30px 0}
h1 span{color:var(--accent)}
.hero-lead{max-width:530px;color:var(--muted);font-size:17px;line-height:1.75;margin-bottom:32px}
.text-link{display:inline-flex;gap:22px;align-items:center;border-bottom:1px solid var(--accent);padding-bottom:10px;color:var(--accent);font-size:14px;font-weight:600}
.text-link span,.project-action span{font-size:19px;font-weight:400}
.hero-art{position:relative;width:min(100%,530px);aspect-ratio:1;margin:auto;background:radial-gradient(circle,rgba(81,145,144,.17),transparent 54%)}
.art-orbit{position:absolute;border:1px solid rgba(148,217,207,.24);border-radius:50%;inset:14%;transform:rotate(-22deg) scaleY(.68)}
.art-orbit-two{inset:25%;transform:rotate(36deg) scaleY(1.5);border-color:rgba(148,217,207,.16)}
.art-core{position:absolute;inset:39%;border-radius:50%;background:radial-gradient(circle at 35% 30%,#d9f6f0,#77c7be 35%,#16333b 80%);box-shadow:0 0 70px rgba(148,217,207,.29),inset -20px -17px 30px rgba(3,13,19,.8)}
.art-point{position:absolute;width:7px;height:7px;border-radius:50%;background:#c6f2e9;box-shadow:0 0 18px #b9eee5}.p1{top:20%;left:27%}.p2{top:29%;right:13%}.p3{bottom:19%;left:15%}.p4{bottom:23%;right:25%}
.art-caption{position:absolute;right:3%;bottom:6%;font:10px var(--mono);letter-spacing:.17em;color:var(--muted)}
.projects{padding:86px 0 100px}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:31px}.section-heading h2,.how-it-works h2{font-size:clamp(30px,3vw,46px);font-weight:500;letter-spacing:-.045em;margin:14px 0 0}
.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.project-card{display:flex;flex-direction:column;border:1px solid var(--line);background:var(--surface);overflow:hidden;transition:border-color .2s,transform .2s}.project-card:hover{border-color:rgba(148,217,207,.5);transform:translateY(-3px)}
.project-visual{height:270px;position:relative;overflow:hidden;background-color:#0b1319;background-image:linear-gradient(rgba(159,219,211,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(159,219,211,.045) 1px,transparent 1px);background-size:34px 34px}
.visual-index,.visual-coord{position:absolute;z-index:2;color:#98b9b8}.visual-index{top:22px;left:24px}.visual-coord{right:24px;bottom:18px}
.particle-form{position:absolute;left:50%;top:50%;width:225px;height:225px;transform:translate(-50%,-50%) rotate(-20deg);border-radius:50%;border:1px dotted rgba(148,217,207,.35);box-shadow:0 0 80px rgba(148,217,207,.1)}
.particle-form:before,.particle-form:after{content:"";position:absolute;border:1px dotted rgba(148,217,207,.4);border-radius:50%;inset:36px}.particle-form:after{inset:73px;background:rgba(148,217,207,.17);box-shadow:0 0 40px rgba(148,217,207,.26)}
.particle-form i{position:absolute;width:5px;height:5px;border-radius:50%;background:#a8e1d7;box-shadow:0 0 9px #a8e1d7}.particle-form i:nth-child(1){top:0;left:50%}.particle-form i:nth-child(2){top:14%;left:17%}.particle-form i:nth-child(3){top:30%;right:4%}.particle-form i:nth-child(4){bottom:8%;left:14%}.particle-form i:nth-child(5){bottom:15%;right:6%}.particle-form i:nth-child(6){top:39%;left:22%}.particle-form i:nth-child(7){top:30%;left:53%}.particle-form i:nth-child(8){bottom:36%;right:29%}.particle-form i:nth-child(9){bottom:2%;left:54%}.particle-form i:nth-child(10){top:7%;right:22%}.particle-form i:nth-child(11){bottom:45%;left:4%}.particle-form i:nth-child(12){top:48%;right:1%}
.anime-visual{background-color:#0d151b}.fx-ring{position:absolute;left:50%;top:50%;border:1px solid rgba(148,217,207,.7);border-radius:50%;transform:translate(-50%,-50%) rotate(-24deg) scaleY(.44);width:240px;height:240px;box-shadow:0 0 24px rgba(148,217,207,.13)}.fx-ring-two{width:340px;height:340px;transform:translate(-50%,-50%) rotate(35deg) scaleY(.38);opacity:.45}.fx-flare{position:absolute;left:50%;top:50%;width:96px;height:96px;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,#e7faf2 0,#8bd3ca 14%,rgba(79,175,167,.55) 36%,transparent 70%);box-shadow:0 0 75px rgba(148,217,207,.3)}
.gestura-visual svg{position:absolute;width:min(90%,320px);height:100%;left:50%;top:50%;transform:translate(-50%,-50%);filter:drop-shadow(0 0 20px rgba(148,217,207,.24))}
.project-info{display:flex;flex:1;flex-direction:column;padding:29px 32px 30px}.project-number{color:var(--accent)}.project-info h3{font-size:29px;font-weight:500;letter-spacing:-.04em;margin:13px 0}.project-info p{font-size:14px;line-height:1.7;color:var(--muted);max-width:520px}.tech-list{display:flex;flex-wrap:wrap;gap:8px;margin:auto 0 25px;padding-top:18px}.tech-list span{border:1px solid var(--line);padding:7px 10px;color:#b5c5c5;font:10px var(--mono)}.project-action{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:20px;color:var(--accent);font-size:14px;font-weight:600}
.how-it-works{border-top:1px solid var(--line);padding:57px 0 66px;display:grid;grid-template-columns:1fr 1fr;gap:40px}.how-it-works>p{color:var(--muted);font-size:15px;line-height:1.8;max-width:530px;align-self:end;margin:0}.site-footer{border-top:1px solid var(--line);min-height:80px}
/* Shared visual language for both full-screen experiments. */
.experience{--glass:rgba(12,20,27,.88);--line:rgba(200,229,229,.17);--white:var(--text);font-family:var(--font)!important;background:var(--bg)!important;color:var(--text)}
.experience .panel{background:rgba(12,20,27,.88)!important;border:1px solid var(--line)!important;border-radius:10px!important;box-shadow:0 15px 45px rgba(0,0,0,.2)!important;backdrop-filter:blur(18px)}
.experience .brand,.experience .loadingTitle{font-family:var(--font)!important;font-weight:600!important;letter-spacing:-.045em!important;text-shadow:none!important}
.experience .brand{font-size:27px!important}.experience .loadingTitle{font-size:24px!important;color:var(--accent)!important}
.experience .sub,.experience .label,.experience .value,.experience .btn .key{font-family:var(--mono)!important}
.experience .thinLine{height:1px!important;background:var(--line)!important}
.experience .btn{border-radius:7px!important;background:rgba(255,255,255,.025)!important}.experience .btn:hover,.experience .btn.active{border-color:rgba(148,217,207,.55)!important;background:var(--accent-soft)!important;box-shadow:none!important}.experience .btn .name{font-family:var(--font)!important;font-size:14px!important;font-weight:600!important;letter-spacing:0!important}.experience .btn .key{border-radius:5px!important}
.experience .bar{height:7px!important}.experience .bar i{background:var(--accent)!important;box-shadow:none!important}
.experience #loading{border-radius:10px!important;border-color:var(--line)!important;background:var(--surface)!important;box-shadow:0 20px 60px rgba(0,0,0,.3)!important}
.experience .back-link{position:fixed;z-index:80;right:20px;bottom:20px;display:inline-flex;align-items:center;gap:7px;padding:10px 14px;background:rgba(12,20,27,.9);border:1px solid var(--line);border-radius:7px;color:var(--accent);font:11px var(--mono);letter-spacing:.03em;backdrop-filter:blur(12px)}.experience .back-link:hover{border-color:var(--accent)}
.experience.particle-page .bg-fx{background:radial-gradient(circle at 50% 46%,rgba(78,141,141,.13),transparent 46%),linear-gradient(rgba(148,217,207,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(148,217,207,.035) 1px,transparent 1px);background-size:auto,70px 70px,70px 70px;opacity:1}.experience.particle-page .bg-scan,.experience.particle-page .bg-noise{display:none}.experience.particle-page .gesture-item{background:rgba(255,255,255,.025);border-radius:5px;font-size:11px}.experience.particle-page .gesture-active{background:var(--accent-soft);border-color:var(--accent);box-shadow:none}.experience.particle-page .btn-primary{background:var(--accent);border-radius:6px}.experience.particle-page .input-dark{border-color:var(--line);border-radius:6px}.experience.particle-page #video-container{border-color:var(--line);border-radius:8px;box-shadow:none}.experience.particle-page .spinner{border-top-color:var(--accent)}
.experience.particle-page [class*="text-cyan-"]{color:var(--accent)!important}.experience.particle-page #status-led{box-shadow:none!important}
.experience.anime-page #ui::before{display:none}.experience.anime-page #selector{max-height:calc(100vh - 232px);overflow:auto;scrollbar-width:thin}.experience.anime-page #footer{bottom:16px;left:50%;right:auto}.experience.anime-page .back-link{top:18px;bottom:auto;right:50%;transform:translateX(50%)}
@media(max-width:900px){.hero{min-height:auto;grid-template-columns:1fr}.hero-copy{padding-bottom:0}.hero-art{max-width:410px;margin:0 auto 45px}.project-grid{grid-template-columns:1fr}.project-info p{min-height:0}.experience.anime-page #selector{width:240px}.experience.anime-page #miniHud{width:210px}}
@media(max-width:640px){.site-header{height:72px}.header-note{display:none}.hero{gap:0}.hero-copy{padding:64px 0 0}.hero-lead{font-size:15px}.hero-art{max-width:300px}.projects{padding:60px 0}.project-visual{height:220px}.project-info{padding:24px}.project-info h3{font-size:25px}.how-it-works{grid-template-columns:1fr;gap:14px}.site-footer span:last-child{display:none}.experience.particle-page #hud-top{top:58px;left:12px;width:min(300px,calc(100vw - 24px))}.experience.particle-page #hud-top .panel{padding:11px}.experience.particle-page #hud-bottom{left:12px;bottom:12px;max-width:calc(100vw - 24px)}.experience.particle-page #hud-bottom .panel{width:min(420px,calc(100vw - 24px));padding:11px}.experience.particle-page #video-container{right:12px;bottom:182px;width:140px;height:105px}.experience.particle-page .back-link{top:12px;bottom:auto;right:12px}.experience.anime-page .hud{left:10px;right:10px;top:10px}.experience.anime-page .hud>.panel:last-child{display:none}.experience.anime-page #selector{left:10px;top:84px;width:min(225px,calc(100vw - 20px));max-height:calc(100vh - 240px);padding:9px}.experience.anime-page #miniHud{right:10px;top:84px;width:150px;padding:9px}.experience.anime-page #footer{width:calc(100% - 20px);left:10px;transform:none;bottom:10px;display:block;padding:10px 12px}.experience.anime-page #toggles{display:none}.experience.anime-page .back-link{top:20px;bottom:auto;right:10px;transform:none}.experience.anime-page #hint{font-size:11px}}
@media(max-width:440px){.experience.anime-page #miniHud{display:none}.experience.anime-page #selector{width:185px}.experience.anime-page .btn{padding:7px 8px}.experience.anime-page .btn .name{font-size:12px!important}.experience.anime-page .brand{font-size:21px!important}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.project-card{transition:none}}
