/* Woodland Retreat: moss, fern, oak, flax and softly aged brass. */
.room[data-theme="woodland"] {
  --wood:#465639;--wood-light:#829165;--wood-dark:#263722;
  --wall:#85916b;--woodland-oak:#a17c4c;--woodland-flax:#e7ddbf;
  --woodland-scene:url('assets/woodland-panorama.png');
}
.room[data-theme="woodland"][data-style="illustrated"] {--woodland-scene:url('assets/woodland-panorama-illustrated-v2.png')}
.theme-preview[data-preview="woodland"] {background:url('assets/woodland-classic-realistic-v2.png') center/cover}
.theme-preview[data-preview="woodland"]>i {display:none}

/* Small illustrated rooms use the existing live, responsive room objects. */
.room[data-theme="woodland"][data-style="illustrated"][data-space="classic"] {
  background:radial-gradient(ellipse at 50% 24%,#e6e5bb66,transparent 55%),linear-gradient(90deg,#637656,#96a17a 44%,#88986b 70%,#536b49);
}
.room[data-theme="woodland"][data-style="illustrated"] .wallpaper-pattern {
  opacity:.38;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='120' viewBox='0 0 80 120'%3E%3Cg fill='none' stroke='%233e5938' stroke-width='1.4'%3E%3Cpath d='M39 113Q50 71 38 14M40 94Q19 91 16 74Q35 75 40 94M44 78Q63 70 65 54Q48 55 44 78M43 64Q25 59 23 43Q38 45 43 64M41 47Q58 38 56 26Q44 31 41 47M38 30Q27 23 33 10Q41 17 38 30'/%3E%3C/g%3E%3C/svg%3E");
  background-size:clamp(35px,5cqw,75px) clamp(50px,7cqw,110px);
}
.room[data-theme="woodland"][data-style="illustrated"] .ceiling-trim {
  background:linear-gradient(#594a32,#a58a59 32%,#ddc99b 60%,#786547);
}
.room[data-theme="woodland"][data-style="illustrated"] .bookcase {
  background:linear-gradient(90deg,#34442b,#526343 10%,#3a4d30 88%,#293b24);
  border-color:#997c4f;box-shadow:inset 0 0 0 2px #baa47566,4px 7px 14px #26351d55;
}
.room[data-theme="woodland"][data-style="illustrated"] .bookcase-crown {
  background:linear-gradient(#bba174,#85683e 30%,#4c5e3c 70%,#b29b6c);
}
.room[data-theme="woodland"][data-style="illustrated"] .shelf-row {
  background:linear-gradient(#20311fcc,#35482d99);border-bottom-color:#aa8753;
}
.room[data-theme="woodland"] .cabinet-base {border-color:#9c8254}
.room[data-theme="woodland"] .cabinet-base i {position:relative;background:linear-gradient(110deg,#4d6342,#344c2e);border-color:#a18c5f}
.room[data-theme="woodland"][data-space="classic"][data-style="illustrated"] .cabinet-base i:after {
  content:'';position:absolute;inset:15% 30%;opacity:.5;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 80'%3E%3Cpath d='M30 72V12M30 60Q7 57 10 43Q27 44 30 60M30 45Q53 40 50 27Q33 30 30 45M30 31Q12 26 19 14Q30 16 30 31M30 18Q22 7 30 2Q38 7 30 18' fill='none' stroke='%23d5c397' stroke-width='2'/%3E%3C/svg%3E") center/contain no-repeat;
}
.room[data-theme="woodland"] .room-rug {
  background:radial-gradient(ellipse,#d8d3aa 0 39%,#758553 40% 44%,#e2d7b5 45% 50%,#526b3c 51% 62%,#ddc99a 63% 66%,#435b32 67% 71%,transparent 72%);
}
.room[data-theme="woodland"][data-space="classic"][data-style="illustrated"] .room-rug:after {
  content:'';position:absolute;inset:8% 14%;border-radius:50%;opacity:.32;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='70' height='70'%3E%3Cpath d='M35 64Q45 40 30 8M38 50Q14 47 18 31Q34 33 38 50M36 35Q59 26 54 13Q37 17 36 35M31 21Q17 16 25 4Q34 10 31 21' fill='none' stroke='%23344e2c' stroke-width='2'/%3E%3C/svg%3E") center/12% 70% repeat;
}
.room[data-theme="woodland"] .chair-back {background:linear-gradient(90deg,#3c5434,#6d8350 50%,#3d5935);border-color:#4e673f}
.room[data-theme="woodland"] .chair-seat {background:linear-gradient(#879468,#4c653d)}
.room[data-theme="woodland"] .chair-arm {background:linear-gradient(90deg,#344b2f,#6c8352,#425b35)}
.room[data-theme="woodland"] .chair-pillow {background:#e8dfbf;border-color:#b4bc8c;color:#4f6840}
.room[data-theme="woodland"] .chair-throw {background:repeating-linear-gradient(45deg,#e7dfc6 0 9px,#83916c 10px 12px,#e7dfc6 13px 23px)}
.room[data-theme="woodland"] .window-curtain {
  background:repeating-linear-gradient(90deg,#c8c1a7 0 10%,#f0e8cf 18% 25%,#b1b592 38%,#e1d9bf 55%);
}
.room[data-theme="woodland"] .plant-pot {background:repeating-linear-gradient(90deg,transparent 0 7%,#79624433 8% 10%),linear-gradient(90deg,#a79470,#dcc8a3,#9e8661)}
.room[data-theme="woodland"] .hanging-vine {color:#476c35}
.room[data-theme="woodland"] .fireplace-body {background:linear-gradient(90deg,#a89d80,#ded5b7 30%,#d2c7aa 75%,#948b70)}
.room[data-theme="woodland"] .center-frame {background:#e8dfc5;border-color:#927848;color:#34452b}

/* The photographic layers share the same original object masks. */
.room[data-theme="woodland"][data-space="classic"][data-style="realistic"] .real-shell {
  background-image:url('assets/woodland-classic-shell.png');filter:none;
}
.room[data-theme="woodland"][data-space="classic"][data-style="realistic"] .real-shell:after {
  content:'';position:absolute;inset:0;
  background:url('assets/woodland-classic-realistic-v2.png') center/100% 100% no-repeat;
  mask:var(--woodland-room-mask,none) center/100% 100% no-repeat;mask-mode:luminance;
}
.room[data-theme="woodland"][data-space="classic"][data-style="realistic"] :is(.real-photo,.case-photo) {display:none!important}
.room[data-theme="woodland"][data-space="classic"][data-style="realistic"] .window-curtain {display:none!important}
.room[data-theme="woodland"][data-space="classic"][data-style="realistic"] .real-fire-motion {top:56.7%}
.room[data-theme="woodland"][data-style="realistic"] :is(.real-photo,.case-photo,.real-fire-motion) {
  background-image:url('assets/woodland-classic-realistic-v2.png');background-blend-mode:normal;filter:none;
}
.room[data-theme="woodland"][data-space="classic"][data-style="realistic"] .wallpaper-pattern {display:none}

/* Actual woodland scenery replaces the old meadow-atlas approximation. */
.room[data-theme="woodland"] .room-window[data-view="forest"] .window-sky {
  background:var(--woodland-scene) center 48%/cover no-repeat!important;filter:none;
}
.room[data-theme="woodland"] .room-window[data-view="forest"] .window-sky>:is(.moon,.mountain,.forest-trees,.window-stars),
.room[data-theme="woodland"] .room-window[data-view="forest"] .window-sky:after {display:none!important}
.woodland-window-motion {position:absolute;inset:0;pointer-events:none;overflow:hidden}
.woodland-canopy-light {position:absolute;inset:-8%;background:radial-gradient(ellipse at 28% 30%,#f5e8ab45,transparent 35%),radial-gradient(ellipse at 70% 55%,#d9dfa52c,transparent 40%);mix-blend-mode:screen;animation:woodland-canopy 12s ease-in-out infinite alternate}
.woodland-leaf {position:absolute;left:var(--leaf-x);top:-10%;width:clamp(3px,.5cqw,8px);height:clamp(5px,.8cqw,12px);border-radius:80% 0 80% 0;background:#a6b779;opacity:0;animation:woodland-leaf-fall var(--leaf-duration) linear var(--leaf-delay) infinite}
@keyframes woodland-canopy {from{opacity:.35;transform:translate(-1%,0)}to{opacity:.8;transform:translate(1%,2%)}}
@keyframes woodland-leaf-fall {0%,12%{opacity:0;transform:translate(0,-10px) rotate(0)}20%,70%{opacity:.65}90%,100%{opacity:0;transform:translate(35px,260px) rotate(220deg)}}

/* Medium room and its close-up retain the shared shelf planes. */
.immersive-space[data-theme="woodland"] {--focus-accent:#6c8450}
.immersive-space[data-theme="woodland"] .space-art,.immersive-space[data-theme="woodland"] .space-object {filter:none}
.immersive-space[data-theme="woodland"].shelf-focus-view {--focus-surface:#dce3d1;--focus-panel:#f5f4e9;--focus-ink:#35492d}
.immersive-space[data-theme="woodland"] .shelf-focus-frame {outline:3px solid #a08658;box-shadow:0 12px 28px #26351d33}

/* Every large-room window crops the same continuous forest plane. */
.room[data-theme="woodland"][data-space="grand"] .grand-backdrop {background-image:url('assets/woodland-grand-realistic.png')}
.room[data-theme="woodland"][data-space="grand"][data-style="illustrated"] .grand-backdrop {background-image:url('assets/woodland-grand-illustrated.png')}
.room[data-theme="woodland"][data-space="grand"] .grand-backdrop:after,
.room[data-theme="woodland"][data-space="grand"] .grand-portrait {display:none}
.room[data-theme="woodland"][data-space="grand"] .grand-connected-window .window-sky {background:transparent!important}
.room[data-theme="woodland"][data-space="grand"] .grand-connected-window .window-sky>.woodland-window-motion {display:none}
.room[data-theme="woodland"][data-space="grand"] .grand-floor-light {background:linear-gradient(125deg,transparent 15%,#edf0bf38 30%,transparent 44%,#d9e2ac20 65%,transparent 85%)}
.room[data-theme="woodland"][data-space="grand"] #realFireMotion {background-image:none}
/* Measured glass panes reveal the scene through the artwork's own frames.
   The transparent mullions, gallery rail and planter retain their original art. */
.room[data-theme="woodland"][data-space="grand"] :is(#roomWindow,.grand-window) {
  left:var(--grand-window-x)!important;top:var(--grand-window-y)!important;
  width:var(--grand-window-width)!important;height:var(--grand-window-height)!important;
  padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:hidden;
}
.room[data-theme="woodland"][data-space="grand"] .room-window .window-sky {
  inset:0;border-radius:0;box-shadow:none;
  mask-image:var(--grand-window-mask);mask-size:100% 100%;mask-repeat:no-repeat;mask-mode:alpha;
}
.room[data-theme="woodland"][data-space="grand"] .room-window :is(.window-frame,.window-cross,.window-sill,.window-curtain) {display:none!important}
@media(prefers-reduced-motion:reduce) {
  .woodland-canopy-light {animation:none;opacity:.45}
  .woodland-leaf {animation:none;display:none}
}
/* Night artwork removes the sunlight painted into the original room floors. */
.room[data-theme="woodland"][data-time-of-day="night"]{--woodland-scene:url('assets/woodland-panorama-night.png')}
.room[data-theme="woodland"][data-time-of-day="night"][data-style="illustrated"]{--woodland-scene:url('assets/woodland-panorama-illustrated-v2-night.png')}
.room[data-theme="woodland"][data-time-of-day="night"][data-space="classic"][data-style="realistic"] .real-shell{background-image:url('assets/woodland-classic-shell-night.png')}
.room[data-theme="woodland"][data-time-of-day="night"][data-space="classic"][data-style="realistic"] .real-shell:after{background-image:url('assets/woodland-classic-realistic-v2-night.png')}
.room[data-theme="woodland"][data-time-of-day="night"][data-space="classic"][data-style="realistic"] .real-fire-motion{background-image:url('assets/woodland-classic-realistic-v2-night.png')}
.immersive-space[data-theme="woodland"][data-time-of-day="night"]{--scene:url('assets/woodland-immersive-realistic-night.png')!important;--shell:url('assets/woodland-immersive-realistic-shell-night.png')!important}
.immersive-space[data-theme="woodland"][data-time-of-day="night"][data-style="illustrated"]{--scene:url('assets/woodland-immersive-illustrated-night.png')!important;--shell:url('assets/woodland-immersive-illustrated-shell-night.png')!important}
.immersive-space[data-theme="woodland"][data-time-of-day="night"]>.space-art:after{content:'';position:absolute;inset:0;background:var(--scene) center/100% 100% no-repeat;mask:var(--woodland-space-mask,none) center/100% 100% no-repeat;mask-mode:luminance}
.immersive-space[data-theme="woodland"][data-time-of-day="night"]>.space-object{background-image:none}
.room[data-theme="woodland"][data-time-of-day="night"][data-space="grand"] .grand-backdrop{background-image:url('assets/woodland-grand-realistic-night.png')}
.room[data-theme="woodland"][data-time-of-day="night"][data-space="grand"][data-style="illustrated"] .grand-backdrop{background-image:url('assets/woodland-grand-illustrated-night.png')}
.room[data-theme="woodland"][data-time-of-day="night"] :is(.woodland-canopy-light,.grand-floor-light){display:none}
.room[data-theme="woodland"][data-time-of-day="night"] .woodland-leaf{background:#74886b;filter:brightness(.7)}
.woodland-reading-lamp{display:none}
.room[data-theme="woodland"][data-time-of-day="night"][data-space="classic"][data-style="illustrated"]{background:radial-gradient(ellipse at 83% 57%,#c99a5d40,transparent 35%),linear-gradient(90deg,#26372c,#435342 45%,#354635 75%,#213229)}
.room[data-theme="woodland"][data-time-of-day="night"][data-space="classic"][data-style="illustrated"] .room-floor{filter:brightness(.48);box-shadow:none}
.room[data-theme="woodland"][data-time-of-day="night"][data-space="classic"][data-style="illustrated"] :is(.room-rug,.bookcase,.ceiling-trim,.wallpaper-pattern){filter:brightness(.7)}
.room[data-theme="woodland"][data-time-of-day="night"][data-space="classic"][data-style="illustrated"] .woodland-reading-lamp{display:block;position:absolute;right:3%;top:51%;width:6%;height:29%;z-index:4;background:linear-gradient(90deg,#70512c,#ddbd79,#70512c) center/8% 100% no-repeat;pointer-events:none}
.woodland-reading-lamp:before{content:'';position:absolute;inset:0 0 65%;background:repeating-linear-gradient(90deg,#d9b675 0 8%,#f6e2ac 9% 15%);clip-path:polygon(22% 0,78% 0,100% 100%,0 100%)}
.woodland-reading-lamp:after{content:'';position:absolute;bottom:0;left:15%;width:70%;height:5%;border-radius:50%;background:#b18b4b}
.woodland-reading-lamp i{position:absolute;inset:-50% -140%;background:radial-gradient(ellipse at 50% 35%,#ffcc7540,transparent 65%);z-index:-1}
.immersive-space[data-theme="woodland"][data-time-of-day="night"].shelf-focus-view{--focus-surface:#24312a;--focus-panel:#344337;--focus-ink:#e4dfc9}
.immersive-space[data-theme="woodland"][data-time-of-day="night"] .shelf-focus-source{filter:brightness(.7)}
/* Keep seasonal scenery behind a woodland frame without resizing the scene. */
:root #appShell #room[data-theme="woodland"][data-space="classic"][data-style="realistic"] #roomWindow:has(.season-scenery)>.window-sky{
  isolation:isolate;z-index:0;overflow:hidden!important;
}
:root #appShell #room[data-theme="woodland"][data-space="classic"][data-style="realistic"] #roomWindow:has(.season-scenery)>.window-frame{
  display:block!important;position:absolute;inset:0;z-index:4;
  border:6px solid #514b35!important;border-radius:inherit;
  box-shadow:inset 0 0 0 2px #a99d72,0 0 0 1px #c2b28b!important;
  pointer-events:none;
}
:root #appShell #room[data-theme="woodland"][data-space="classic"][data-style="realistic"] #roomWindow:has(.season-scenery)>.window-cross{
  display:block!important;z-index:3;pointer-events:none;
}
