@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700&family=Playfair+Display:ital,wght@1,600&display=swap');

:root{--ink:#171a16;--paper:#e8e5d9;--acid:#d4ff3f;--line:rgba(232,229,217,.18);--muted:#a9aa9f}
*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--ink)}body{margin:0;color:var(--paper);background:var(--ink);font-family:Manrope,"Yu Gothic",sans-serif}button,input{font:inherit}button{color:inherit}.grain{position:fixed;inset:0;pointer-events:none;opacity:.065;z-index:10;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.95' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E")}
.topbar{height:84px;padding:0 clamp(22px,4vw,64px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;gap:12px;align-items:center;color:inherit;text-decoration:none;font:500 10px/1.15 DM Mono,monospace;letter-spacing:.12em}.brand b{color:var(--acid);font-weight:500}.brand-mark{width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--paper);font:600 16px DM Mono;transform:rotate(-6deg)}.top-actions{display:flex;align-items:center;gap:24px}.live,.install{font:500 10px DM Mono;letter-spacing:.12em}.live i{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--acid);margin-right:8px;box-shadow:0 0 12px var(--acid)}.install{background:transparent;border:1px solid var(--line);padding:9px 13px;cursor:pointer}
main{width:min(1540px,100%);margin:auto}.hero{display:grid;grid-template-columns:1fr 1fr;min-height:560px;border-bottom:1px solid var(--line)}.hero-copy{padding:72px clamp(22px,4vw,64px) 55px;border-right:1px solid var(--line)}.eyebrow,.section-title>p,.panel-head p{margin:0 0 24px;color:var(--acid);font:500 10px DM Mono;letter-spacing:.18em}h1{margin:0;font-size:clamp(54px,7.2vw,112px);line-height:.84;letter-spacing:-.065em;font-weight:600}h1 em{font-family:"Playfair Display",serif;font-weight:600;color:var(--acid)}.lead{max-width:650px;margin:40px 0 0;color:#bebfb6;line-height:1.9;font-size:14px}
.mode-browser{display:grid;grid-template-rows:auto 1fr;min-width:0}.category-switch{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--line)}.category{border:0;border-right:1px solid var(--line);background:#141713;padding:15px 9px;color:#8f9389;font:500 8px DM Mono;letter-spacing:.08em;cursor:pointer}.category:last-child{border-right:0}.category b{margin-left:5px;color:#5f635b;font-weight:500}.category.active{color:var(--acid);background:#1d211b}.category.active b{color:var(--paper)}.mode-switch{display:grid;grid-auto-rows:1fr}.mode{position:relative;border:0;border-bottom:1px solid var(--line);background:transparent;text-align:left;padding:20px clamp(24px,4vw,60px);cursor:pointer;display:grid;grid-template-columns:44px 1fr;transition:.25s ease}.mode[hidden]{display:none}.mode:last-child{border-bottom:0}.mode span{font:500 10px DM Mono;color:var(--muted);padding-top:5px}.mode strong{font-size:clamp(18px,1.7vw,27px);letter-spacing:-.04em;font-weight:500}.mode small{grid-column:2;color:var(--muted);margin-top:4px;font-size:11px}.mode::after{content:"↗";position:absolute;right:28px;top:50%;font-size:20px;opacity:.25;transform:translateY(-50%)}.mode.active{background:var(--acid);color:var(--ink)}.mode.active span,.mode.active small{color:#424835}.mode.active::after{opacity:1}.tiling-mode{min-height:180px}
.lab{display:grid;grid-template-columns:minmax(0,1fr) 390px;min-height:710px;border-bottom:1px solid var(--line)}.viewport-shell{position:relative;min-height:680px;overflow:hidden;background:#080a08;cursor:grab}.viewport-shell:active{cursor:grabbing}#glCanvas{display:block;width:100%;height:100%;position:absolute;inset:0;touch-action:none}.fallback{position:absolute;inset:0;place-items:center;display:grid;color:var(--muted)}.fallback[hidden]{display:none}.viewport-top,.viewport-bottom{position:absolute;left:24px;right:24px;display:flex;align-items:center;justify-content:space-between;pointer-events:none;font:500 9px DM Mono;letter-spacing:.12em;color:#c5c8be}.viewport-top{top:22px}.telemetry b{color:var(--acid);font-weight:500}.viewport-bottom{bottom:22px}.viewport-bottom button{pointer-events:auto}.drag-hint b{display:inline-grid;place-items:center;width:28px;height:28px;margin-right:8px;border:1px solid rgba(255,255,255,.25);border-radius:50%}.icon-button{border:1px solid rgba(255,255,255,.24);background:rgba(10,12,10,.5);padding:9px 11px;font:500 9px DM Mono;cursor:pointer;backdrop-filter:blur(8px)}.icon-button.active{color:var(--acid);border-color:rgba(212,255,63,.55)}
.compare-labels{position:absolute;top:54px;left:0;right:0;display:grid;grid-template-columns:repeat(4,1fr);pointer-events:none;z-index:2}.compare-labels[hidden]{display:none}.compare-labels span{padding:7px 10px;text-align:center;border-left:1px solid rgba(212,255,63,.35);color:var(--acid);background:rgba(8,10,8,.52);font:500 8px DM Mono;letter-spacing:.1em}.tiling-compare-labels{position:absolute;inset:54px 0 0;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,1fr);pointer-events:none;z-index:2}.tiling-compare-labels[hidden]{display:none}.tiling-compare-labels span{align-self:start;padding:7px 10px;text-align:center;border-left:1px solid rgba(212,255,63,.35);border-top:1px solid rgba(212,255,63,.2);color:var(--acid);background:rgba(8,10,8,.58);font:500 8px DM Mono;letter-spacing:.1em}.axis{position:absolute;right:24px;bottom:72px;width:32px;height:32px;opacity:.55}.axis i{position:absolute;left:50%;bottom:0;width:1px;height:24px;transform-origin:bottom;background:white}.axis .x{background:#ff6a5d;transform:rotate(90deg)}.axis .y{background:#8fff78}.axis .z{background:#78a4ff;transform:rotate(45deg)}
.controls{padding:38px 34px;border-left:1px solid var(--line);background:#1b1e19}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;padding-bottom:28px;border-bottom:1px solid var(--line)}.panel-head p{margin-bottom:9px}.panel-head h2{margin:0;font-size:22px;letter-spacing:-.03em}.reset{border:0;border-bottom:1px solid #6d7067;padding:4px 0;background:transparent;color:#9d9f96;font:500 9px DM Mono;cursor:pointer}.control-group{padding:15px 0 5px}.control-group label{display:block;padding:21px 0;border-bottom:1px solid var(--line)}.control-group label>span{display:flex;justify-content:space-between;font-size:12px;margin-bottom:16px}output{color:var(--acid);font:500 11px DM Mono}input[type=range]{width:100%;height:2px;appearance:none;background:linear-gradient(90deg,var(--acid) var(--fill,50%),#51544c var(--fill,50%));outline:0}input[type=range]::-webkit-slider-thumb{appearance:none;width:14px;height:14px;border-radius:50%;background:var(--paper);border:3px solid var(--ink);box-shadow:0 0 0 1px var(--paper);cursor:pointer}.stage-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;padding:20px 0 8px}.stage-actions button{border:1px solid #484c44;background:#20241e;padding:9px 5px;font:500 8px DM Mono;cursor:pointer}.stage-actions button:last-child{grid-column:1/-1}.stage-actions button.active{color:var(--ink);border-color:var(--acid);background:var(--acid)}
.control-group label[hidden]{display:none}
.technical{margin-top:32px;padding:17px 18px;background:#141713}.technical p{display:flex;justify-content:space-between;margin:10px 0;font:400 9px DM Mono;color:#777b72}.technical b{color:#b8bbb1;font-weight:400}.texture-source,.view-source{margin-top:26px;padding:18px;border:1px solid var(--line);background:#171a16}.view-source>p,.texture-source>p{margin:13px 0;color:#888b82;font-size:10px;line-height:1.65}.source-head{display:flex;align-items:center;justify-content:space-between;font:500 9px DM Mono;letter-spacing:.12em;color:var(--acid)}.source-head small{color:#8f9289;font:400 8px DM Mono;max-width:145px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.view-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:15px}.view-actions button,.source-actions button{border:1px solid #484c44;background:#20241e;padding:9px 4px;font:500 8px DM Mono;cursor:pointer}.view-actions button.active{color:var(--ink);border-color:var(--acid);background:var(--acid)}.source-actions{display:grid;grid-template-columns:1fr 1.35fr;gap:7px;margin-top:16px}.source-actions button:hover{border-color:var(--acid);color:var(--acid)}.mix-control{display:block;margin-top:17px}.mix-control>span{display:flex;justify-content:space-between;margin-bottom:12px;font-size:10px}
.explain{display:grid;grid-template-columns:.72fr 1fr 1.25fr}.section-title{padding:72px 40px 80px clamp(22px,4vw,64px)}.section-title h2{margin:0;font-size:clamp(30px,3.5vw,54px);line-height:1.12;letter-spacing:-.055em}.method-card{position:relative;padding:70px 42px;border-left:1px solid var(--line)}.card-no{position:absolute;top:24px;right:28px;color:#6f7269;font:10px DM Mono}.method-card h3{margin:14px 0;font-size:23px;letter-spacing:-.035em}.method-card p{color:#aeb0a7;line-height:1.8;font-size:13px}.method-card code{display:block;margin-top:24px;color:var(--acid);font:10px DM Mono}.guide-card{min-height:450px}.guide-kicker{margin:0 0 10px!important;color:var(--acid)!important;font:500 9px DM Mono!important;letter-spacing:.14em}.implementation ol{margin:18px 0 0;padding-left:19px;color:#aeb0a7;font-size:12px;line-height:1.75}.implementation li{margin:0 0 10px;padding-left:4px}.textures-title{margin-top:30px!important}.texture-tags{display:flex;flex-wrap:wrap;gap:7px}.texture-tags span{padding:7px 9px;border:1px solid #4b5046;color:#c7cabf;background:#151814;font:9px DM Mono}.texture-tags span.optional{color:#8f9388;border-style:dashed}.guide-note{margin-top:22px!important;padding:13px 15px;border-left:2px solid var(--acid);background:#141713;color:#9da096!important;font-size:11px!important}
footer{min-height:120px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:30px clamp(22px,4vw,64px);border-top:1px solid var(--line);font:9px DM Mono;color:#777b72}footer span,footer a{color:var(--paper);text-decoration:none}
@media(max-width:980px){.hero{grid-template-columns:1fr}.hero-copy{border-right:0}.mode-switch{grid-template-columns:1fr 1fr;grid-template-rows:none}.mode{border-top:1px solid var(--line);border-right:1px solid var(--line);min-height:105px}.mode:last-child{grid-column:1/-1}.lab{grid-template-columns:1fr}.controls{border-left:0;border-top:1px solid var(--line)}.viewport-shell{min-height:60vh}.explain{grid-template-columns:1fr 1fr}.section-title{grid-column:1/-1}.method-card:first-of-type{border-left:0}}
@media(max-width:640px){.topbar{height:68px}.live{display:none}.hero-copy{padding-top:52px}.hero{min-height:auto}.mode-switch{grid-template-columns:1fr}.mode,.mode:last-child{grid-column:auto;padding:20px 22px;min-height:92px}.lab{min-height:0}.viewport-shell{min-height:52vh}.controls{padding:30px 22px}.explain{grid-template-columns:1fr}.method-card{border-left:0;border-top:1px solid var(--line);padding:58px 22px}.section-title{padding:56px 22px}.lead{margin-top:28px}footer{align-items:flex-start;flex-direction:column}.axis{display:none}.drag-hint{font-size:0}.drag-hint b{font-size:9px}.drag-hint::after{content:'DRAG · PINCH';font:500 8px DM Mono}}

@media(min-width:981px){.mode-switch{grid-template-rows:repeat(8,1fr)}}
.type-actions button:last-child{grid-column:auto}
.camera-buttons{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.light-hint{position:absolute;left:26px;top:64px;display:flex;gap:10px;align-items:center;color:#f7ef9a;font:500 8px DM Mono;letter-spacing:.12em;pointer-events:none}.light-hint[hidden]{display:none}.light-hint i{width:13px;height:13px;border-radius:50%;background:#fff4a8;box-shadow:0 0 8px #fff7b8,0 0 26px #e5ff4f}.light-hint b{color:#d4ff3f;font-weight:500}.energy-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:4px 0 8px}.energy-actions button{border:1px solid #484c44;background:#20241e;padding:9px 5px;font:500 8px DM Mono;cursor:pointer}.energy-actions button.active{color:var(--ink);border-color:var(--acid);background:var(--acid)}.energy-note{margin-bottom:8px}.energy-note b{color:var(--acid)}.control-group label.has-limit{position:relative}.range-limit{position:absolute;left:var(--limit);bottom:20px;width:1px;height:9px;background:#f0bd65;pointer-events:none}.range-limit b{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);color:#f0bd65;font:500 7px DM Mono;white-space:nowrap}.shell-wire-actions{padding-top:20px}
input[type=range]{height:28px;background:linear-gradient(90deg,var(--acid) var(--fill,50%),#51544c var(--fill,50%)) center/100% 2px no-repeat;touch-action:none;cursor:pointer}input[type=range]::-webkit-slider-runnable-track{height:2px;background:transparent}input[type=range]::-moz-range-track{height:2px;background:#51544c}input[type=range]::-moz-range-progress{height:2px;background:var(--acid)}
@media(max-width:640px){.viewport-bottom{align-items:flex-end}.camera-buttons{max-width:190px}.camera-buttons .icon-button{padding:10px 8px}.light-hint{left:18px;top:58px}}
.references-title{margin-top:28px!important}.guide-links{display:grid;gap:7px}.guide-links a{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid #3f443c;color:#c8cbc0;background:#151814;text-decoration:none;font:9px/1.45 DM Mono}.guide-links a::after{content:'↗';color:var(--acid)}.guide-links a:hover{border-color:var(--acid);color:var(--acid)}
.code-details{margin-top:26px;border:1px solid #42473f;background:#111410}.code-details summary{display:flex;align-items:center;justify-content:space-between;padding:14px 15px;color:var(--acid);cursor:pointer;list-style:none;font:500 9px DM Mono;letter-spacing:.1em}.code-details summary::-webkit-details-marker{display:none}.code-details summary span{color:#8c9086;font-size:8px}.code-details[open] summary{border-bottom:1px solid #42473f}.code-details[open] summary span{font-size:0}.code-details[open] summary span::after{content:'CLOSE';font-size:8px}.code-panel{padding:15px}.code-meta{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px}.code-meta b{display:block;color:#d7dacd;font:500 10px DM Mono}.code-meta p{margin:7px 0 0!important;color:#858a80!important;font:9px/1.6 DM Mono!important;white-space:pre-line}.code-meta button{flex:0 0 auto;border:1px solid #53594e;background:#1c211a;color:#cbd0c3;padding:8px 12px;cursor:pointer;font:500 8px DM Mono}.code-meta button:hover{border-color:var(--acid);color:var(--acid)}.code-panel pre{max-height:390px;margin:0;overflow:auto;overscroll-behavior:contain;background:#080a08;border:1px solid #2d312b;padding:16px}.code-panel code{display:block;margin:0;color:#c6d5ad;font:10px/1.65 DM Mono;white-space:pre;tab-size:2}.code-caution{margin:12px 0 0!important;color:#777c72!important;font:9px/1.6 DM Mono!important}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.source-actions[hidden]{display:none}.source-actions.room-actions{grid-template-columns:repeat(2,1fr)}.source-actions.room-actions button:last-of-type{grid-column:1/-1}.source-actions button.active{color:var(--ink);border-color:var(--acid);background:var(--acid)}.mix-control[hidden]{display:none}.control-note{margin:12px 0 8px;color:#8f9388;font:9px/1.65 DM Mono}.room-downloads{grid-column:1/-1;display:flex;align-items:center;gap:6px;margin-top:4px}.room-downloads a{display:grid;place-items:center;min-width:30px;height:28px;border:1px solid #484c44;color:#c8cbc0;text-decoration:none;font:8px DM Mono}.room-downloads a:hover{border-color:var(--acid);color:var(--acid)}.room-downloads span{margin-left:auto;color:#767b72;font:8px DM Mono;letter-spacing:.08em}
.tiling-actions{grid-template-columns:repeat(3,1fr)}.tiling-actions button:last-child{grid-column:1/-1}@media(min-width:981px){.mode-switch{grid-template-rows:none;grid-auto-rows:1fr}.lab.tiling-active .viewport-shell{align-self:start;height:760px;min-height:760px}}
@media(min-width:641px){.mode-switch{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:none;grid-auto-rows:112px;align-content:start}.mode{min-height:88px;padding:14px 22px;border-right:1px solid var(--line)}.mode strong{font-size:clamp(15px,1.35vw,21px)}.mode small{font-size:9px}.mode::after{right:16px}.tiling-mode{grid-column:1/-1;min-height:130px}}
.category-switch{grid-template-columns:repeat(4,1fr)}
.noise-actions{grid-template-columns:repeat(4,minmax(0,1fr))}.noise-actions button{padding:8px 2px;font-size:7px}.noise-actions button:last-child{grid-column:1/-1}.noise-display-actions{margin-top:8px}.noise-compare-labels{position:absolute;top:54px;left:50%;width:min(560px,calc(100% - 48px));z-index:3;display:grid;grid-template-columns:repeat(4,1fr);pointer-events:none;transform:translateX(-50%);background:rgba(8,10,8,.74);border:1px solid rgba(212,255,63,.24)}.noise-compare-labels[hidden]{display:none}.noise-compare-labels span{padding:6px 8px;color:var(--acid);font:500 7px DM Mono;letter-spacing:.08em}.noise-compare-labels span:nth-child(n+5){border-top:1px solid rgba(212,255,63,.22)}.noise-compare-labels span:not(:nth-child(4n+1)){border-left:1px solid rgba(212,255,63,.28)}
@media(max-width:640px){.category-switch{grid-template-columns:repeat(2,1fr)}.noise-actions{grid-template-columns:repeat(3,minmax(0,1fr))}}
.language-switch{display:flex;border:1px solid var(--line);font:700 10px/1 var(--mono);letter-spacing:.12em}.language-switch a{padding:8px 9px;color:var(--muted);text-decoration:none}.language-switch a+ a{border-left:1px solid var(--line)}.language-switch a.active{color:var(--ink);background:rgba(212,255,63,.12)}
