/* Courtyard: one real place, four windows into imagined worlds */
:root{--yard-ink:#443d49;--yard-cream:#f6e8cc;--yard-peach:#dbad90;--yard-teal:#587b77}
.hub{background:#f0d8b9;color:var(--yard-ink)}
.hub__top{background:#e5c6a9;border-color:#967f76}.brand{color:#433d4b}.brand>span{background:#f3e8d5;border-color:#8b7d85;box-shadow:4px 4px #b29a8d}.hub__status{color:#605663}.hub__status b{color:#4d6d63}
.hub__intro p{color:#586d62}.hub__intro h1{color:#514557;font-size:clamp(20px,2.7vw,38px);text-shadow:3px 3px #e2bea0}.hub__intro h1 br{display:block}.hub__intro h1 span{margin:0;color:#6d697f;text-shadow:3px 3px #e2bea0}.hub__intro small{color:#675963;font-size:12px;max-width:900px;line-height:2}
.studio-viewport{border:4px solid #88726b;box-shadow:8px 8px #c9a689;background:#d8b39a}.hub .world{background:#d7b499;aspect-ratio:1672/941}
.room-directory a{color:#655262}.room-directory a:hover,.room-directory a:focus-visible{color:#364f4c;border-color:#7f9290}.hub__help{color:#715e68}
.landmark{top:44%;height:33%;width:20%;z-index:7}.landmark--studio{left:2%}.landmark--principles{left:28%}.landmark--friends{left:53%}.landmark--contact{left:78%}
.landmark strong{background:#f6e6cbea;border-color:#947a70;color:#514251;box-shadow:3px 3px #795e6377}.landmark small{background:#f5e4ccee;color:#605361}.landmark:hover,.landmark.is-near,.landmark:focus-visible{border-color:#fcdfb0;background:#fff0cf12}.landmark.is-near:before{background:#68535e;color:#fff0ca}
.hero-sprite{z-index:10;bottom:10%}.hero-sprite b{position:absolute;right:-9px;top:5px;width:5px;height:13px;background:#c9998d;border-top:4px solid #8771a0;transform-origin:top center;animation:yardWave 7s steps(3) infinite}.hero-sprite.is-walking b{animation:none;transform:none}
@keyframes yardWave{0%,12%,100%{transform:rotate(0)}3%,9%{transform:rotate(-125deg)}6%{transform:rotate(-85deg)}}
.world-window{position:absolute;z-index:3;overflow:hidden;pointer-events:none;background:#c7b0b9;box-shadow:inset 0 0 0 2px #f5d49e}
.world-window img{display:block;width:100%;height:100%;object-fit:cover;image-rendering:pixelated}
.world-window--studio{left:6.4%;top:33.5%;width:14.3%;height:15.6%;border:0;clip-path:polygon(0 0,100% 0,100% 79%,64% 79%,64% 100%,0 100%)}
.world-window--studio:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent 19%,#8d6342 19% 21%,transparent 21% 47%,#795539 47% 51%,transparent 51% 79%,#8d6342 79% 81%,transparent 81%),linear-gradient(0deg,transparent 57%,#947047 57% 60%,transparent 60%)}
.world-window--principles{left:34.1%;top:34%;width:12.3%;height:18.9%;border:0}
.world-window--friends{left:64%;top:18.1%;width:4.4%;height:7.6%;border:0}
.world-window--contact{left:94.9%;top:47.5%;width:3.45%;height:6%;border:0;clip-path:polygon(25% 0,75% 0,75% 7%,93% 7%,93% 25%,100% 25%,100% 75%,93% 75%,93% 93%,75% 93%,75% 100%,25% 100%,25% 93%,7% 93%,7% 75%,0 75%,0 25%,7% 25%,7% 7%,25% 7%)}
.window-reflection{position:absolute;inset:0;background:linear-gradient(115deg,transparent 10%,#fff4dd22 12%,transparent 17%,transparent 70%,#fff4dd33 73%,transparent 78%);pointer-events:none}
.courtyard-motes{position:absolute;inset:0;pointer-events:none;z-index:4}.courtyard-motes i{position:absolute;left:15%;top:48%;width:3px;height:3px;background:#fff0bf;animation:yardMote 9s steps(15) infinite;opacity:.6}.courtyard-motes i:nth-child(2){left:32%;top:35%;animation-delay:-2s}.courtyard-motes i:nth-child(3){left:52%;top:48%;animation-delay:-5s}.courtyard-motes i:nth-child(4){left:70%;top:40%;animation-delay:-3s}.courtyard-motes i:nth-child(5){left:80%;top:65%;animation-delay:-7s}.courtyard-motes i:nth-child(6){left:25%;top:75%;animation-delay:-6s}@keyframes yardMote{0%,100%{translate:0 0;opacity:.2}50%{translate:8px -20px;opacity:.6}}
.page{--room-accent:#b79483;background:#edd5b9;color:#504450;padding:120px 4vw 70px}
.page.is-active{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);align-items:start;gap:36px}
.page .page__art{filter:none;opacity:.18;object-fit:cover;transform:none;object-position:center;mask-image:linear-gradient(#000,transparent 90%)}
.page .page__shade{background:#f0d6b84d}
.courtyard-view{position:sticky;top:120px;z-index:4;min-width:0;margin:0;background:#ead2b8;border:5px solid #9b8175;box-shadow:7px 7px #bea09055}
.courtyard-crop{position:relative;aspect-ratio:4/5;overflow:hidden;background:#d6b39b}
.courtyard-canvas{position:absolute;width:280%;aspect-ratio:1672/941;left:var(--crop-left,-6%);top:0}
.courtyard-backdrop{width:100%;height:100%;display:block;image-rendering:pixelated}
.courtyard-view figcaption{padding:18px 16px;background:#f5e7cf;font:12px/2 var(--px);color:#655465;border-top:3px solid #ad9381}
.page--studio{--crop-left:0%;--room-accent:#97627b}.page--principles{--crop-left:-72%;--room-accent:#5a7669}.page--friends{--crop-left:-140%;--room-accent:#6b7494}.page--contact{--crop-left:-180%;--room-accent:#667e8b}
.studio-note,.garden-manifesto,.fountain-message,.partner-story{position:relative;inset:auto;width:100%;max-width:none;margin:0;padding:30px;transform:none;background:#f7e8d4f5;color:#564653;border:3px solid #c8a49d;box-shadow:7px 7px #c3a28644;clip-path:none;text-shadow:none}
.studio-note h2,.garden-manifesto h2,.fountain-message h2,.partner-story h2{font-size:clamp(18px,1.8vw,27px);line-height:1.7;text-shadow:none;margin:0 0 25px;color:#554756}
.studio-note h2 span,.garden-manifesto h2 span,.fountain-message h2 span,.partner-story h2 span{color:var(--room-accent)}
.studio-note>p:first-child,.garden-manifesto>p:first-child,.fountain-message>p:first-child,.partner-story>p:first-child{font:11px/2 var(--px);color:var(--room-accent);margin:0 0 24px}
.type-line,.studio-note .room-copy,.room-copy,.partner-story>p:last-of-type,.fountain-message>p:not(:first-child){font:12px/2.2 var(--px);color:#665364}
.garden-manifesto{background:#edf0d9f5;border-color:#9dad92}.garden-manifesto li{font:12px/2 var(--px);border-color:#b5c0a2}.garden-manifesto li b{color:#698069}.garden-manifesto small{color:#68745e;font:12px/2 var(--px)}
.partner-story{background:#e8e5eff5;border-color:#aaa4bc}.partner-story .chapter-link{margin-bottom:24px}
.chapter-link{color:var(--room-accent);font-size:11px}.chapter-link:hover{color:#433946}
.partner-map{width:100%;max-width:100%;min-height:400px;margin:0;background:#f0e3cb;border:5px solid #ae9380;box-shadow:none;aspect-ratio:600/650}.partner-road path{stroke:#9b9295}.partner-medallion{border-color:#b5b4a1;outline-color:#756577}.partner-stop p{background:#f7efdf;color:#665b6f}.partner-stop h3{color:#665b6f}.partner-stop--future p{color:#716578}.empty-medallion{background:#d1d5d5;color:#657388;border-color:#a4a9b5}.trail-start{color:#7c6652;text-shadow:none}
.fountain-message{background:#e5ebeaf5;border-color:#9baeb0}.fountain-message>p:first-child:after{content:'OPEN';color:#6f807e}.fountain-message h2{text-shadow:none}.signal-display{background:#c9d9d5;border-color:#8caaa5}.signal-display__top,.signal-display__hint{color:#506e6b}.signal-wave i{background:#6e908a}.contact-lines a{background:#f0f0e3;border-color:#a4b5ad;box-shadow:3px 3px #a0b0aa44}.contact-lines a span{color:#526773}.contact-lines a b{color:#63747c}.contact-lines a:hover,.contact-lines a:focus-visible{background:#cedbd1;border-color:#7f9a91}.contact-lines a:hover b{color:#3e5c5c}.radio-label{color:#687a7d}.radio-grille{opacity:.4}
.return-portal,.return-portal--light{background:#faecd8f5;color:#655361;border-color:#a0857d;box-shadow:4px 4px #ab8e7766;text-shadow:none}.return-portal i,.return-portal--light i{background:#d2c4b2;border-color:#927a7c}.return-portal:hover{background:#e9d8c0}.page__hint,.page__hint--dark{color:#7e6975}
.mobile-controls{background:#eedcc2f5;border-color:#9b837c}.mobile-controls p{color:#695866}.joystick{background:#dac8b2;border-color:#97868d;color:#6a677c;box-shadow:3px 3px #b69c87}.joystick__thumb{background:#aaaebe;border-color:#e4dfd5;box-shadow:3px 3px #8d7e86}
/* Preserve the four ff0342f portal modes, rather than the v8 object-zoom overlay */
.transition>div:not(.transition-canvas){display:block!important}.transition .transition__label{display:block!important;color:#fff2d4;font-size:11px;line-height:2;text-align:center;width:80%}.transition__gate{background:#aa8990;border-color:#705663}.transition__gate:after{opacity:.6}.transition__pixels{background-color:#a7b9a1}.transition__flock{background:#777f9b}.transition__water{background:#a2bdc8}.transition__water:after{border-color:#e5e6d2}
@media(max-width:900px){.page.is-active{display:flex;flex-direction:column;padding:100px 20px 50px;gap:24px}.courtyard-view{position:relative;top:auto;width:100%;max-width:660px;margin:auto}.courtyard-crop{aspect-ratio:4/3}.courtyard-canvas{top:-12%}.studio-note,.garden-manifesto,.fountain-message,.partner-story{max-width:660px;margin:auto;width:100%;padding:26px}.hub__intro small{font-size:11px}.page--friends .partner-map{min-height:400px}}
@media(max-width:600px){.hub__intro h1{font-size:20px;line-height:1.65}.hub__intro small{font-size:10px;max-width:340px}.room-directory a{font-size:10px}.hub .world{width:900px;min-width:900px}.studio-viewport{height:480px}.hub__status{font-size:8px}.landmark strong{font-size:10px}.landmark small{font-size:9px}.courtyard-view figcaption{font-size:10px;padding:14px}.page.is-active{padding:90px 14px 40px}.studio-note,.garden-manifesto,.fountain-message,.partner-story{padding:24px 18px}.studio-note h2,.garden-manifesto h2,.fountain-message h2,.partner-story h2{font-size:18px}.type-line,.studio-note .room-copy,.room-copy,.partner-story>p:last-of-type,.fountain-message>p:not(:first-child){font-size:11px}.garden-manifesto li{font-size:11px}.partner-map{min-height:380px}.world-window{border-width:3px}.world-window--contact{border-width:2px}.page__hint{display:none}}
.garden-manifesto>.room-copy{font:12px/2.2 var(--px);color:#566451;margin:0 0 24px}
@media(max-width:600px){.hub .world{height:507px;margin-top:-27px}.studio-viewport{height:480px}.world-window--studio,.world-window--principles,.world-window--friends,.world-window--contact{border:0}.courtyard-crop{aspect-ratio:4/4.4}.courtyard-canvas{top:-18%}.garden-manifesto>.room-copy{font-size:11px}}
@media(prefers-reduced-motion:reduce){.hero-sprite b,.courtyard-motes i{animation:none!important}}
