/* Interactive studio worlds. The selector, scene and controls share one viewport. */
.worlds-section{position:relative;isolation:isolate;padding-block:66px 76px;--world-glow:#66463a;--world-tint:#e5b578}
.worlds-section[data-world="little-haven"]{--world-glow:#355a46;--world-tint:#cddbad}
.worlds-section[data-world="encirla"]{--world-glow:#274e49;--world-tint:#eab49a}
.worlds-section:before{content:'';position:absolute;inset:120px -24px 70px;z-index:-1;background:radial-gradient(ellipse at 50% 30%,var(--world-glow),transparent 72%);opacity:.28;transition:background .7s}
.worlds-section>.section-heading{margin-bottom:19px}
.worlds-introduction{font-size:13px;margin-bottom:31px}
.world-viewer{display:grid;grid-template-rows:max-content minmax(min-content,1fr) max-content;block-size:min(820px,calc(100svh - var(--site-header-height) - 28px));min-block-size:min-content}
.world-switcher{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;background:#192a32a8;border:1px solid #d7d1bc18;border-bottom:0;border-radius:26px 26px 0 0;overflow:hidden}
.world-tab{display:flex;align-items:center;gap:15px;min-width:0;position:relative;padding:15px 24px;border:0;border-bottom:2px solid transparent;border-radius:18px 18px 0 0;background:transparent;color:var(--muted);text-align:left;transition:background .25s,color .25s}
.world-tab:hover{background:#23323c;color:var(--ink)}
.world-tab[aria-selected="true"]{background:linear-gradient(135deg,color-mix(in srgb,var(--world-tint) 18%,#1b2a30),#23323bb3);color:var(--ink);border-bottom-color:transparent;box-shadow:inset 0 1px 0 #e5d6ac26}
.world-tab-index{font-size:9px;letter-spacing:.1em;color:var(--accent);align-self:flex-start;margin-top:7px}
.world-tab strong{display:block;font-size:20px;font-weight:500;letter-spacing:-.025em;line-height:1.4}
.world-tab small{display:block;font-size:9px;color:var(--muted);margin-top:4px;letter-spacing:.035em}
.world-tab-arrow{margin-left:auto;color:var(--world-tint);display:flex}
.world-tab-arrow svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.2}
.world-stage{position:relative;display:grid;min-width:0;border:1px solid #d7d1bc18;border-top:0;border-radius:0 0 34px 34px;overflow:hidden;background:#192832;--pointer-x:50%;--pointer-y:40%;--scene-x:0px;--scene-y:0px}
.world-panel{position:relative;grid-area:1/1;display:flex;flex-direction:column;min-width:0;padding:24px 42px 36px;isolation:isolate;color:#f6f0e3;outline-offset:-6px!important}
.world-scene{position:absolute;inset:-12px;z-index:-2;transform:translate(var(--scene-x),var(--scene-y));transition:transform 1s cubic-bezier(.2,.7,.2,1)}
.world-background,.world-forest{position:absolute;width:100%;height:100%;object-fit:cover}
.world-panel-sunderward .world-background{object-position:62% 48%}
.world-panel-haven .world-background{object-position:48% 50%}
.world-pointer-light{position:absolute;inset:0;background:radial-gradient(ellipse 380px 290px at var(--pointer-x) var(--pointer-y),#ffe2a025,transparent 80%);mix-blend-mode:screen;transition:opacity .5s;pointer-events:none}
.world-mist{position:absolute;inset:25% -10% -12%;background:radial-gradient(ellipse at 25% 74%,#dbdcd22c,transparent 47%),radial-gradient(ellipse at 80% 50%,#dbdcd21a,transparent 48%);filter:blur(18px);animation:world-mist 18s ease-in-out infinite alternate;pointer-events:none}
.world-motes{position:absolute;inset:0;width:100%;height:100%;color:#ffe1a0;opacity:.55;animation:world-motes 11s ease-in-out infinite alternate;pointer-events:none}
.world-panel-haven .world-motes{color:#f5eac0;opacity:.5}
.world-panel-encirla .world-mist{opacity:.7}
.world-vignette{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,#06111842,transparent 28%,#07111c12 40%,#07111ce8),linear-gradient(90deg,#09111e44,transparent 75%);pointer-events:none}
.world-panel-haven .world-vignette{background:linear-gradient(180deg,#09282038,transparent 35%,#0b252296),linear-gradient(90deg,#07231fe0,transparent 78%)}
.world-panel-encirla .world-vignette{background:linear-gradient(90deg,#082522e6,transparent 88%),linear-gradient(0deg,#081e20d9,transparent 50%)}
.world-topline{display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:9px;text-transform:uppercase;letter-spacing:.15em}
.world-topline .status{color:#eee4d1;font-size:9px;letter-spacing:.025em;text-transform:none}
.world-topline .status i{background:var(--world-tint)}
.world-panel-copy{position:relative;margin-top:auto;padding-top:30px;max-width:620px;width:100%;z-index:2}
.world-kicker{color:var(--world-tint);font-size:10px;letter-spacing:.13em;text-transform:uppercase;margin-bottom:12px}
.world-panel-copy h3{font:600 clamp(38px,6.4svh,61px)/1.03 var(--serif);letter-spacing:-.025em;max-width:620px;margin-bottom:16px;text-wrap:balance}
.world-panel-copy>p:not(.world-kicker){font-size:13px;line-height:1.7;max-width:500px;color:#e2e3d9;text-shadow:0 2px 12px #05111280}
.world-panel-encirla .world-panel-copy{max-width:52%}
.world-panel-encirla .world-panel-copy h3{font:500 clamp(30px,4.8svh,46px)/1.12 var(--sans);letter-spacing:-.045em;max-width:510px}
.world-actions{display:flex;align-items:center;flex-wrap:wrap;gap:20px;margin-top:20px}
.world-actions .button{font-size:11px;min-height:44px;padding:12px 18px;gap:20px}
.world-actions .quiet-link{min-height:44px;border:0;border-bottom:1px solid #c1d2bc70;background:none;color:#f5efe2;font-size:11px}
.world-panel-haven .button-primary{background:#f0ead5;border-color:#f0ead5;color:#243e32}
.world-panel-encirla .button-primary{background:#edb294;border-color:#edb294;color:#1e3b32}
.world-encirla-identity{position:absolute;right:5%;top:15%;width:min(30%,300px);z-index:1}
.world-encirla-identity .encirla-brand-logo{width:100%;max-width:100%;height:auto}
.world-art-note{position:absolute;bottom:10px;right:20px;font-size:7px;text-transform:uppercase;letter-spacing:.1em;color:#f7f0dfb3}
.world-controls{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-block:8px;border-bottom:1px solid transparent}
.world-guidance{font-size:10px;letter-spacing:.03em;color:var(--muted)}
.world-control-buttons{display:flex;gap:12px}
.world-community-links{display:flex;align-items:center;min-width:0}
.world-community{display:inline-flex;align-items:center;gap:9px;min-height:44px;font-size:11px;color:var(--ink)}
.world-community .arrow-icon{width:12px;height:12px;color:var(--world-tint)}
.world-control{display:flex;align-items:center;gap:9px;border:1px solid transparent;border-radius:12px;background:#aeb9ab0b;color:var(--muted);padding:10px 13px;font-size:10px;line-height:1.4;min-height:44px}
.world-control:hover,.world-control[aria-pressed="true"]{background:#31413b55;color:var(--ink);border-color:#afc1a34d}
.world-control svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.3;stroke-linejoin:round}
.motion-symbol{font-size:14px;line-height:1;width:13px;text-align:center}
.worlds-section[data-motion="paused"] .world-motes,.worlds-section[data-motion="paused"] .world-mist{animation-play-state:paused}
.worlds-section[data-motion="paused"] .world-pointer-light{opacity:0}
.world-directory{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding-top:8px}
.world-directory a{display:grid;grid-template-columns:20px 1fr 16px;column-gap:13px;align-items:center;padding:26px 24px 26px 0;border-bottom:1px solid var(--line)}
.world-directory a:not(:first-child){padding-left:25px}
.world-directory a>span{color:var(--accent);font-size:9px;grid-row:1/3;align-self:start;margin-top:5px}
.world-directory strong{font-weight:500;font-size:17px;letter-spacing:-.02em;line-height:1.4}
.world-directory small{font-size:9px;color:var(--muted);margin-top:6px;grid-column:2;line-height:1.5}
.world-directory svg{grid-column:3;grid-row:1/3;color:var(--accent);width:12px;height:12px}
.world-directory a:hover strong{color:var(--accent)}
.crest-note{margin-top:27px;max-width:660px;font-size:11px;color:var(--muted)}
.crest-note summary{cursor:pointer;display:list-item;list-style:disclosure-closed inside;color:var(--accent);padding-block:10px;letter-spacing:.025em}
.crest-note[open] summary{list-style-type:disclosure-open}
.crest-note p{font-size:12px;line-height:1.9;margin-block:13px 9px}
.crest-note .text-link{font-size:11px}
.puzzle-teaser{display:flex;align-items:center;justify-content:space-between;gap:45px;padding:42px 45px;background:linear-gradient(120deg,#1a3330,#22352f);border:0;border-radius:26px 52px 26px 26px;margin-bottom:68px}
.puzzle-teaser .eyebrow{color:#c6d4aa;margin-bottom:16px}
.puzzle-teaser h2{font-family:var(--serif);font-size:43px;font-weight:600;letter-spacing:-.02em;color:#f5efdf;margin-bottom:17px}
.puzzle-teaser p:not(.eyebrow){font-size:12px;max-width:600px;color:#bbccc3}
.puzzle-teaser .button{background:#d6d5ab;border-color:#d6d5ab;color:#273e31;flex-shrink:0}
.theme-haven .puzzle-teaser{border:0}
@keyframes world-mist{from{transform:translateX(-2%) translateY(0)}to{transform:translateX(5%) translateY(-2%)}}
@keyframes world-motes{from{transform:translateY(5px);opacity:.25}to{transform:translateY(-13px);opacity:.65}}

/* A quiet, fully playable browser teaser. */
body.puzzle-is-open{overflow:hidden}
.haven-dialog{width:min(650px,calc(100% - 32px));max-height:calc(100dvh - 32px);overflow:auto;margin:auto;padding:39px 42px 26px;border:1px solid #93ad8b75;border-radius:24px;background:#172c29;color:#f2eedc;box-shadow:0 30px 100px #000a;color-scheme:dark}
.haven-dialog::backdrop{background:#030c14c7;backdrop-filter:blur(7px)}
.puzzle-close{position:absolute;right:17px;top:12px;width:36px;height:36px;border:0;background:none;color:#d7deca;font-size:27px;line-height:1}
.puzzle-header .eyebrow{color:#bfcfa4;font-size:9px;letter-spacing:.13em;margin-bottom:14px;padding-right:20px}
.puzzle-header h2{font:600 48px/1.05 var(--serif);letter-spacing:-.025em;margin-bottom:15px}
.puzzle-header>p:not(.eyebrow){color:#c2cec2;font-size:12px;line-height:1.9;max-width:470px}
.puzzle-meta{display:flex;justify-content:space-between;margin-block:25px 20px;font-size:9px;color:#c6d2ba;text-transform:uppercase;letter-spacing:.11em}
.stream-surround{display:grid;grid-template-columns:45px minmax(0,1fr) 45px;gap:10px;align-items:center}
.stream-source,.stream-goal{font-size:8px;color:#b7d7c6;line-height:1.8;text-align:center}
.stream-source span,.stream-goal span{display:block;font-size:23px;color:#a8d8c9;line-height:1.2;margin-block:7px}
.stream-goal{color:#d8d9af}
.stream-goal span{color:#d8d9af}
.stream-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;aspect-ratio:1;width:100%}
.stream-stone{position:relative;aspect-ratio:1;padding:0;border:1px solid #8293845e;border-radius:12px;background:linear-gradient(145deg,#344b43,#253b35);overflow:hidden;box-shadow:inset 0 1px 0 #d6e5ca13;transition:border-color .25s,background .25s}
.stream-stone:hover{border-color:#b9c6a3;background:linear-gradient(145deg,#3d5548,#2c443a)}
.stream-stone:focus-visible{outline:2px solid #e6d39c;outline-offset:2px;z-index:1}
.stream-stone:disabled{cursor:default;opacity:1}
.stream-pipe{display:block;width:100%;height:100%;fill:none;stroke-linecap:butt;transition:transform .25s ease}
.pipe-groove{stroke:#0c211e;stroke-width:29;stroke-linejoin:round}
.pipe-water{stroke:#789b8c;stroke-width:14;stroke-opacity:.24;stroke-linejoin:round;transition:stroke-opacity .3s,stroke .3s}
.has-water .pipe-water{stroke:#a1d6c4;stroke-opacity:1;filter:drop-shadow(0 0 3px #a8e2ce4d)}
.stone-number{position:absolute;bottom:5px;right:7px;font-size:8px;line-height:1;color:#bfcdad70;pointer-events:none}
.stream-stone.hinted{outline:2px solid #e5c985;outline-offset:2px;z-index:1}
.stream-complete .has-water{border-color:#d4d2a3a3}
.puzzle-status{min-height:45px;text-align:center;margin-block:22px 15px;color:#d3debf;font-size:12px;line-height:1.8}
.puzzle-controls{display:flex;justify-content:center;gap:9px;flex-wrap:wrap}
.puzzle-controls button{background:transparent;color:#d9dfc7;border:1px solid #9caf8955;border-radius:12px;min-height:42px;padding:10px 14px;font-size:10px}
.puzzle-controls button:hover{background:#55715845}
.puzzle-controls button:disabled{opacity:.45;cursor:default}
.puzzle-controls #puzzle-next{background:#d8d4a8;color:#273c31;border-color:#d8d4a8}
.puzzle-footer{display:flex;flex-direction:column;align-items:center;gap:11px;border-top:1px solid #95a97d36;padding-top:20px;margin-top:24px;font-size:9px;color:#aabca7;text-align:center}
.puzzle-footer a{display:inline-flex;gap:12px;align-items:center;color:#d4d9b6}
.puzzle-footer svg{width:11px;height:11px}
@media(max-width:1100px){
 .world-tab{padding:14px 18px;gap:12px}.world-tab strong{font-size:18px}.world-panel{padding-inline:30px}.world-directory a{padding-right:18px}.world-directory a:not(:first-child){padding-left:18px}.puzzle-teaser{padding:35px}.puzzle-teaser h2{font-size:38px}
}
@media(max-width:760px){
 .worlds-section{padding-block:41px 46px}.worlds-section>.section-heading{align-items:flex-end;gap:12px}.worlds-section .section-heading h2{font-size:31px;max-width:260px}.worlds-section .section-heading>.text-link{margin-top:0;padding-bottom:3px;font-size:9px}
 .worlds-introduction{font-size:11px;line-height:1.8;margin-bottom:24px;max-width:290px}.worlds-section:before{inset:120px -12px 60px}
 .world-tab{padding:10px 10px;display:block;min-height:64px}.world-tab-index{display:none}.world-tab strong{font-size:14px;line-height:1.4;font-weight:600}.world-tab small{font-size:8px;line-height:1.4;letter-spacing:0;margin-top:5px}.world-tab-arrow{display:none}
 .world-panel{padding:18px 20px 30px}.world-topline{flex-wrap:wrap;gap:5px 12px;font-size:8px;line-height:1.5}.world-topline .status{font-size:8px}
 .world-panel-copy{padding-top:22px;max-width:none}.world-kicker{font-size:8px;line-height:1.5;margin-bottom:10px;letter-spacing:.09em}
 .world-panel-copy h3{font-size:clamp(29px,4.8svh,38px);max-width:360px;margin-bottom:13px}.world-panel-copy>p:not(.world-kicker){font-size:12px;line-height:1.6;max-width:350px}
 .world-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;margin-top:17px}.world-actions .button{font-size:11px;padding:11px 12px;gap:10px;min-height:44px}.world-actions .quiet-link{font-size:11px;gap:8px;min-height:44px}.world-actions .arrow-icon{width:12px;height:12px;flex-shrink:0}
 .world-panel-sunderward .world-background{object-position:74% 45%}.world-panel-haven .world-background{object-position:42% 50%}.world-panel-haven .world-vignette{background:linear-gradient(180deg,#09282038,transparent 20%,#07231f3b 30%,#07231fed)}.world-mist{filter:blur(12px)}
 .world-panel-encirla{--identity-size:clamp(100px,18svh,156px)}.world-panel-encirla .world-panel-copy{max-width:none;padding-top:16px}.world-panel-encirla .world-panel-copy h3{font-size:clamp(26px,4.3svh,34px);max-width:340px}
 .world-panel-encirla .world-topline{padding-right:calc(var(--identity-size) + 12px);min-height:calc(var(--identity-size) * .866);flex-direction:column;align-items:flex-start;justify-content:flex-start;flex-wrap:nowrap;gap:7px}
 .world-encirla-identity{width:var(--identity-size);top:15px;right:18px}.world-panel-encirla .world-vignette{background:linear-gradient(0deg,#082522f0,transparent 80%)}
 .world-art-note{right:12px;bottom:9px;font-size:6px;letter-spacing:.08em}.world-guidance{display:none}.world-controls{gap:8px}.world-control-buttons{margin-left:auto;gap:7px}.world-community{font-size:10px;gap:5px}.world-control{font-size:10px;padding:10px 9px;min-height:44px}.world-control svg{width:14px;height:14px}
 .world-directory{grid-template-columns:1fr;padding-top:0}.world-directory a,.world-directory a:not(:first-child){padding:22px 0;grid-template-columns:20px 1fr 13px}.world-directory strong{font-size:18px}.world-directory small{font-size:9px}
 .crest-note{font-size:10px;margin-top:20px}.crest-note p{font-size:11px}.puzzle-teaser{display:block;padding:29px 26px;margin-bottom:42px}.puzzle-teaser h2{font-size:35px}.puzzle-teaser p:not(.eyebrow){font-size:11px}.puzzle-teaser .button{margin-top:25px}
.haven-dialog{padding:32px 23px 23px;max-height:calc(100dvh - 24px);width:calc(100% - 24px)}.puzzle-header .eyebrow{font-size:8px;padding-right:20px;letter-spacing:.08em}.puzzle-header h2{font-size:39px}.puzzle-header>p:not(.eyebrow){font-size:11px}.puzzle-close{right:10px;top:9px;font-size:25px;width:31px;height:31px}.puzzle-meta{font-size:8px;margin-block:23px 18px}.stream-surround{grid-template-columns:28px minmax(0,1fr) 28px;gap:6px}.stream-source,.stream-goal{font-size:6px}.stream-source span,.stream-goal span{font-size:19px}.stream-board{gap:5px}.stream-stone{border-radius:10px}.stone-number{font-size:6px;bottom:4px;right:5px}.puzzle-status{font-size:11px;min-height:41px;margin-block:19px 12px}.puzzle-controls{gap:7px}.puzzle-controls button{font-size:9px;padding:10px 11px;min-height:41px}.puzzle-footer{font-size:8px;line-height:1.7;padding-top:18px;margin-top:23px}

}
@media(max-width:760px) and (max-height:680px){
 .world-kicker{display:none}.world-panel-copy{padding-top:16px}.world-panel-encirla{--identity-size:100px}
}
@media(max-width:360px){
 .world-tab{padding:9px 6px;min-height:70px}.world-tab strong{font-size:12px;line-height:1.35}.world-tab small{font-size:7px;line-height:1.3;margin-top:4px}
}
@media(max-width:360px) and (max-height:640px){
 .world-panel{padding:14px 16px 26px}.world-panel-encirla{--identity-size:84px}.world-panel-encirla .world-panel-copy{padding-top:10px}.world-panel-copy h3{margin-bottom:10px}.world-actions{margin-top:14px}
}
@media(prefers-reduced-motion:reduce){
 .world-motes,.world-mist{animation:none!important}.world-scene,.world-pointer-light,.world-tab,.stream-pipe,.pipe-water{transition:none!important}.world-pointer-light{display:none}.worlds-section:before{transition:none}
}
