
/* A composed room on a light page, with independent furniture and native lettering. */
body.rain-room-page{background:#fbfaf7}
#top.site-header{position:relative;inset:auto;width:min(1320px,calc(100% - 72px));height:96px;margin:0 auto;padding:12px 0;max-width:none;display:flex;align-items:center;pointer-events:none}
#top .maker-brand{width:72px;height:72px;color:#26313a;pointer-events:auto}
#top .maker-brand:hover{color:#59645c}
#top .signature-star-motion{transform-origin:75.2% 77%}
#record.framed-room{position:relative;width:min(1320px,calc(100% - 72px));height:clamp(580px,calc(100svh - 154px),760px);min-height:0;margin:0 auto 86px;padding:0;border:1px solid #b7a58c;border-radius:28px;overflow:visible;isolation:isolate;background:#281a12;box-shadow:0 20px 45px #493e2b26,0 1px 0 #fff inset}
#record.framed-room .room-scene{inset:0;z-index:-2;border-radius:inherit;overflow:hidden}
#record.framed-room .room-picture,#record.framed-room .room-image{position:absolute;inset:0;width:100%;height:100%;display:block}
#record.framed-room .room-image{object-fit:fill;object-position:center}
#record.framed-room .room-scene::after{background:linear-gradient(180deg,#17130c3d,transparent 32%,transparent 84%,#21180d33)}
#record.framed-room .room-foreground{position:absolute;inset:0;z-index:3;overflow:hidden;border-radius:inherit;pointer-events:none}
#record.framed-room .host-seated{position:absolute;left:2%;bottom:3%;width:42%;height:auto;max-width:none;filter:drop-shadow(0 13px 9px #120b084d);pointer-events:none}
#record.framed-room .guest-invitation{position:absolute;right:2%;bottom:2%;width:31%;aspect-ratio:4/5;display:block;pointer-events:auto;text-decoration:none;outline-offset:7px}
#record.framed-room .guest-chair-art{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 15px 10px #130c0959);transition:transform .3s}
#record.framed-room .guest-invitation:hover .guest-chair-art{transform:translateY(-3px)}
#record.framed-room .seat-talk-button{position:absolute;left:50%;bottom:1%;transform:translateX(-50%);width:248px;max-width:calc(100% + 28px);min-height:56px;display:flex;align-items:center;justify-content:center;gap:12px;padding:11px 17px;border:1px solid #fff0c394;border-radius:99px;background:linear-gradient(130deg,#f8e9c8,#d4b67b);box-shadow:0 1px 0 #fff6e0 inset,0 8px 18px #21130a59;color:#3b3022;white-space:nowrap;font:italic 17px/1.3 Georgia,serif;overflow:hidden}
#record .seat-talk-button>svg,#record .seat-talk-button>b{position:relative;z-index:2}
#record .seat-talk-button>b{font-weight:400}
#record .seat-cup{width:28px;height:30px;flex:0 0 auto;color:#94703d}
#record .seat-arrow{width:18px;height:18px;flex:0 0 auto}
#record .seat-gleam{position:absolute;inset:-70% -80%;background:linear-gradient(110deg,transparent 43%,#fffbe0bb 50%,transparent 57%);animation:rain-seat-shine 8s ease-in-out infinite;pointer-events:none}
#record .guest-invitation:focus-visible{outline:3px solid #ffdf9c;border-radius:22px}
#record.framed-room .hero-copy{left:46%;top:6%;width:min(430px,36%);transform:translateX(-50%);padding:0;text-align:center;z-index:6}
#record.framed-room .hero-copy .eyebrow{font:italic 20px/1.5 Georgia,serif;letter-spacing:-.015em;margin:0 0 10px;color:#ead8b4;text-transform:none}
#record.framed-room h1{width:100%;max-width:none;margin:0 0 12px;font-size:0}
#record.framed-room .wordmark-button{display:block;position:relative;width:100%;padding:0 0 15px;color:#f6e9ce;animation:rain-wordmark-breathe 11s ease-in-out infinite;transform-origin:50% 60%}
#record.framed-room .name-reveal{display:block;position:relative;clip-path:none!important;transform:none!important}
#record.framed-room .is-creating .name-reveal{animation:none!important}
#record.framed-room .wordmark-clean{width:100%;height:auto;display:block;overflow:visible;color:#f6e9ce;filter:drop-shadow(0 1px 2px #1d100b33)}
#record.framed-room .name-idle-shine{mask-image:url('patrick-clean-wordmark.svg');-webkit-mask-image:url('patrick-clean-wordmark.svg')}
#record.framed-room .name-ink{position:absolute;left:1%;bottom:0;width:98%;height:14px;color:#d9b565;filter:drop-shadow(0 1px 1px #321e0d66)}
#record.framed-room .name-ink path{stroke-dasharray:1;stroke-dashoffset:0}
#record.framed-room .name-burst{display:none}
#record.framed-room .is-creating .wordmark-letter:not(.letter-p){animation:rain-letter-arrive .42s cubic-bezier(.2,.8,.3,1) both}
#record.framed-room .is-creating .letter-a{animation-delay:.3s}
#record.framed-room .is-creating .letter-t{animation-delay:.48s}
#record.framed-room .is-creating .letter-r{animation-delay:.66s}
#record.framed-room .is-creating .letter-i{animation-delay:.84s}
#record.framed-room .is-creating .letter-c{animation-delay:1.02s}
#record.framed-room .is-creating .letter-k{animation-delay:1.2s}
#record.framed-room .is-creating .letter-p{transform-box:view-box;transform-origin:10% 70%;animation:rain-p-nod .9s ease both}
#record.framed-room .is-creating .wordmark-star-group{transform-box:view-box;transform-origin:62.8% 22.7%;animation:rain-star-hop 1.8s cubic-bezier(.2,.7,.3,1) both}
#record.framed-room .is-creating .name-ink path{animation:rain-line-draw .7s ease 1.65s both}
#record.framed-room .hero-intro{font-size:13px;line-height:1.75;letter-spacing:.005em;max-width:340px;margin:0 auto;color:#f0dfc2;text-shadow:0 1px 8px #201209}
#record.framed-room .room-controls{position:absolute;left:0;bottom:-59px;gap:24px;color:#5b5140}
#record.framed-room .room-controls button{color:#5b5140;font-size:11px;min-height:44px;letter-spacing:0}
#record.framed-room .room-controls button:focus-visible,#record.framed-room .room-workbench:focus-visible{outline-color:#806035}
#record.framed-room .room-workbench{left:auto;right:0;bottom:-57px;color:#5b5140;font-size:11px;border-color:#baa47680;min-height:44px;gap:14px}
#record.framed-room .room-workbench span{color:#8b6a37;margin-left:12px}
#services.composed-gallery{margin-top:0}
#record .room-weather{position:absolute;z-index:3;pointer-events:none;overflow:hidden;border-radius:2px;mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent)}
#record .window-rain{position:absolute;inset:0;overflow:hidden}
#record .rain-streak{position:absolute;top:-20%;left:5%;width:1px;height:16%;background:linear-gradient(transparent,#bdd7e4a6,transparent);opacity:.55;animation:rain-window-fall 1.8s linear infinite}
#record .rain-streak:nth-child(3n){height:11%;animation-duration:2.4s}
#record .rain-streak:nth-child(2n){animation-delay:-1s;opacity:.38}
#record .rain-streak:nth-child(1){left:4%}#record .rain-streak:nth-child(2){left:12%}#record .rain-streak:nth-child(3){left:21%}#record .rain-streak:nth-child(4){left:29%}#record .rain-streak:nth-child(5){left:38%}#record .rain-streak:nth-child(6){left:46%}#record .rain-streak:nth-child(7){left:54%}#record .rain-streak:nth-child(8){left:63%}#record .rain-streak:nth-child(9){left:71%}#record .rain-streak:nth-child(10){left:79%}#record .rain-streak:nth-child(11){left:87%}#record .rain-streak:nth-child(12){left:95%}
#record .window-flash{position:absolute;inset:0;background:radial-gradient(ellipse at 60% 20%,#eff9ff,#b9d8ed);opacity:0}
#record .room-weather.is-lightning .window-flash{animation:rain-window-flash .7s ease-out both}
#record .window-flash::after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 24px #fff9}
#services.composed-gallery .guru-panel .project-art{background:#342b30}
#services.composed-gallery .guru-panel .project-art>.guru-desk-background{opacity:1;filter:none;object-position:center}
#services.composed-gallery .guru-panel .project-art::after{background:linear-gradient(transparent,#201e2ee8 70%,#171e2a)}
#evidence .identity-outbreak img{width:100%;max-width:none;animation:none;filter:none}
#evidence .world-ozomb-live-logo{display:block;position:relative;width:100%;max-width:320px;aspect-ratio:800/267;animation:gilded-outbreak-brand 10s ease-in-out infinite}
#evidence .ozomb-search-eye{position:absolute;left:10.3%;top:40%;width:6.7%;aspect-ratio:1;border-radius:50%;overflow:hidden;background:radial-gradient(ellipse at 44% 36%,#e3dbc7,#b7b2a2 47%,#736458 77%,#392e28);box-shadow:inset 0 0 3px #351c15}
#evidence .ozomb-eye-veins{position:absolute;inset:0;width:100%;height:100%;stroke:#862f24;stroke-width:2;fill:none;opacity:.58}
#evidence .ozomb-search-iris{position:absolute;z-index:2;left:50%;top:50%;width:47%;height:47%;border-radius:50%;background:radial-gradient(circle,#140b07 0 27%,#522b12 29%,#a25324 48%,#bc9a4f 66%,#28251b 76%);transform:translate(-50%,-50%) translate(var(--look-x,0px),var(--look-y,0px));box-shadow:0 0 1px #17110e;transition:transform .22s cubic-bezier(.2,.8,.3,1)}
#evidence .ozomb-search-iris::after{content:"";position:absolute;left:26%;top:14%;width:18%;height:18%;background:#fff9d7c9;border-radius:50%}
#evidence .identity-noir figcaption{margin:0;font:italic 34px/1.08 Georgia,serif;color:#efd6a9}
#evidence .identity-noir figcaption span{display:block;font:11px/1.5 'DM Sans',Arial,sans-serif;text-transform:uppercase;letter-spacing:.09em;margin-bottom:10px;color:#e4c89d}
#evidence .world-cast{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden;opacity:0;visibility:hidden;transition:opacity .6s,visibility .6s}
#evidence[data-world-scene="outbreak"] .cast-outbreak,#evidence[data-world-scene="noir"] .cast-noir{opacity:1;visibility:visible}
#evidence .world-walker{position:absolute;left:0;top:145px;width:430px;height:645px;opacity:.48;filter:brightness(.82) saturate(.65);animation:rain-zombie-cross 52s linear infinite;animation-delay:-14s}
#evidence .zombie-rig{width:100%;height:100%;overflow:visible;animation:rain-zombie-bob 2.8s ease-in-out infinite}
#evidence .zombie-part{transform-box:view-box}
#evidence .zombie-arm-left{transform-origin:35% 23%;animation:rain-z-arm-left 2.8s ease-in-out infinite}
#evidence .zombie-arm-right{transform-origin:69% 23%;animation:rain-z-arm-right 2.8s ease-in-out infinite}
#evidence .zombie-leg-left{transform-origin:45% 51%;animation:rain-z-leg-left 2.8s ease-in-out infinite}
#evidence .zombie-leg-right{transform-origin:62% 51%;animation:rain-z-leg-right 2.8s ease-in-out infinite}
#evidence .world-dancers{position:absolute;right:7%;bottom:2%;height:820px;width:656px;max-width:none;object-fit:contain;opacity:.46;filter:drop-shadow(0 10px 18px #0a030b55);transform-origin:50% 94%;animation:rain-stage-dance 14s ease-in-out infinite}
#evidence[data-world-scene="outbreak"] .cast-noir .ambient-motion,#evidence[data-world-scene="noir"] .cast-outbreak .ambient-motion{animation-play-state:paused!important}
#evidence.composed-worlds .evidence-foot{justify-content:flex-end}
#evidence.composed-worlds .evidence-foot [data-evidence-status]{position:absolute!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap}
#idea .patrick-flight .sky-patrick{width:330px}
@keyframes rain-seat-shine{0%,62%{transform:translateX(-48%)}84%,100%{transform:translateX(48%)}}
@keyframes rain-wordmark-breathe{0%,72%,100%{scale:1}82%{scale:1.018}92%{scale:1}}
@keyframes rain-letter-arrive{from{opacity:0;transform:translateY(14px)}70%{opacity:1;transform:translateY(-3px)}to{opacity:1;transform:none}}
@keyframes rain-p-nod{0%,100%{transform:none}38%{transform:rotate(-2deg) scale(1.025)}70%{transform:rotate(.6deg)}}
@keyframes rain-star-hop{0%,15%{transform:translate(-640px,210px) scale(.72)}48%{transform:translate(-230px,-6px) scale(1.12)}78%,100%{transform:none}}
@keyframes rain-line-draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes rain-window-fall{to{translate:3px 800%}}
@keyframes rain-window-flash{0%{opacity:0}12%{opacity:.24}38%{opacity:.14}100%{opacity:0}}
@keyframes rain-zombie-cross{0%{transform:translateX(calc(100vw - 160px));opacity:0}8%,90%{opacity:.48}100%{transform:translateX(-430px);opacity:0}}
@keyframes rain-zombie-bob{0%,50%,100%{translate:0 0}25%,75%{translate:0 5px}}
@keyframes rain-z-arm-left{0%,100%{transform:rotate(-9deg)}50%{transform:rotate(6deg)}}
@keyframes rain-z-arm-right{0%,100%{transform:rotate(5deg)}50%{transform:rotate(-8deg)}}
@keyframes rain-z-leg-left{0%,100%{transform:rotate(3deg)}50%{transform:rotate(-4deg)}}
@keyframes rain-z-leg-right{0%,100%{transform:rotate(-3deg)}50%{transform:rotate(4deg)}}
@keyframes rain-stage-dance{0%,100%{transform:translateX(-10px) rotate(-1.8deg)}50%{transform:translateX(10px) rotate(1.8deg)}}
body:not(.hearth-in-view) #record :is(.rain-streak,.seat-gleam,.wordmark-button),.fire-paused #record :is(.rain-streak,.seat-gleam,.wordmark-button),.page-hidden #record :is(.rain-streak,.seat-gleam,.wordmark-button){animation-play-state:paused!important}
@media(min-width:701px) and (max-width:1100px){
#record.framed-room .hero-copy{width:36%;top:6%}
#record.framed-room .hero-copy .eyebrow{font-size:18px}
#record.framed-room .hero-intro{font-size:11px}
#record.framed-room .seat-talk-button{width:218px;font-size:15px;gap:9px;padding-inline:13px;min-height:53px}
#record .seat-cup{width:24px}
}
@media(max-width:700px){
#top.site-header{width:calc(100% - 28px);height:82px;padding:10px 0}
#top .maker-brand{width:60px;height:60px}
#record.framed-room{width:calc(100% - 28px);height:clamp(650px,calc(100svh - 108px),780px);margin-bottom:78px;border-radius:22px}
#record.framed-room .hero-copy{top:5%;left:50%;width:86%}
#record.framed-room .hero-copy .eyebrow{font-size:18px;margin-bottom:10px}
#record.framed-room h1{margin-bottom:13px}
#record.framed-room .hero-intro{font-size:12px;line-height:1.75}
#record.framed-room .host-seated{width:72%;left:-5%;bottom:8%}
#record.framed-room .guest-invitation{width:44%;right:1%;bottom:3%}
#record.framed-room .seat-talk-button{left:38%;width:184px;max-width:none;min-height:49px;font-size:13px;padding:10px 12px;gap:8px;bottom:0}
#record .seat-cup{width:22px;height:25px}
#record .seat-arrow{width:14px;height:14px}
#record.framed-room .room-controls{bottom:-55px;gap:15px}
#record.framed-room .room-controls button{font-size:9px;min-height:44px}
#record.framed-room .room-workbench{bottom:-54px;font-size:9px;gap:7px}
#record.framed-room .room-workbench span{margin-left:6px}
#services.composed-gallery{margin-top:0}
#evidence .world-ozomb-live-logo{width:122%;max-width:none}
#evidence .world-ozomb-live-logo img{width:100%}
#evidence .identity-noir figcaption{font-size:26px}
#evidence .identity-noir figcaption span{font-size:9px;letter-spacing:.03em;margin-bottom:7px}
#evidence .world-walker{top:170px;width:350px;height:525px;animation-duration:46s}
#evidence .world-dancers{height:600px;width:480px;right:calc(50% - 240px);bottom:auto;top:13%;opacity:.43}
#idea .patrick-flight .sky-patrick{width:180px}
}
@media(max-width:380px){
#record.framed-room .hero-copy .eyebrow{font-size:16px}
#record.framed-room .hero-intro{font-size:11px}
#record.framed-room .seat-talk-button{width:164px;font-size:12px;gap:7px;min-height:46px;padding-inline:10px}
#record .seat-cup{width:20px;height:24px}
#record.framed-room .room-controls button,#record.framed-room .room-workbench{font-size:8px}
#evidence .identity-noir figcaption{font-size:24px}
#evidence .world-dancers{height:565px;width:452px;right:calc(50% - 226px)}
}
@media(prefers-reduced-motion:reduce){
#record.framed-room :is(.wordmark-button,.wordmark-letter,.wordmark-star-group,.name-ink path,.seat-gleam,.rain-streak),#evidence :is(.world-walker,.zombie-rig,.zombie-part,.world-dancers,.world-ozomb-live-logo){animation:none!important;transform:none!important}
#record.framed-room .wordmark-letter{opacity:1!important}
#record.framed-room .name-ink path{stroke-dashoffset:0!important}
#record .room-weather .window-flash{display:none}
#record .guest-chair-art,#evidence .ozomb-search-iris{transition:none!important}
#evidence .ozomb-search-iris{--look-x:0px!important;--look-y:0px!important}
#evidence .world-walker{display:none}
}
@media print{#top.site-header{height:auto}#record.framed-room{width:100%;height:550px;margin:0;border:0;box-shadow:none}#record .room-weather,#record .room-controls,#record .room-workbench,#evidence .world-cast{display:none}#record.framed-room .hero-copy{color:black}}

/* Keep the sound label readable on the new light control row. */
#record.framed-room .sound-toggle,#record.framed-room .sound-toggle span,#record.framed-room .sound-toggle svg{color:#5b5140!important}
#record.framed-room .name-ink{height:18px}
#record.framed-room .name-ink path{stroke-width:10}
#record.framed-room .is-creating .name-idle-shine{opacity:0!important;animation-play-state:paused!important}

/* Stable room proportions as browser bars and keyboard height change. */
#record.framed-room{height:clamp(560px,46vw,760px)}
@media(max-width:700px){#record.framed-room{height:clamp(650px,190vw,780px)}}
