:root{
--paper:#fff9f0;--paper-deep:#fcedd9;--cream:#fff0c9;--white:#ffffff;
--ink:#2b1b0c;--ink-deep:#090705;--text:#241a11;--muted:#6c5541;
--honey:#f6ad0e;--honey-dark:#6f4b00;--peach:#c96f4f;--peach-deep:#a95039;--peach-soft:#f3b28e;
--focus:#c07c00;--chalkboard:#3a2d20;--chalk:#fff6e6;--chalk-frame:#8a5c24;
--on-ink:#fff0c9;--on-ink-soft:#e8d6b4;--footer-text:#d8c8a6;
--line:rgba(43,27,12,.18);--line-on-ink:rgba(255,240,201,.28);
--fir:#4f6b46;--fir-deep:#3b5236;
--display:'Quicksand','Segoe UI',system-ui,sans-serif;
--body:'Karla','Segoe UI',system-ui,sans-serif;
--gap:32px;
}
html,body{overflow-x:clip}
html{scroll-behavior:smooth}
.page section[id]{scroll-margin-top:24px}
body{margin:0;background:var(--paper)}
a{color:var(--honey-dark)}a:hover{color:var(--peach-deep)}
.page{background:var(--paper);color:var(--text);font-family:var(--body);font-size:17px;line-height:1.6}
.page *{box-sizing:border-box}
.wrap{max-width:1440px;margin-inline:auto;padding-inline:clamp(20px,4.5vw,64px)}
.g12{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);row-gap:var(--gap)}
h1,h2,h3{font-family:var(--display);font-weight:700;color:var(--ink);margin:0;text-wrap:balance;overflow-wrap:break-word;min-width:0}
h1{font-size:clamp(3.6rem,7.4vw,6.8rem);line-height:.97;letter-spacing:-.048em;max-width:9ch}
h2{font-size:clamp(2.3rem,3.7vw,3.3rem);line-height:1.02;letter-spacing:-.035em;max-width:17ch}
h3{font-size:1.55rem;line-height:1.12;letter-spacing:-.015em}
p{margin:0;text-wrap:pretty}
.lead{font-size:1.24rem;line-height:1.45;max-width:46ch}
.small{font-size:.88rem;line-height:1.5;color:var(--muted)}
.fig{font-family:var(--display);font-weight:700;line-height:.86;letter-spacing:-.055em;font-variant-numeric:tabular-nums}

.btn{display:inline-flex;align-items:center;justify-content:center;min-height:54px;padding:0 30px;border:2px solid var(--ink);border-radius:0;font-family:var(--body);font-weight:800;font-size:17px;line-height:1;text-decoration:none;cursor:pointer;transition:transform 130ms cubic-bezier(.2,.7,.2,1),background-color 130ms linear,color 130ms linear}
.btn:hover{transform:translateY(-2px)}
a.btn-primary,.btn-primary{background:var(--ink);color:var(--paper)}
a.btn-primary:hover,.btn-primary:hover{background:var(--peach-deep);border-color:var(--peach-deep);color:var(--paper)}
a.btn-quiet,.btn-quiet{background:transparent;color:var(--ink)}
a.btn-quiet:hover,.btn-quiet:hover{background:var(--ink);color:var(--paper)}
a.btn-honey,.btn-honey{background:var(--honey);border-color:var(--honey);color:var(--ink-deep)}
a.btn-honey:hover,.btn-honey:hover{background:var(--cream);border-color:var(--cream);color:var(--ink-deep)}
.btn-sm{min-height:44px;padding:0 20px;font-size:15px}
.page :focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.on-ink :focus-visible{outline-color:var(--honey)}

.nav{border-bottom:1px solid var(--line)}
.nav-in{min-height:92px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.logos{display:flex;align-items:center;gap:22px}
.logos img{display:block;width:auto}
.logo-hive{height:60px}.logo-chambers{height:36px}
.logo-rule{width:1px;height:44px;background:var(--line)}

/* ---------- hero ---------- */
.hero{padding-block:clamp(32px,4vw,56px) clamp(48px,6vw,80px)}
.hero-grid{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,6fr);gap:clamp(40px,5vw,80px);align-items:start}
.hero-text{display:flex;flex-direction:column;align-items:flex-start;gap:30px;padding-top:28px}
.hero-sub{font-family:var(--display);font-weight:700;font-size:clamp(1.05rem,1.6vw,1.45rem);line-height:1.3;letter-spacing:-.02em;color:var(--ink);text-wrap:balance}
.hero-text .btn{margin-top:6px}
.w{white-space:nowrap}
.lt{position:relative;display:inline-block}
.lt-bulb{position:absolute;transform-origin:50% 0}
.lt-bulb{width:.072em;height:.135em;margin-left:-.036em}
.bulb-cap{display:block;width:58%;height:28%;margin:0 auto;background:var(--chalkboard);border-radius:1px}
.bulb-glass{display:block;width:100%;height:76%;margin-top:-4%;border-radius:50% 50% 50% 50% / 38% 38% 62% 62%;animation:blink 2.6s ease-in-out infinite}
@keyframes blink{0%,36%{opacity:1;filter:brightness(1.18) saturate(1.1)}50%,86%{opacity:.14;filter:brightness(.85)}100%{opacity:1;filter:brightness(1.18) saturate(1.1)}}
a.btn-hero,.btn-hero{min-height:74px;padding:0 41px;font-size:24px;color:var(--paper);background:var(--ink);border-color:var(--ink)}
a.btn-hero:hover,.btn-hero:hover{background:var(--peach-deep);border-color:var(--peach-deep);color:var(--paper)}

/* advent calendar */
.advent{position:relative;background:var(--paper-deep);border:2px solid var(--ink);padding:0 clamp(18px,2.6vw,38px) clamp(18px,2.2vw,30px);display:flex;flex-direction:column;gap:16px;margin-top:28px}
.advent::before{content:'';position:absolute;inset:9px;border:1.5px dashed rgba(169,80,57,.42);pointer-events:none}
.garland{display:block;width:calc(100% + 40px);height:auto;margin:-34px -20px -6px;position:relative}
.garland .g-stem{fill:none;stroke:var(--fir-deep);stroke-width:3;stroke-linecap:round}
.garland .g-needle{fill:none;stroke:var(--fir);stroke-width:2.4;stroke-linecap:round}
.garland .g-needle-2{stroke:var(--fir-deep)}
.garland .g-berry{fill:var(--peach)}
.garland .g-berry-2{fill:var(--peach-deep)}
.garland .g-straw{fill:var(--cream);stroke:var(--honey-dark);stroke-width:1.6;stroke-linejoin:round}
.garland .g-knot{fill:var(--peach-deep);stroke:var(--honey-dark);stroke-width:1.4}
.count{position:relative;display:flex;align-items:flex-end;gap:16px}
.count-num{font-family:var(--display);font-weight:700;font-size:clamp(3.2rem,4.6vw,4.3rem);line-height:.8;letter-spacing:-.055em;color:var(--peach-deep);font-variant-numeric:tabular-nums}
.count-line{font-family:var(--display);font-weight:700;font-size:clamp(1.15rem,1.6vw,1.45rem);line-height:1.15;letter-spacing:-.015em;color:var(--ink);max-width:17ch;padding-bottom:2px}
.dow,.doors{position:relative;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:clamp(4px,.55vw,7px)}
.dow span{text-align:center;font-weight:800;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.door{position:relative;aspect-ratio:1 / .68;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;background:var(--paper);border:1.5px solid rgba(43,27,12,.55);border-radius:50% 50% 4px 4px / 34% 34% 4px 4px}
.d-mon{font-weight:800;font-size:clamp(.54rem,.72vw,.66rem);line-height:1;letter-spacing:.08em;text-transform:uppercase;color:var(--peach-deep)}
.d-num{font-family:var(--display);font-weight:700;font-size:clamp(.92rem,1.4vw,1.3rem);line-height:1;color:var(--ink);font-variant-numeric:tabular-nums}
.door.is-past{background:transparent;border-color:rgba(43,27,12,.28)}
.door.is-past .d-num{color:rgba(43,27,12,.4)}
.door.is-past .d-mon{color:rgba(169,80,57,.55)}
.d-x{position:absolute;inset:16% 18%;width:64%;height:68%;overflow:visible}
.d-x path{fill:none;stroke:var(--peach-deep);stroke-width:3;stroke-linecap:round}
.door.is-today{background:var(--ink);border-color:var(--ink);box-shadow:0 0 0 3px var(--paper-deep),0 0 0 5px var(--honey)}
.door.is-today .d-num{color:var(--on-ink)}
.door.is-today .d-mon{color:var(--honey)}
.door.is-end{background:var(--peach);border-color:var(--ink);border-width:2px}
.door.is-end .d-num,.door.is-end .d-mon{color:var(--ink-deep)}
.d-star{width:22%;height:auto;margin-bottom:1px}
.d-star path{fill:var(--cream);stroke:var(--ink-deep);stroke-width:1.6;stroke-linejoin:round}
.door-blank{display:flex;align-items:center;justify-content:center;aspect-ratio:1 / .68}
.door-blank svg{width:auto;height:70%}
.m-tree{fill:var(--fir);stroke:var(--fir-deep);stroke-width:1.4;stroke-linejoin:round}
.m-trunk{fill:var(--chalk-frame)}
.m-straw{fill:var(--cream);stroke:var(--honey-dark);stroke-width:1.4;stroke-linejoin:round}
.m-dot{fill:var(--peach-deep)}

/* ---------- steady ---------- */
.steady{padding-block:clamp(56px,7vw,104px)}
.headrow{align-items:end;margin-bottom:48px}
.headrow h2{grid-column:1 / span 9}
.headrow .lead{grid-column:8 / span 5;color:var(--muted)}
.steady-head{align-items:center;margin-bottom:56px}
.steady-head h2{grid-column:1 / span 6;max-width:none;font-size:clamp(2.8rem,4.4vw,4.2rem);line-height:1}
.sr{grid-column:7 / span 6;margin:0;display:flex;flex-direction:column;gap:12px}
.sr svg{display:block;width:100%;height:auto;overflow:visible}
.sr .small{text-align:right}
.sr-page{fill:var(--cream);stroke:var(--ink);stroke-width:2}
.sr-head-held{fill:var(--peach)}
.sr-head{fill:var(--ink)}
.sr-ring{fill:var(--ink)}
.sr-lock{fill:none;stroke:var(--ink-deep);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.sr-lock-body{fill:var(--ink-deep)}
.sr-base{stroke:var(--line);stroke-width:1.5}
.sr-card,.sr-bar{transform-box:fill-box;transform-origin:50% 100%;animation-duration:16s;animation-iteration-count:infinite;animation-fill-mode:both;animation-timing-function:cubic-bezier(.45,.05,.25,1)}
.sr-bar{fill:var(--honey);stroke:var(--ink);stroke-width:2}
.sr-line{fill:none;stroke:var(--peach-deep);stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;animation:srLine 16s cubic-bezier(.45,.05,.25,1) infinite both}
.sr-dot{fill:var(--paper);stroke:var(--peach-deep);stroke-width:3}
.sr-dots{animation:srDots 16s cubic-bezier(.45,.05,.25,1) infinite both}
@keyframes srCard0{0%{opacity:0;transform:translateY(18px)}12.0%{opacity:1;transform:translateY(0)}88%{opacity:1;transform:translateY(0)}95%,100%{opacity:0;transform:translateY(0)}}
@keyframes srBar0{0%,5.0%{transform:scaleY(0)}19.0%,100%{transform:scaleY(1)}}
.sr-c0{animation-name:srCard0}.sr-b0{animation-name:srBar0}
@keyframes srCard1{0%,5.5%{opacity:0;transform:translateY(18px)}17.5%{opacity:1;transform:translateY(0)}88%{opacity:1;transform:translateY(0)}95%,100%{opacity:0;transform:translateY(0)}}
@keyframes srBar1{0%,10.5%{transform:scaleY(0)}24.5%,100%{transform:scaleY(1)}}
.sr-c1{animation-name:srCard1}.sr-b1{animation-name:srBar1}
@keyframes srCard2{0%,11.0%{opacity:0;transform:translateY(18px)}23.0%{opacity:1;transform:translateY(0)}88%{opacity:1;transform:translateY(0)}95%,100%{opacity:0;transform:translateY(0)}}
@keyframes srBar2{0%,16.0%{transform:scaleY(0)}30.0%,100%{transform:scaleY(1)}}
.sr-c2{animation-name:srCard2}.sr-b2{animation-name:srBar2}
@keyframes srCard3{0%,16.5%{opacity:0;transform:translateY(18px)}28.5%{opacity:1;transform:translateY(0)}88%{opacity:1;transform:translateY(0)}95%,100%{opacity:0;transform:translateY(0)}}
@keyframes srBar3{0%,21.5%{transform:scaleY(0)}35.5%,100%{transform:scaleY(1)}}
.sr-c3{animation-name:srCard3}.sr-b3{animation-name:srBar3}
@keyframes srCard4{0%,22.0%{opacity:0;transform:translateY(18px)}34.0%{opacity:1;transform:translateY(0)}88%{opacity:1;transform:translateY(0)}95%,100%{opacity:0;transform:translateY(0)}}
@keyframes srBar4{0%,27.0%{transform:scaleY(0)}41.0%,100%{transform:scaleY(1)}}
.sr-c4{animation-name:srCard4}.sr-b4{animation-name:srBar4}
@keyframes srLine{0%,30%{stroke-dashoffset:1;opacity:1}52%{stroke-dashoffset:0;opacity:1}84%{stroke-dashoffset:0;opacity:1}89%,100%{stroke-dashoffset:0;opacity:0}}
@keyframes srDots{0%,49%{opacity:0}55%{opacity:1}84%{opacity:1}89%,100%{opacity:0}}
.tile{min-height:320px;padding:clamp(24px,3vw,40px);display:flex;flex-direction:column;justify-content:space-between;gap:36px;background:var(--cream);color:var(--text)}
.tile p{font-size:1.14rem;line-height:1.45;max-width:30ch}
.tile .fig{font-size:clamp(4rem,7vw,6.4rem);color:var(--honey-dark)}
.t7{grid-column:span 7}.t5{grid-column:span 5}
.tiles{column-gap:2px;row-gap:2px;background:var(--honey)}
.tile-lead{background:var(--peach);color:var(--ink-deep)}
.tile-lead .fig{font-size:clamp(4.8rem,10.5vw,9.6rem);color:var(--ink-deep)}
.tile-lead p{font-weight:700}
.tile-ink{background:var(--ink);color:var(--on-ink)}
.tile-ink .fig{color:var(--honey)}

/* ---------- video ---------- */
.pool{background:var(--paper-deep);border-block:1px solid var(--line);padding-block:clamp(72px,8vw,120px)}
.lesson-head{display:flex;flex-direction:column;align-items:center;text-align:center;gap:20px;max-width:900px;margin:0 auto 48px}
.lesson-head h2{max-width:20ch}
.lesson-head .lead{color:var(--muted);max-width:56ch}
.lesson-cue{font-weight:800;color:var(--peach-deep)}
.film{margin:0}
.board{position:relative;aspect-ratio:16 / 9;background:var(--chalkboard);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(20px,3vw,40px);padding:24px;text-align:center;overflow:hidden}
.board.has-poster{background-size:cover;background-position:center}
.board.has-poster .board-title{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.board.has-poster .play{position:absolute;left:50%;top:70%;transform:translate(-50%,-50%);box-shadow:0 8px 28px rgba(0,0,0,.45)}
.board.has-poster .play:hover{transform:translate(-50%,-50%) scale(1.06)}
.board-title{font-family:var(--display);font-weight:700;font-size:clamp(2rem,5.4vw,4.8rem);letter-spacing:-.03em;line-height:1;color:var(--chalk)}
.play{width:clamp(72px,8vw,112px);height:clamp(72px,8vw,112px);border-radius:50%;border:0;background:var(--honey);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform 130ms cubic-bezier(.2,.7,.2,1)}
.play:hover{transform:scale(1.06)}
.board.is-playing{padding:0;background:#000}
.board iframe,.board video{position:absolute;inset:0;width:100%;height:100%;border:0;background:#000}

/* ---------- calculator ---------- */
.calc{background:var(--ink);color:var(--on-ink);padding-block:clamp(72px,8vw,120px)}
.calc h2,.calc h3{color:var(--on-ink)}
.calc h2{max-width:16ch}
.calc-top{align-items:start;margin-bottom:40px}
.calc-head{grid-column:1 / span 6;display:flex;flex-direction:column;align-items:flex-start;gap:22px}
.calc-head .lead{color:var(--on-ink-soft)}
.calc-keys{grid-column:8 / span 5;display:flex;flex-direction:column;gap:14px}
.calc-keys h3{font-size:clamp(1.45rem,1.9vw,1.8rem);line-height:1.05;letter-spacing:-.03em}
.calc-keys > .small{color:var(--on-ink-soft);margin-bottom:6px}
.stepper{display:flex;align-items:center;gap:6px}
.stepper button{width:54px;height:54px;border:2px solid var(--on-ink);border-radius:0;background:transparent;color:var(--on-ink);font-family:var(--body);font-size:26px;font-weight:700;line-height:1;cursor:pointer;transition:background-color 130ms linear,color 130ms linear}
.stepper button:hover{background:var(--on-ink);color:var(--ink)}
.stepper button:disabled{opacity:.4;cursor:not-allowed}
.stepper output{min-width:92px;height:54px;display:flex;align-items:center;justify-content:center;background:var(--peach);color:var(--ink-deep);font-family:var(--display);font-weight:700;font-size:1.9rem;font-variant-numeric:tabular-nums}
.people{align-self:stretch;display:flex;flex-direction:column;align-items:flex-start;gap:14px;padding-top:22px;border-top:1px solid var(--line-on-ink);margin-top:10px}
.people-label{font-weight:800;font-size:1.05rem}
.people-row{display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px}
.keys{display:flex;flex-direction:column;gap:10px;padding-right:14px}
.key{display:flex;align-items:baseline;gap:18px;width:100%;min-height:58px;padding:13px 20px;text-align:left;background:transparent;color:var(--on-ink);border:2px solid var(--line-on-ink);border-radius:0;font-family:var(--body);font-weight:800;font-size:1.12rem;cursor:pointer;transition:transform 150ms cubic-bezier(.2,.7,.2,1),background-color 130ms linear,color 130ms linear}
.key span{font-family:var(--display);font-weight:700;font-variant-numeric:tabular-nums;color:var(--honey)}
.key:hover{border-color:var(--on-ink)}
.key.is-on{background:var(--peach);border-color:var(--peach);color:var(--ink-deep);transform:translateX(14px)}
.key.is-on span{color:var(--ink-deep)}
.calc-body{padding-top:36px;border-top:1px solid var(--line-on-ink)}
.detail{grid-column:1 / span 6;display:flex;flex-direction:column;gap:14px}
.detail p{color:var(--on-ink-soft)}
.detail .svc-val{margin-top:auto;padding-top:22px;border-top:1px solid var(--line-on-ink)}
.detail .svc-val .fig{font-size:3.2rem;color:var(--on-ink);margin-top:8px}
.total{grid-column:8 / span 5;padding-left:var(--gap);border-left:1px solid var(--line-on-ink);display:flex;flex-direction:column;gap:12px}
.total .fig{font-size:clamp(4.2rem,7.6vw,6.9rem);color:var(--honey);margin-top:10px}
.total .per{font-weight:800;font-size:1.1rem;color:var(--on-ink)}
.total .small,.calc .small{color:var(--on-ink-soft)}
.calc-foot{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:24px 48px;margin-top:8px;padding-top:28px;border-top:1px solid var(--line-on-ink)}
.calc details{max-width:62ch;color:var(--on-ink-soft);font-size:.95rem}
.calc summary{cursor:pointer;font-weight:800;color:var(--on-ink);min-height:44px;display:flex;align-items:center}

/* ---------- join ---------- */
.join{padding-block:clamp(72px,9vw,128px)}
.join-text{grid-column:span 5;display:flex;flex-direction:column;gap:28px}
.join-text .lead{color:var(--muted);font-size:1.12rem}
.how{margin:0;padding:0;list-style:none;counter-reset:how;display:flex;flex-direction:column}
.how li{counter-increment:how;display:grid;grid-template-columns:44px minmax(0,1fr);gap:4px 18px;padding-block:18px;border-top:1px solid var(--line)}
.how li::before{content:counter(how);grid-row:span 2;width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--peach);color:var(--ink-deep);font-family:var(--display);font-weight:700;font-size:1.3rem}
.how strong{font-weight:800}
.how span{color:var(--muted)}
.form{grid-column:7 / span 6;background:var(--white);border:2px solid var(--ink);padding:clamp(24px,3.2vw,44px);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;align-content:start}
.form .full{grid-column:1 / -1}
.field{display:flex;flex-direction:column;gap:7px;font-weight:700;font-size:15px}
.field input,.field select{height:54px;padding:0 14px;border:2px solid var(--ink);border-radius:0;background:var(--paper);color:var(--text);font-family:var(--body);font-size:17px;font-weight:400}
.form fieldset{margin:0;padding:0;border:0;display:flex;flex-wrap:wrap;gap:6px 28px}
.form legend{font-weight:700;font-size:15px;margin-bottom:6px;padding:0}
.radio{display:flex;align-items:center;gap:10px;min-height:44px;font-size:16px;font-weight:400}
.radio input{width:20px;height:20px;accent-color:var(--ink)}
.submit{display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px}

.terms{background:var(--paper-deep);border-top:1px solid var(--line);padding-block:36px}
.terms p{max-width:96ch;font-size:.86rem;line-height:1.55;color:var(--muted)}
.foot{background:var(--ink-deep);color:var(--footer-text);padding-block:56px}
.foot-in{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:28px 64px}
.foot-name{font-family:var(--display);font-weight:700;font-size:1.5rem;letter-spacing:-.02em;color:var(--on-ink)}
.foot p{max-width:44ch}
.foot-note{font-size:.9rem}
.foot ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px;font-size:1.05rem}
.foot a{color:var(--on-ink)}.foot a:hover{color:var(--honey)}

@media (max-width:960px){
.hero-grid{grid-template-columns:minmax(0,1fr)}
.headrow h2,.headrow .lead,.steady-head h2,.sr,.t7,.t5,.calc-head,.calc-keys,.detail,.total,.join-text,.form{grid-column:1 / -1}
.headrow,.steady-head{margin-bottom:36px}
.sr .small{text-align:left}
.tile{min-height:0}
.total{padding-left:0;border-left:0;padding-top:24px;border-top:1px solid var(--line-on-ink)}
}
@media (max-width:560px){
.form{grid-template-columns:minmax(0,1fr)}
.logo-hive{height:48px}.logo-chambers{height:26px}.logos{gap:14px}
.d-mon{display:none}
}
@media (prefers-reduced-motion:reduce){
html{scroll-behavior:auto}
.btn,.key,.play,.stepper button{transition:none}
.btn:hover,.play:hover{transform:none}
.board.has-poster .play:hover{transform:translate(-50%,-50%)}
.bulb-glass,.sr-card,.sr-bar,.sr-dots{animation:none !important;opacity:1;transform:none}
.sr-line{animation:none;stroke-dashoffset:0}
}
