:root{--ink:#332c32;--plum:#493a56;--gold:#c6a36a;--cream:#f8f2e7;--deep:#272034}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#eae0d3;color:var(--ink);font:17px/1.55 Georgia,'Times New Roman',serif}a{color:#542f55}a:focus-visible,button:focus-visible{outline:4px solid #e8bc60;outline-offset:4px}.skip{position:absolute;top:-100px;left:12px;background:white;padding:10px;z-index:30}.skip:focus{top:12px}.mast{max-width:1180px;margin:auto;padding:18px 30px 0}.preview{font:700 11px/1.4 system-ui,sans-serif;letter-spacing:.12em;color:#735e69}.mast-row{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:10px 0 15px;border-bottom:1px solid #bcae9d}.brand{font-size:clamp(24px,3vw,37px);letter-spacing:.02em}.brand em{font-weight:normal;color:#6e4863}.mast nav{display:flex;flex-wrap:wrap;gap:8px 20px;font:600 13px system-ui,sans-serif}main{max-width:1180px;margin:auto;padding:0 28px}.intro{text-align:center;padding:24px 8px 22px;max-width:850px;margin:auto}.eyebrow{font:700 11px system-ui,sans-serif;letter-spacing:.21em;color:#795f67}.intro h1{font-size:clamp(37px,5vw,64px);line-height:1.1;margin:4px 0 10px;font-weight:normal}.intro p{margin:8px 0}.intro .fine{font-size:14px;color:#675966}.hall{position:relative;overflow:hidden;min-height:565px;border:9px solid #3b2c3a;border-bottom-width:20px;border-radius:110px 110px 7px 7px;background:repeating-linear-gradient(90deg,transparent 0 78px,rgba(255,255,255,.045) 78px 80px),linear-gradient(180deg,#54415a 0%,#77636e 19%,#8f7877 81%,#6f5355 82%,#5c424b 100%);box-shadow:inset 0 0 0 4px #ad896e,0 12px 26px #3f303333}.hall:before{content:"";position:absolute;top:38px;left:0;right:0;border-top:2px solid #ab8d75;box-shadow:0 7px #4b354d}.hall:after{content:"";position:absolute;bottom:4px;left:0;right:0;height:86px;background:repeating-linear-gradient(90deg,#46343b 0 95px,#513c43 96px 99px);transform-origin:bottom;clip-path:polygon(0 22%,100% 22%,100% 100%,0 100%)}.ceiling{position:absolute;top:7px;left:19%;right:19%;display:flex;align-items:center;gap:20px;color:#d9b77f;font-size:19px}.beam{height:1px;background:#b59b83;flex:1}.wall-decoration{position:absolute;top:100px;width:95px;height:130px;padding:8px;background:#a17f59;border:6px ridge #d0ab70;box-shadow:5px 7px 0 #3e303542;transform:rotate(-5deg)}.left-picture{left:5%}.right-picture{right:5%;transform:rotate(4deg)}.picture-inner{height:100%;background:#292a40;color:#eacaa1;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:30px;text-align:center}.picture-inner small{font:9px/1.4 Georgia,serif;letter-spacing:.1em;color:#cabfb1}.window{position:absolute;top:80px;left:50%;transform:translateX(-50%);width:130px;height:156px;border:12px solid #594049;border-radius:70px 70px 6px 6px;background:linear-gradient(150deg,#171e31,#344863 60%,#907c75);box-shadow:inset 0 0 0 5px #bd9a78,0 8px 0 #51404a}.moon{position:absolute;top:28px;left:26px;background:#efe2b4;border-radius:50%;height:33px;width:33px;box-shadow:0 0 24px #f0d0a766}.window-rail{position:absolute;left:50%;top:0;bottom:0;border-left:5px solid #765663}.window-rail.horizontal{top:50%;bottom:auto;left:0;right:0;border-left:0;border-top:5px solid #765663}.window-caption{position:absolute;bottom:-29px;left:-30px;right:-30px;text-align:center;color:#f2dfbf;font-style:italic;font-size:12px}.hallway-doors{position:relative;z-index:5;display:flex;justify-content:center;align-items:flex-end;gap:clamp(14px,4vw,55px);padding:228px 12% 90px}.door{position:relative;flex:1;max-width:210px;min-width:0;min-height:259px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;text-align:center;text-decoration:none;color:#fff0d3;border:10px solid #39262f;border-bottom-width:4px;border-radius:7px 7px 0 0;box-shadow:inset 0 0 0 3px #bca184,9px 9px 0 #291e2870;background:#4e625c;transition:transform .2s,filter .2s}.door:hover,.door:focus-visible{transform:translateY(-10px);filter:brightness(1.12)}.door-library{background:repeating-linear-gradient(90deg,#3d5c5c,#3d5c5c 25px,#45665f 26px,#45665f 50px);min-height:286px}.door-bureau{background:#5a6b58;min-height:265px}.door-letters{background:#654758;min-height:274px}.door-header{font:700 clamp(8px,1vw,11px)/1.3 system-ui,sans-serif;letter-spacing:.06em;color:#f0d1a9;padding:11px 6px 7px}.door-panel{border:2px solid #c8aa81;outline:1px solid #332a2f;outline-offset:5px;margin:5px 16px 0;flex:1;width:calc(100% - 42px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;min-height:132px}.symbol{font-size:clamp(28px,3.2vw,40px);line-height:1}.door-label{font:bold clamp(11px,1.45vw,16px)/1.4 Georgia,serif;letter-spacing:.06em;text-shadow:1px 1px #302635}.knob{width:12px;height:12px;border-radius:50%;background:#eac077;box-shadow:0 0 0 3px #70583c;align-self:flex-end;margin:12px 13px 8px 0}.threshold{position:absolute;bottom:-34px;color:#f3ddba;font:700 clamp(9px,1vw,11px)/1.3 system-ui,sans-serif;letter-spacing:.06em;white-space:nowrap}.side-table{position:absolute;bottom:71px;right:2%;width:80px;height:165px;z-index:7}.tabletop{height:12px;background:#412b32;border-radius:50%;margin-top:55px}.tableleg{background:#32232b;width:8px;height:85px;margin:auto}.lamp{position:absolute;top:0;left:28px}.lampshade{display:block;width:45px;height:38px;background:#e1b87b;clip-path:polygon(30% 0,70% 0,100% 100%,0 100%);box-shadow:0 0 10px #d4bd81}.lampstand{display:block;background:#b89a6b;width:6px;height:22px;margin:auto}.rug{position:absolute;bottom:5px;left:12%;width:76%;height:65px;z-index:4;border-radius:50%;background:radial-gradient(ellipse,#936a6c 20%,#bf9b71 22% 33%,#603f58 34% 61%,#c5a277 63% 69%,#6a4a50 70%)}.goose{position:absolute;bottom:42px;left:4%;z-index:11;background:#f2e9d2;color:#372c3a;padding:8px 10px;border:2px solid #ad936b;border-radius:50% 50% 5px 5px;font:11px/1.2 system-ui,sans-serif;cursor:pointer;max-width:85px;box-shadow:0 3px 0 #433341}.goose span{display:block;font-size:22px}.goose-text{font-size:10px}#goose-reply{position:absolute;bottom:105px;left:2%;color:#fff3cc;font:bold 21px Georgia,serif;z-index:12;transform:rotate(-7deg)}.honk{animation:pop .35s}@keyframes pop{from{transform:rotate(-7deg) scale(.4)}to{transform:rotate(-7deg) scale(1)}}.below{display:grid;grid-template-columns:1.6fr 1fr;gap:50px;padding:35px 15px 30px}.below h2{font-size:24px;font-weight:normal;margin:0 0 8px}.below p{margin-top:0}.below aside{padding-left:20px;border-left:2px solid #c3af9c}.below aside h2{font-size:21px}footer{max-width:1180px;margin:auto;padding:14px 28px 40px;border-top:1px solid #bcab9a;color:#655962;font-size:13px}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:740px){.mast,main{padding-left:12px;padding-right:12px}.mast-row{align-items:flex-start;flex-direction:column;gap:2px}.intro{padding-top:20px}.hall{min-height:750px;border-radius:65px 65px 5px 5px}.hallway-doors{padding:220px 8% 86px;display:grid;grid-template-columns:1fr 1fr;gap:48px 15px;justify-items:center}.door{width:100%;min-height:196px!important;max-width:190px}.door-letters{grid-column:1/-1;max-width:190px}.door-header{font-size:9px}.door-label{font-size:13px}.door-panel{min-height:100px}.threshold{font-size:8px}.window{top:65px;transform:translateX(-50%) scale(.83)}.wall-decoration{width:60px;height:80px;top:93px}.picture-inner small{font-size:6px}.side-table{display:none}.rug{height:80px;bottom:0}.goose{left:3%;bottom:21px}.below{grid-template-columns:1fr;gap:10px;padding:24px 12px}.below aside{padding-left:15px}footer{padding-left:14px;padding-right:14px}}@media(max-width:390px){.hallway-doors{padding-left:5%;padding-right:5%}.door{border-width:7px}.door-panel{margin-left:12px;margin-right:12px;width:calc(100% - 30px)}.door-label{font-size:11px}.hall{min-height:745px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.door{transition:none}.honk{animation:none}}

/* v0.2 shared-hall fixes: keep individual rooms' design independent. */
.hall-mail{position:absolute;z-index:12;right:2.5%;bottom:30px;display:block;max-width:125px;padding:10px 8px;border:3px ridge #c9ae79;background:#42343f;color:#ffedba;text-decoration:none;text-align:center;font:700 11px/1.4 system-ui,sans-serif;transform:rotate(3deg)}
.hall-mail small{display:block;font-weight:400;font-size:9px}
.hall-mail:hover,.hall-mail:focus-visible{background:#695069;color:white}
@media(max-width:740px){.picture-inner small{display:none}.hallway-doors{padding-top:180px;padding-bottom:142px}.hall{min-height:775px}.goose{left:2%;bottom:14px;max-width:72px;padding:6px}.hall-mail{right:2%;bottom:12px;max-width:88px;font-size:9px}.hall-mail small{font-size:8px}}
@media(max-width:390px){.hall{min-height:770px}.hallway-doors{padding-bottom:155px}.goose{bottom:10px}.hall-mail{bottom:10px}}

/* v1.1: house coffee tin; the donation is entirely optional. */
.coffee-tin{position:absolute;left:14%;bottom:28px;z-index:12;display:flex;align-items:center;gap:5px;max-width:145px;padding:8px 10px;border:3px ridge #c9ae79;border-radius:7px;background:#42343f;color:#ffedba;text-decoration:none;font:700 10px/1.3 system-ui,sans-serif;transform:rotate(-3deg)}
.coffee-tin small{display:block;font-size:9px;font-weight:400}.coffee-tin .coffee-cup{font-size:24px}.coffee-tin:hover,.coffee-tin:focus-visible{background:#695069;color:white}
@media(max-width:740px){.window-caption{display:none}.coffee-tin{bottom:12px;left:22%;max-width:105px;padding:5px 6px;font-size:9px}.coffee-tin small{font-size:8px}.coffee-tin .coffee-cup{font-size:17px}}
@media(max-width:390px){.coffee-tin{left:25%;max-width:92px;gap:2px}.coffee-tin .coffee-cup{font-size:15px}}
