:root{--navy:#0e1428;--wine:#791915;--surface:#f5f4f1;--atmosphere:#3e6259;--accent:#3e6259;--ink:#0e1428;--display:'Cormorant Garamond',Georgia,serif;--sans:'DM Sans',Arial,sans-serif;--horizon-top:320px;--land-top:410px}
:root[data-theme=grove]{--surface:#F5F4F1;--accent:#3E6259;--atmosphere:#3E6259}:root[data-theme=ember]{--surface:#CCDBDC;--accent:#791915;--atmosphere:#FF4B3E}:root[data-theme=sand]{--surface:#E7D7C1;--accent:#791915;--atmosphere:#A78A7F}:root[data-theme=dusk]{--surface:#F9FBB2;--accent:#0E1428;--atmosphere:#657ED4}
*{box-sizing:border-box}body{margin:0;font-family:var(--sans);background:var(--surface);color:var(--ink)}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}button{color:inherit}button:disabled{cursor:default}a,button,input{outline-offset:5px}a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--accent)}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;z-index:20;top:10px;left:10px;padding:12px 18px;background:#fff;color:var(--navy);transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}
.hero{position:relative;isolation:isolate;min-height:900px;height:max(900px,100svh);overflow:hidden;background:var(--navy)}.sky{position:absolute;inset:0;background:radial-gradient(ellipse 62% 46% at 50% 29%,var(--atmosphere),transparent 85%);z-index:-3}.land{position:absolute;inset:var(--land-top) 0 0;background:var(--surface);z-index:-2}.horizon{position:absolute;top:var(--horizon-top);left:0;width:100%;height:130px;fill:var(--surface);z-index:-2;pointer-events:none}
.site-header{position:relative;z-index:6;display:flex;align-items:center;justify-content:space-between;gap:32px;max-width:1600px;margin:auto;padding:25px 4.5vw;color:#f5f4f1}.brand{display:flex;align-items:center;gap:9px;font-family:var(--display);font-size:34px;line-height:1;white-space:nowrap;letter-spacing:-1px}.brand-mark{display:grid;place-items:center;width:29px;height:30px;font-size:29px;letter-spacing:-2px;padding-right:2px;font-style:italic;background:#f5f4f1;color:var(--navy);border-radius:7px}.desktop-nav{display:flex;align-items:center;gap:28px;margin-left:25px}.desktop-nav a{font-size:12px;color:#d5d7dd;position:relative;padding:10px 0}.desktop-nav a[aria-current],.desktop-nav a:hover{color:#fff}.desktop-nav a::after{content:'';position:absolute;left:0;right:0;bottom:4px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .2s}.desktop-nav a:hover::after{transform:scaleX(1)}.header-actions{display:flex;gap:15px;align-items:center}.header-actions button{border:0;background:none;color:inherit;min-width:36px;min-height:40px;display:flex;align-items:center;justify-content:center;gap:7px;font-size:12px;padding:0}.icon-button svg,.theme-jump svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.3}.header-actions .mobile-menu-button{display:none}.mobile-nav{position:absolute;z-index:10;top:78px;right:20px;left:20px;padding:18px 24px;background:#f5f4f1;box-shadow:0 18px 60px #0003;border-radius:12px}.mobile-nav a{display:block;padding:12px 0;font-size:15px}
.scene-eyebrow{position:absolute;top:102px;margin:0;width:100%;text-align:center;color:#e6ede8;font-size:12px;letter-spacing:.025em;opacity:.8}.chess-stage{position:absolute;z-index:1;top:118px;left:50%;transform:translateX(-50%);width:min(880px,76vw);height:440px;touch-action:pan-y;user-select:none}.chess-stage canvas{display:block;width:100%;height:100%;outline:0}.chess-still{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.model-error{position:absolute;inset:0 0 40%;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:14px;color:#e6ede8;font-size:12px;pointer-events:none}.model-error button{pointer-events:auto;border:1px solid #ffffff66;background:none;border-radius:20px;padding:9px 18px;color:inherit}.scene-hint{position:absolute;top:532px;left:0;right:0;display:flex;align-items:center;justify-content:center;gap:6px;font-size:10px;opacity:.55;margin:0;pointer-events:none}.scene-hint svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.2}
.hero-title{position:absolute;z-index:2;top:438px;left:5.5%;right:5.5%;display:flex;justify-content:space-between;align-items:flex-start;gap:30%;font-family:var(--display);font-weight:500;margin:0;pointer-events:none}.title-first{font-size:clamp(52px,4.7vw,76px);line-height:.98;letter-spacing:-.035em;white-space:nowrap}.title-second{font-size:clamp(64px,6.3vw,98px);line-height:1.1;letter-spacing:-.035em;white-space:nowrap;font-weight:500;color:var(--accent);padding-top:7px}
.review-section{position:absolute;z-index:3;top:581px;left:50%;transform:translateX(-50%);width:600px;text-align:center}.hero-description{margin:0 0 19px;font-size:15px;line-height:1.6;opacity:.76}.platform-picker{display:flex;justify-content:center;gap:10px;padding:0;border:0;margin:0 0 12px}.platform-picker label{cursor:pointer;position:relative}.platform-picker input{position:absolute;opacity:0;width:1px;height:1px}.platform-picker span{display:flex;align-items:center;justify-content:center;min-width:90px;height:34px;padding:0 16px;font-size:12px;border-radius:99px}.platform-picker input:checked+span{background:var(--navy);color:#f5f4f1}.platform-picker input:focus-visible+span{outline:2px solid var(--accent);outline-offset:3px}.review-fields{display:grid;grid-template-columns:1fr 180px;gap:12px}.review-fields input{min-width:0;height:52px;border:1px solid color-mix(in srgb,var(--navy) 27%,transparent);border-radius:7px;padding:0 16px;background:transparent;color:var(--ink);font-size:13px}.review-fields input::placeholder{color:color-mix(in srgb,var(--navy) 60%,transparent)}.review-fields input:focus{border-color:var(--accent)}.primary-button{height:52px;border:0;border-radius:99px;background:var(--navy);color:#f5f4f1;display:flex;align-items:center;justify-content:center;gap:12px;font-size:12px;font-weight:500;transition:background .2s,transform .2s}.primary-button:hover{background:var(--accent);transform:translateY(-1px)}.primary-button span{font-size:16px}.reassurance{margin:13px 0;font-size:11px;opacity:.6}.analysis-link{font-size:11px;display:inline-block;min-height:28px;padding:4px}.analysis-link>span:first-child{border-bottom:1px solid transparent}.analysis-link:hover>span:first-child{border-color:currentColor}
.palette-dock{position:absolute;z-index:4;bottom:24px;left:0;right:0;display:flex;align-items:center;justify-content:center;gap:18px}.palette-label{font-size:11px;opacity:.65}.palette-options{display:flex;gap:6px}.palette-options button{display:flex;align-items:center;justify-content:center;gap:7px;min-height:42px;padding:7px 11px;background:none;border:1px solid transparent;border-radius:8px;font-size:11px}.palette-options button[aria-pressed=true]{border-color:color-mix(in srgb,var(--ink) 25%,transparent);background:color-mix(in srgb,var(--surface) 85%,white)}.palette-options button:hover{border-color:color-mix(in srgb,var(--ink) 30%,transparent)}.palette-colors{display:flex;overflow:hidden;width:28px;height:18px;border-radius:4px;box-shadow:0 0 0 1px #0001}.palette-colors i{height:100%;flex:1;background:var(--swatch)}.default-label{font-size:8px;opacity:.55}
dialog{width:min(420px,calc(100% - 40px));padding:30px;border:0;border-radius:15px;background:#f5f4f1;color:#0e1428;box-shadow:0 24px 100px #0003}dialog::backdrop{background:#0e142877;backdrop-filter:blur(4px)}dialog header{display:flex;justify-content:space-between;align-items:center;gap:20px}dialog h2{font-family:var(--display);font-size:36px;font-weight:500;margin:0}.dialog-close{background:none;border:0;font-size:30px;min-width:44px;min-height:44px}.motion-setting{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:25px 0;font-size:14px}.motion-setting small{display:block;margin-top:6px;font-size:12px;opacity:.65}.motion-setting input{accent-color:#3e6259;width:20px;height:20px}.motion-note{font-size:12px;line-height:1.5;opacity:.7}.reset-button{font-size:12px;background:none;border:0;border-bottom:1px solid #0e142844;padding:6px 0}
@media(min-width:1600px){.hero-title{left:max(5.5%,calc((100% - 1440px)/2));right:max(5.5%,calc((100% - 1440px)/2))}}
@media(max-width:1200px) and (min-width:901px){.desktop-nav{gap:18px;margin-left:0}.site-header{gap:18px}.hero-title{left:4.5%;right:4.5%}.title-first{font-size:58px}.title-second{font-size:76px}}
@media(max-width:900px){.hero{height:1024px;min-height:1024px;--horizon-top:340px;--land-top:430px}.desktop-nav{display:none}.site-header{padding:25px 32px}.header-actions .mobile-menu-button{display:flex}.brand{font-size:33px}.chess-stage{top:147px;width:730px;height:380px}.scene-eyebrow{top:115px}.hero-title{top:490px;left:20px;right:20px;display:flex;flex-direction:column;align-items:center;gap:9px;text-align:center}.title-first{font-size:57px}.title-second{font-size:66px;padding:0}.scene-hint{top:460px}.review-section{top:706px;width:600px}.palette-dock{bottom:24px;flex-direction:column;gap:7px}.palette-options button{padding:7px 14px;min-height:44px}.palette-label{font-size:10px}}
@media(max-width:600px){.hero{height:970px;min-height:970px;--horizon-top:245px;--land-top:335px}.site-header{padding:23px 24px;gap:10px}.brand{font-size:31px;gap:8px}.brand-mark{width:25px;height:27px;font-size:26px}.header-actions{gap:8px}.header-actions .icon-button{display:none}.theme-jump span{display:none}.header-actions .mobile-menu-button{font-size:12px;min-width:48px}.scene-eyebrow{top:100px;font-size:11px}.chess-stage{top:117px;width:450px;max-width:none;height:250px}.scene-hint{top:357px;font-size:9px}.hero-title{top:390px;gap:6px}.title-first{font-size:47px;line-height:.96}.title-second{font-size:57px;line-height:1.05}.review-section{top:573px;width:calc(100% - 48px);max-width:410px}.hero-description{font-size:13px;line-height:1.65;margin-bottom:18px}.platform-picker{margin-bottom:12px}.platform-picker span{height:36px;font-size:12px}.review-fields{grid-template-columns:1fr;gap:11px}.review-fields input,.primary-button{height:50px;font-size:12px}.reassurance{font-size:10px;margin:12px 0 7px}.analysis-link{font-size:10px}.palette-dock{bottom:20px;gap:6px}.palette-options{gap:1px}.palette-options button{padding:6px 8px;font-size:10px;gap:5px}.palette-colors{width:23px;height:16px}.default-label{display:none}}
.intro-loader{position:fixed;z-index:30;inset:0;display:none;flex-direction:column;align-items:center;justify-content:center;gap:clamp(10px,2.4svh,26px);padding:24px 0;background:radial-gradient(ellipse 60% 52% at 50% 50%,var(--atmosphere),transparent 85%),var(--navy);color:#f5f4f1}:root:is([data-intro=loading],[data-intro=assembling],[data-intro=exit]) .intro-loader{display:flex}.intro-title{margin:0;font-family:var(--display);font-size:clamp(34px,4vw,50px);font-weight:500;line-height:1;letter-spacing:-.02em;opacity:0;transition:opacity .4s}:root[data-fonts] .intro-title{opacity:1}.intro-stage{position:relative;flex:none;width:min(760px,100vw);height:min(380px,50vw,52svh)}.intro-stage canvas{display:block;width:100%;height:100%}.intro-meter{display:flex;flex-direction:column;align-items:center;gap:11px}.intro-progress{position:relative;overflow:hidden;width:min(200px,52vw);height:2px;background:#ffffff26}.intro-progress span{position:absolute;inset:0;background:#f5f4f1;transform-origin:left;transform:scaleX(var(--progress,0));transition:transform .2s ease-out}.intro-progress[data-indeterminate] span{width:32%;transform:none;animation:intro-indeterminate 1.3s cubic-bezier(.45,0,.55,1) infinite}@keyframes intro-indeterminate{from{translate:-100% 0}to{translate:320% 0}}.intro-status{margin:0;min-height:1.4em;font-size:11px;letter-spacing:.03em;font-variant-numeric:tabular-nums;color:#e6ede8;opacity:.75}.intro-error{display:flex;flex-direction:column;align-items:center;gap:14px;font-size:13px;color:#e6ede8}.intro-error p{margin:0}.intro-error div{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}.intro-error button{min-height:40px;padding:9px 18px;border:1px solid #ffffff66;border-radius:20px;background:none;color:inherit;font-size:12px}.intro-error button:first-child{background:#f5f4f1;border-color:#f5f4f1;color:var(--navy)}.intro-error button:focus-visible{outline-color:#f5f4f1}
:root[data-intro]:not([data-intro=enter],[data-intro=interactive]){overflow:hidden}:root[data-intro]:not([data-intro=enter],[data-intro=interactive]) :is(.hero>:not(.sky,.land,.horizon),.skip-link){visibility:hidden}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.scene-hint{visibility:hidden}}
