:root{color-scheme:light;--ink:#10152e;--blue:#2639e8;--muted:#505776;--paper:#f8f8fd;--line:#dcdeeb;font-family:Inter,Aptos,system-ui,sans-serif;color:var(--ink);background:var(--paper)}
*,*::before,*::after{box-sizing:border-box}
body{margin:0}
a{color:inherit;text-decoration:none}
button,select{font:inherit}
button{cursor:pointer}
:focus-visible{outline:3px solid #4455fa;outline-offset:5px}
.skip{position:fixed;z-index:5;left:10px;top:10px;background:white;padding:10px;transform:translateY(-150%)}
.skip:focus{transform:none}
.wrap{width:min(1320px,calc(100% - 104px));margin-inline:auto}
.top{height:86px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:16px}
.logo{width:125px;height:auto;display:block}
.top nav{display:flex;align-items:center;gap:clamp(14px,3vw,40px);font-size:.91rem;font-weight:650}
.top nav [aria-current="page"]{color:var(--blue);text-decoration:underline;text-underline-offset:7px}
.top nav a:hover,.footer a:hover{color:var(--blue)}
.pill{display:inline-flex;align-items:center;justify-content:center;gap:21px;padding:13px 19px;border-radius:100px;font-size:.89rem;font-weight:700;border:1px solid transparent;transition:background .2s,color .2s;white-space:nowrap}
.outline{border-color:#c2c7e0}
.outline:hover{background:#e9eaff}
.primary{background:var(--blue);color:#fff}
.primary:hover{background:#1727ad}
.hero{min-height:650px;display:grid;grid-template-columns:1fr 1.08fr;grid-template-rows:1fr auto;align-items:center;padding-top:26px;position:relative}
.hero-copy{z-index:1;padding-block:30px}
.eyebrow,.hero-index,.stage-label,.world-kicker{font-size:.69rem;letter-spacing:.15em;text-transform:uppercase;font-weight:800}
.eyebrow{display:flex;align-items:center;gap:10px;color:var(--blue)}
.eyebrow i{width:8px;height:8px;display:inline-block;background:currentColor;border-radius:50%}
h1,h2,h3,h4,p{margin:0}
h1{font-size:clamp(4rem,8.6vw,8.5rem);line-height:.88;letter-spacing:-.092em;font-weight:770;margin:24px 0 27px}
h1 em{font-style:normal;color:var(--blue)}
.hero p{font-size:clamp(1rem,1.5vw,1.24rem);line-height:1.52;max-width:390px;margin-bottom:27px;color:var(--muted)}
.sculpture{height:510px;position:relative;isolation:isolate;background:radial-gradient(ellipse at 52% 52%,#dfe2ff 0%,#f1f0fd 51%,transparent 75%);overflow:hidden}
.sculpture::before{content:"";position:absolute;inset:0;background-image:radial-gradient(#838cce 1px,transparent 1px);background-size:17px 17px;mask-image:radial-gradient(ellipse,#000 0%,transparent 72%);opacity:.46;z-index:-1}
canvas{display:block;width:100%;height:100%}
.stage-label{position:absolute;top:16px;right:0;display:flex;align-items:center;gap:8px;color:#535b86;font-size:.59rem;pointer-events:none}
.stage-label b{width:16px;height:1px;background:#878eb7}
.spin{position:absolute;right:12px;bottom:15px;border:1px solid var(--line);background:var(--paper);border-radius:99px;padding:7px 12px;color:var(--muted);font-size:.72rem}
.hero-index{border-top:1px solid var(--line);grid-column:1/-1;display:flex;justify-content:space-between;padding:17px 0 22px;color:#5b6282;font-size:.62rem}
.worlds{background:white;padding:90px 0 100px}
.section-head{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:35px}
h2{font-size:clamp(2.75rem,5.7vw,5.5rem);line-height:.96;letter-spacing:-.075em;margin-top:14px}
.section-head p,.world-copy p,.booking-action label,dialog p{color:var(--muted);line-height:1.6}
.section-head p{max-width:310px}
.booking{background:#e9ecff;padding:85px 0}
.booking-inner{display:grid;grid-template-columns:1.2fr .65fr;align-items:center;gap:35px}
.booking h2{font-size:clamp(2.6rem,5vw,4.9rem)}
.booking-action{display:grid;gap:12px;justify-items:start}
select{width:100%;border:1px solid #a2a9d0;border-radius:8px;background:white;padding:10px 12px;color:var(--ink)}
.footer{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:30px 0;font-size:.77rem;color:var(--muted)}
.footer .logo{width:93px}
@media(max-width:900px){.wrap{width:calc(100% - 56px)}.hero{min-height:540px}.sculpture{height:420px}}
@media(max-width:660px){.wrap{width:calc(100% - 36px)}.top{height:69px}.logo{width:100px}.top{display:grid;grid-template-columns:1fr auto;height:auto;padding-block:15px;gap:14px}.top nav{grid-row:2;grid-column:1/-1;justify-content:center;gap:26px}.top > .pill{grid-column:2;grid-row:1}.pill{gap:12px;padding:11px 13px}.hero{display:block;padding-top:10px}.hero-copy{padding:37px 0 2px}.hero h1{font-size:clamp(3.9rem,14vw,6rem)}.sculpture{height:320px;margin-top:5px}.stage-label{top:9px}.hero-index{gap:8px;font-size:.55rem}.worlds,.booking{padding-block:55px}.section-head{align-items:start;flex-direction:column}.booking-inner{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important}}

.theme-certio{--product-ink:#0c2249;--product-accent:#ffd447;--product-wash:#fff3c8;--product-line:#d9bb5b}
.theme-formatic{--product-ink:#1d164f;--product-accent:#f05d69;--product-wash:#ffe5e9;--product-line:#d78d97}
.theme-cinego{--product-ink:#0c2249;--product-accent:#ff603d;--product-wash:#eef2f7;--product-line:#a8b7cc}

.product-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}
.product-tile{display:grid;align-content:start;justify-items:start;gap:20px;min-height:248px;padding:25px;border-radius:18px;background:var(--product-wash);color:var(--product-ink);border:1px solid transparent;transition:transform .24s,border-color .24s}
.product-tile:hover{transform:translateY(-5px);border-color:var(--product-line)}
.product-tile img{object-fit:contain;object-position:left center}
.tile-title{font-size:1.1rem;font-weight:650}
.tile-link{display:inline-flex;align-items:center;gap:9px;font-size:.82rem;font-weight:800}
.tile-link svg{margin-top:1px}
.footer nav{display:flex;flex-wrap:wrap;justify-content:end;gap:10px 23px}
.legal{max-width:780px;padding-block:65px 85px}
.legal h1{font-size:clamp(2.6rem,7vw,5.6rem)}
.legal h2{font-size:1.42rem;letter-spacing:-.025em;margin-top:32px;margin-bottom:10px;line-height:1.2}
.legal p,.legal address{line-height:1.65;margin-top:10px;color:var(--muted)}
.legal address{font-style:normal}
.legal a{text-decoration:underline;text-underline-offset:2px}
.legal .draft-note{background:#e9ecff;padding:13px 15px;border-radius:8px;color:var(--ink)}
@media(max-width:800px){.product-tile{padding:18px}.product-tile img{max-width:100%}}
@media(max-width:660px){.product-grid{grid-template-columns:1fr}.product-tile{min-height:0;gap:13px}.legal{padding-block:48px}.footer{align-items:flex-start}}
@media(prefers-reduced-motion:reduce){.product-tile:hover{transform:none}}

select{
  appearance:none;
  padding-inline:12px 42px;
  background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='m4 6 4 4 4-4' fill='none' stroke='%2310152e' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 15px center;
}

.theme-sign{--product-ink:#172b52;--product-wash:#e1edf9;--product-line:#81b9d3}
.product-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.sign-brand{display:inline-flex;align-items:center;gap:9px;height:54px;color:#172b52}
.sign-brand img{width:clamp(82px,8.5vw,115px);height:auto;object-fit:contain}
.sign-brand span{border-left:1px solid #92a4be;padding-left:9px;font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;font-weight:800}
@media(max-width:950px){.product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:570px){.product-grid{grid-template-columns:1fr}.top nav{gap:18px}.hero-index{flex-wrap:wrap}}
.product-tile img{max-width:100%}


.home-page{--blue:#1b2a4a}
.home-page .hero h1{letter-spacing:-.072em;word-spacing:.055em}
.home-page .hero h1 em{color:#42679e}
.home-page .primary:hover{background:#2b4069}
.home-page :focus-visible{outline-color:var(--blue)}
.home-page .sculpture{background:radial-gradient(ellipse at 52% 52%,#e2e7f0 0%,#f1f3f8 51%,transparent 75%)}
.home-page .sculpture::before{background-image:radial-gradient(#73839f 1px,transparent 1px)}
.home-page .booking{background:#e9edf4}
.drag-hint{display:none}
.sculpture.is-draggable canvas{cursor:grab}
.sculpture.is-dragging canvas{cursor:grabbing}
@media(any-pointer:fine){
 .sculpture.is-draggable .drag-hint{display:block;position:absolute;bottom:21px;left:14px;color:var(--muted);font-size:.74rem;pointer-events:none}
}
