@charset "UTF-8";
:root{--ink:#eff1ed;--muted:#a2a6ab;--cyan:#48d6ff;--yellow:#f2e56a;--brand:#5865f2;--duration:650ms;font-family:"Trebuchet MS",Verdana,sans-serif;color:var(--ink);background:#080b10;font-synthesis:none;color-scheme:dark}
*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100svh}a{color:inherit;text-decoration:none}button,input{font:inherit}a,button,summary{touch-action:manipulation}button,a,summary,input{ -webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible{outline:2px solid var(--cyan);outline-offset:7px}h1,h2,p{margin:0}h1:focus{outline:none}button{cursor:pointer}a{transition:color 180ms}a:hover{color:var(--cyan)}[hidden]{display:none!important}
.backdrop{position:fixed;inset:0;z-index:-2;background:#080a0e;transition:background var(--duration)}.backdrop:after{content:"";position:absolute;inset:0;opacity:.035;pointer-events:none;background:repeating-linear-gradient(0deg,transparent 0 3px,#000 3px 4px)}body[data-screen=projects] .backdrop{background:radial-gradient(ellipse at 24% 32%,#f2f0df 0,#c3c4c0 25%,#777c7e 64%,#323840 100%)}body[data-screen=detail] .backdrop{background:radial-gradient(ellipse at 25% 46%,color-mix(in srgb,var(--brand) 76%,#fff) 0,var(--brand) 29%,color-mix(in srgb,var(--brand) 34%,#090d17) 100%)}
#scene{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}.brand{position:absolute;z-index:5;top:32px;left:42px;display:flex;align-items:center;gap:15px;height:44px}.monogram{font-size:32px;letter-spacing:-7px;font-weight:900;transform:skewY(-5deg);padding-right:7px}.monogram>span{color:var(--cyan)}.brand-name{font-size:10px;letter-spacing:.22em;color:#adb4c0}.screen{position:relative;min-height:100svh}.home-menu{position:absolute;left:61%;top:41%;display:grid;gap:8px;z-index:3}.home-menu a{font-size:clamp(30px,3.2vw,48px);line-height:1.4;color:#a9aeb6;text-shadow:0 1px 2px #000}.home-menu a:first-child,.home-menu a:hover{color:var(--cyan);text-shadow:0 0 15px #159fd24d}.home-menu:has(a:nth-child(2):hover) a:first-child{color:#a9aeb6;text-shadow:none}.home-caption{position:absolute;left:61%;top:calc(41% + 156px);color:#687582;font-size:12px;line-height:1.7;letter-spacing:.04em}.constellation{position:absolute;left:30%;top:32%;width:230px;height:230px}.orbit{width:100%;height:100%;animation:orbit 22s linear infinite;transform:rotateX(24deg)}.orbit i{position:absolute;left:50%;top:50%;width:7px;height:7px;margin:-3px;border-radius:50%;background:#e5fcff;box-shadow:0 0 8px 3px #9becff,0 0 23px 11px #008bcc,0 0 45px 19px #0050a760;transform:rotate(calc(var(--n)*45deg)) translateX(92px)}.orbit i:nth-child(1){--n:0}.orbit i:nth-child(2){--n:1}.orbit i:nth-child(3){--n:2}.orbit i:nth-child(4){--n:3}.orbit i:nth-child(5){--n:4}.orbit i:nth-child(6){--n:5}.orbit i:nth-child(7){--n:6}.orbit i:nth-child(8){--n:7}@keyframes orbit{to{transform:rotate(360deg)}}
footer{position:absolute;z-index:4;bottom:28px;left:42px;right:210px;display:flex;align-items:center;gap:36px;font-size:13px;color:#aab0b7}footer a{min-height:44px;display:flex;align-items:center}.privacy-link{margin-left:auto}.motion-panel{position:fixed;z-index:10;bottom:28px;right:32px;font-size:12px}.motion-panel summary{list-style:none;cursor:pointer;padding:14px 16px;min-height:44px;border:1px solid #a8b8ce30;border-radius:3px;background:#0a10168c;backdrop-filter:blur(12px);color:#d3d9e1}.motion-panel summary::-webkit-details-marker{display:none}.motion-panel summary span{margin-left:20px}.motion-controls{position:absolute;right:0;bottom:56px;width:260px;background:#10161ef5;border:1px solid #6b7b944f;padding:22px;box-shadow:0 10px 50px #0005;border-radius:5px;color:#e1e6ee}.motion-controls>p{color:#7e8ea2;font-size:10px;text-transform:uppercase;letter-spacing:.13em;margin-bottom:20px}.motion-controls label:not(.check){display:flex;justify-content:space-between}.motion-controls output{color:var(--cyan)}.motion-controls input[type=range]{width:100%;accent-color:var(--cyan);height:34px;margin:2px 0 12px}.check{display:flex;align-items:center;gap:8px;min-height:44px}.check input{width:18px;height:18px;accent-color:var(--cyan)}.motion-controls button{border:1px solid #506076;background:transparent;color:inherit;padding:11px 16px;margin:12px 0;min-height:44px}.motion-controls small{display:block;color:#94a2b4;line-height:1.6}.render-status{position:fixed;bottom:85px;left:42px;font-size:12px;background:#10161e;padding:10px;z-index:10}
body[data-screen=projects]{color:#20262d;color-scheme:light}body[data-screen=projects] .brand-name{color:#2c3541}body[data-screen=projects] .monogram>span{color:#2851a5}.collection-heading{position:absolute;top:128px;left:42px}.collection-heading h1{font-size:clamp(26px,2.5vw,38px);font-weight:500;letter-spacing:-.035em}.collection-heading p{font-size:13px;margin-top:13px;color:#434b54}.selection{position:absolute;top:132px;right:48px;text-align:right;max-width:380px}.selection h2{font-size:28px;color:#f7ec85;font-weight:500;text-shadow:0 1px 3px #0008}.selection p{font-size:13px;line-height:1.6;color:#f2f1e9;margin-top:12px}.project-grid{position:absolute;left:12%;right:12%;top:29%;display:grid;grid-template-columns:repeat(4,1fr);gap:30px;z-index:3}.project{position:relative;min-height:220px;display:flex;align-items:center;flex-direction:column;justify-content:flex-start;padding:10px 0 30px;cursor:pointer;border-radius:2px}.model-anchor{display:block;width:132px;height:145px;flex-shrink:0}.model-anchor.wide{width:180px}.model-anchor img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(8px 10px 1px #2227);transform:perspective(600px) rotateY(-16deg)}.webgl .model-anchor img,.webgl .detail-anchor img{visibility:hidden}.project:before{content:"";position:absolute;top:125px;left:50%;width:95px;height:22px;transform:translateX(-50%);background:radial-gradient(ellipse,#fff9,transparent 68%);opacity:0;transition:opacity .3s}.project:hover:before,.project:focus-visible:before{opacity:1}.project-label{font-size:13px;margin-top:18px;color:#17202c;letter-spacing:.015em}.project-index{font-size:10px;letter-spacing:.15em;margin-top:9px;color:#343e4a}.project:hover .project-label,.project:focus-visible .project-label{color:#072469;text-decoration:underline;text-underline-offset:5px}.collection-note{position:absolute;left:50%;bottom:22%;transform:translateX(-50%);font-size:12px;letter-spacing:.08em;color:#303a45}body[data-screen=projects] footer{color:#202b36}
.detail{display:grid;grid-template-columns:1fr 1fr;gap:7vw;align-items:center;padding:130px 12% 150px}.detail-object{display:flex;flex-direction:column;align-items:center;gap:45px}.detail-anchor{width:290px;height:300px}.detail-anchor img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(15px 18px 2px #0004)}.object-caption{color:#e0e4ff9c;letter-spacing:.12em;font-size:11px}.detail-copy{z-index:3;max-width:500px}.eyebrow{text-transform:uppercase;letter-spacing:.19em;font-size:10px;color:#d0d9ffb3;margin-bottom:18px}.detail h1{font-size:clamp(30px,3vw,48px);font-weight:500;color:#fff199;letter-spacing:-.03em}.detail-description{font-size:19px;line-height:1.55;margin-top:20px;color:#f2f3fa}.detail ul{padding:0;list-style:none;font-size:13px;line-height:1.8;margin:22px 0 35px;color:#e0e3f3}.detail li:before{content:"— ";opacity:.5}.detail-actions{display:grid;justify-items:start;gap:5px}.detail-actions a{font-size:22px;min-height:44px;display:flex;align-items:center;color:#c7cadf}.detail-actions a:first-child{color:#78e7ff}.detail-actions a:first-child span{font-size:19px;margin-left:18px}.detail-actions a:hover{text-shadow:0 0 14px #fff5;color:white}.info{padding:150px 18% 160px}.info-inner{max-width:700px;margin:auto}.info h1{font-size:48px;font-weight:500;margin-bottom:25px}.info-inner>p:not(.eyebrow){font-size:18px;line-height:1.7;color:#abb6c4}.contact-links{display:grid;gap:8px;margin:30px 0 45px}.contact-links a{font-size:22px;display:flex;justify-content:space-between;align-items:center;gap:20px;min-height:65px;border-bottom:1px solid #70809a33}.contact-links span{font-size:12px;color:#8190a3}.info-inner>p.legal{font-size:12px;line-height:1.8;color:#748297}.is-paused *{animation-play-state:paused!important}
@media(min-width:1700px){.project-grid{top:30%;left:14%;right:27%}.constellation{left:34%}}
@media(max-width:900px){.brand{left:25px;top:22px}.brand-name{font-size:9px}.constellation{left:20%;width:190px;height:190px;top:34%}.orbit i{transform:rotate(calc(var(--n)*45deg)) translateX(78px)}.home-menu{left:61%}.home-caption{left:61%;top:calc(41% + 135px)}.project-grid{left:6%;right:6%;gap:10px;top:34%}.model-anchor{width:110px;height:120px}.model-anchor.wide{width:150px}.selection{right:25px;max-width:280px}.selection h2{font-size:24px}.collection-heading{left:25px}.detail{padding:145px 7% 160px;gap:6vw}.detail-anchor{width:240px;height:270px}footer{left:25px;gap:20px;font-size:11px;right:185px}.motion-panel{right:20px}.info{padding:145px 10% 160px}}
@media(max-width:600px){.brand{left:22px;top:18px}.screen{min-height:100svh}.brand-name{letter-spacing:.13em}.constellation{left:50%;top:20%;transform:translateX(-50%);width:170px;height:170px}.orbit i{width:5px;height:5px;transform:rotate(calc(var(--n)*45deg)) translateX(68px)}.home-menu{left:0;right:0;top:53%;justify-items:center;gap:1px}.home-menu a{font-size:32px}.home-caption{top:calc(53% + 110px);left:0;right:0;text-align:center;font-size:11px}.collection-heading{top:105px;left:22px}.collection-heading h1{font-size:29px}.collection-heading p{font-size:11px;margin-top:8px}.selection{top:173px;left:22px;right:22px;text-align:left;max-width:none;min-height:55px}.selection h2{font-size:19px;color:#1d345c;text-shadow:none}.selection p{font-size:11px;color:#293d52;margin-top:6px}.project-grid{top:255px;left:6%;right:6%;grid-template-columns:repeat(2,1fr);gap:8px 18px}.project{min-height:172px;padding:0 0 13px}.model-anchor{height:104px;width:104px}.model-anchor.wide{width:139px}.project-label{font-size:11px;margin-top:12px}.project-index{font-size:9px;margin-top:6px}.project:before{top:90px}.collection-note{display:none}.projects{min-height:760px}.detail{display:flex;flex-direction:column;gap:28px;padding:112px 26px 180px;min-height:900px}.detail-object{gap:14px}.detail-anchor{width:210px;height:185px}.object-caption{font-size:10px}.detail-copy{text-align:center;max-width:350px}.eyebrow{font-size:9px;margin-bottom:10px}.detail h1{font-size:32px}.detail-description{font-size:16px;margin-top:15px}.detail ul{font-size:12px;margin:16px 0 20px}.detail-actions{justify-items:center;gap:2px}.detail-actions a{font-size:21px}.info{padding:120px 24px 180px;min-height:780px}.info h1{font-size:38px}.info-inner>p:not(.eyebrow){font-size:16px}.contact-links a{font-size:18px;align-items:flex-start;flex-direction:column;gap:8px;padding:14px 0}.info-inner>p.legal{font-size:11px}footer{position:absolute;left:22px;right:22px;bottom:80px;flex-direction:column;align-items:flex-start;gap:0;font-size:11px}.privacy-link{margin:0}footer a{min-height:36px}.motion-panel{right:18px;bottom:18px}.motion-panel summary{font-size:11px;background:#0a1016d9}.render-status{left:15px;bottom:75px;max-width:260px}body{position:relative}body[data-screen=home] footer{bottom:30px;right:165px}body[data-screen=home] footer a{max-width:170px;line-height:1.5}.motion-controls{max-height:65svh;overflow:auto}}
@property --brand{syntax:"<color>";inherits:true;initial-value:#5865f2}
body{transition:--brand 650ms}
body[data-screen=projects] .backdrop,body[data-screen=detail] .backdrop{background:#080a0e}
.backdrop .silver,.backdrop .tint{position:absolute;inset:0;opacity:0;transition:opacity 650ms}
.backdrop .silver{background:radial-gradient(ellipse at 24% 32%,#f2f0df 0,#c3c4c0 25%,#777c7e 64%,#323840 100%)}
.backdrop .tint{background:radial-gradient(ellipse at 25% 46%,color-mix(in srgb,var(--brand) 76%,#fff) 0,var(--brand) 29%,color-mix(in srgb,var(--brand) 34%,#090d17) 100%)}
body[data-screen=projects] .backdrop .silver,body[data-screen=detail] .backdrop .tint{opacity:1}
.screen:not([hidden]) .detail-copy,.screen:not([hidden]) .home-menu,.screen:not([hidden]) .info-inner{animation:appear 450ms ease-out both}
@keyframes appear{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Reference revision: console footer, centered contact icons, geometric lights. */
.orbit{animation:none;transform:none}.orbit i{transform:none}
footer,body[data-screen=home] footer{left:24px;right:24px;bottom:30px;justify-content:center;flex-direction:row;gap:32px;align-items:center;font-size:clamp(16px,1.7vw,24px);color:#a2a7b0}
footer a,body[data-screen=home] footer a{min-height:48px;max-width:none;display:flex;align-items:center;gap:12px;line-height:1.25;text-shadow:0 1px 2px #0008}.privacy-link{margin:0}
kbd{display:inline-flex;align-items:center;justify-content:center;min-width:48px;height:25px;padding:0 9px;background:linear-gradient(#262a2e,#101317);border:2px solid #07090c;border-radius:4px;box-shadow:0 1px 3px #0008,inset 0 1px 1px #a9b0b733;font:9px Verdana,sans-serif;letter-spacing:.06em;color:#ded7aa;text-shadow:none}
.info{display:grid;place-items:center;padding:120px 25px 170px}.info-inner{text-align:center;width:min(600px,100%);margin:auto}.info h1{color:#ecea72;font-size:clamp(25px,2.8vw,36px);font-weight:500;margin:0 0 35px;text-shadow:0 0 8px #d1d83630}
.contact-links{display:flex;justify-content:center;align-items:flex-start;gap:42px;margin:0 0 42px}.contact-links a{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;border:0;gap:18px;padding:0;min-height:84px;color:#939aa5}.contact-links svg{width:37px;height:37px}.contact-links .mail-icon{font-size:43px;line-height:37px;color:inherit;height:37px}.contact-links a>span:last-child{font-size:12px;color:inherit}.contact-links a:hover{color:var(--cyan)}.info-inner>p.legal{font-size:11px;line-height:1.9;color:#727d8d}
@media(max-width:900px){footer,body[data-screen=home] footer{bottom:90px;gap:22px;font-size:18px}.motion-panel{bottom:20px}.contact-links{gap:28px}}
@media(max-width:600px){footer,body[data-screen=home] footer{left:20px;right:20px;bottom:83px;flex-direction:column;align-items:center;gap:3px;font-size:16px}footer a,body[data-screen=home] footer a{min-height:44px;gap:10px}.privacy-link span{max-width:240px}kbd{height:23px;min-width:43px;font-size:8px}.info{min-height:100svh;padding:110px 20px 215px}.info h1{margin-bottom:30px}.contact-links{gap:25px}.contact-links a>span:last-child{font-size:11px}.info-inner>p.legal{font-size:10px}.home-caption{display:none}}
/* Object hit areas and the memory-card selection bloom. */
.project{width:168px;height:178px;min-height:0;padding:16px 18px;margin:0 auto;isolation:isolate;pointer-events:auto}
.project:has(.wide){width:216px}.model-anchor{position:relative;pointer-events:auto}.model-anchor:after{content:"";position:absolute;inset:-12px;pointer-events:auto;z-index:5}
.project:before{top:76px;left:50%;width:116px;height:126px;transform:translateX(-50%);background:radial-gradient(ellipse at 50% 48%,#fff 0%,#fffffff5 12%,#ffffffb3 29%,#ffffff52 49%,#ffffff00 73%);filter:blur(6px);mix-blend-mode:screen;z-index:-1;pointer-events:none;transition:opacity 180ms}
.project[data-selected]:before{opacity:1}.project-label,.project-index{display:none}
.language-toggle{position:fixed;top:28px;right:32px;z-index:10;border:0;background:transparent;color:#a9afbb;min-height:44px;min-width:80px;font-size:13px;letter-spacing:.08em;cursor:pointer}
.language-toggle:hover{color:var(--cyan)}body[data-screen=projects] .language-toggle{color:#182432}
@media(max-width:900px){.project{width:146px;height:154px;padding:16px 18px}.project:has(.wide){width:180px}.project:before{top:60px;width:104px;height:115px}}
@media(max-width:600px){.project-grid{gap:22px 8px;left:3%;right:3%}.project{width:140px;height:140px;padding:16px 18px}.project:has(.wide){width:165px;padding:16px 13px}.project:before{top:57px;width:102px;height:113px}.language-toggle{top:18px;right:16px;font-size:12px}.info-inner>p.legal{max-width:300px;margin:auto}}
@media(max-width:600px){.motion-panel{position:absolute}}
/* Play: locally hosted regular and true bold; Cyrillic and Latin share one family. */
@font-face{font-family:Play;src:url('assets/fonts/Play-Regular.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Play;src:url('assets/fonts/Play-Bold.ttf') format('truetype');font-style:normal;font-weight:700;font-display:swap}
:root{font-family:Play,"Trebuchet MS",sans-serif}
.home-menu a,.collection-heading h1,.selection h2,.detail h1,.info h1,.detail-actions a,footer a,.motion-panel summary,.language-toggle{font-weight:700;letter-spacing:0}
kbd{font-family:Play,sans-serif;font-weight:400;letter-spacing:.06em}
.detail-description{font-weight:400}.selection p,.collection-heading p{font-size:14px}
@media(max-width:600px){.selection p,.collection-heading p{font-size:12px}footer,body[data-screen=home] footer{font-size:15px}}
