/* Four little places, each with its own silhouette, object and way to explore. */
#room{border:0;background:none;width:400px;max-height:75svh;box-shadow:none;isolation:isolate;overflow:visible}
#room::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none}

#room .room-body{padding:0;scrollbar-width:thin;scrollbar-color:#8db7c4 transparent;overflow:auto;overscroll-behavior:contain;min-height:0}
#room h2{font:20px/1.35 var(--pixel);margin:8px 0 10px;letter-spacing:-.6px}
#room h3{font:700 22px/1.2 var(--body);margin:12px 0}
#room p{font:13px/1.65 var(--body);margin:10px 0}
.room-kicker,.stop-date{display:block;font:8px/1.8 var(--pixel);letter-spacing:.5px}
.stop-date{color:#52665e}.stop-link{font:700 12px/1.5 var(--body);display:flex;justify-content:space-between;align-items:center;gap:10px;text-decoration:none;border-bottom:2px solid currentColor;padding:9px 0 7px;margin-top:15px}.stop-link span{font-size:18px}
#room .room-continue{position:relative;padding:15px 20px;min-height:45px;font:8px/1.5 var(--pixel);border-top:2px solid #142b4160;letter-spacing:.3px}
.room-feature{font:7px/1.6 var(--pixel);padding:8px 10px;min-height:32px;border:2px solid currentColor;background:transparent;display:flex;align-items:center;justify-content:space-between;gap:8px}
.feature-status{display:block;font:10px/1.4 var(--body);margin-top:6px;min-height:14px}
/* Chalet: carved mantel, a bound work journal and a hearth at your feet. */
#room[data-theme=chalet]{background:#865940;border:5px solid #614c3b;box-shadow:inset 0 0 0 3px #ad674a,5px 6px 0 #213e4d50}
#room[data-theme=chalet]::before{inset:-11px -12px auto;height:20px;background:#614c3b;border-top:5px solid #f4f1db;box-shadow:0 4px 0 #ad674a;clip-path:polygon(0 5px,12% 5px,12% 0,35% 0,35% 4px,78% 4px,78% 0,100% 0,100% 100%,0 100%)}
#room[data-theme=chalet] .room-body{background:repeating-linear-gradient(0deg,transparent 0 57px,#614c3b80 57px 60px);padding:20px 18px 0}
.chalet-mantel{color:#f4f1db;padding:0 28px 8px 7px}.chalet-mantel .room-kicker{color:#efc56f;padding-top: 10px;}.mantel-carving{font-size:10px;letter-spacing:5px;color:#efc56f}
.work-ledger{position:relative;width:320px;max-width:calc(100% - 12px);aspect-ratio:6 / 7;background:#f4f1db;padding:28px 21px 18px 28px;color:#213e4d;border:2px solid #614c3b;box-shadow:-5px 0 0 #397c79,0 4px 0 #dfdfbf,0 6px 0 #614c3b;margin:16px auto;background-image:linear-gradient(90deg,transparent 15px,#c8785540 15px,#c8785540 16px,transparent 16px)}
.work-ledger::before{content:"";position:absolute;left:-7px;top:16px;bottom:16px;width:6px;background:repeating-linear-gradient(0deg,#dfdfbf 0 2px,transparent 2px 13px)}
.ledger-tab{position:absolute;left:20px;top:-12px;background:#397c79;color:#f4f1db;padding:5px 9px;font:7px var(--pixel);border:2px solid #213e4d}
.ledger-rule{display:flex;justify-content:space-between;font:7px var(--pixel);border-bottom:1px solid #86594055;padding-bottom:8px;margin-bottom:16px;color:#865940;}.ledger-title{font:24px var(--pixel);}
.journal-signoff{display:flex;justify-content:space-between;align-items:end;margin:16px 0 0}.journal-stamp{font:7px/1.8 var(--pixel);padding:5px 7px;border:2px solid #397c7970;color:#397c79;transform:rotate(-3deg)}.journal-page{font:24px var(--pixel);color:#ad674a60}
.hearth-corner{display:flex;align-items:center;gap:14px;margin:0 -18px;padding:5px 18px 10px;color:#f4f1db;background:#614c3b55;min-height:104px}.hearth{width:132px;flex:none;image-rendering:pixelated;align-self:end}.hearth-caption{font:11px/1.5 var(--body)}.fire-control{color:#efc56f;margin-top:8px;padding:5px 7px}.hearth-corner .feature-status{color:#dfdfbf}.flame{transform-origin:52px 47px;animation:hearth-flicker 1.2s steps(3,end) infinite}.fire-tended .flame{animation-duration:.65s;filter:brightness(1.25)}.fire-tended .hearth-corner{background:#ad674a66}
#room[data-theme=chalet] .room-continue{background:#397c79;color:#f4f1db;border-bottom:3px solid #213e4d}
@keyframes hearth-flicker{0%,100%{transform:scaleY(.92)}50%{transform:scaleY(1.13)}}
/* Igloo: a stepped ice vault, with three projects on a little display shelf. */
#room[data-theme=igloo]{background:#b6d8d9;border:4px solid #527489;border-radius:48px 48px 8px 8px;box-shadow:inset 0 0 0 5px #e0eff0,5px 6px 0 #34586766;padding:6px;}
#room[data-theme=igloo]::before{inset:-7px 24px auto;height:16px;background:#f4f1db;border-top:4px solid #8db7c4;clip-path:polygon(0 8px,8% 8px,8% 4px,23% 4px,23% 0,77% 0,77% 4px,92% 4px,92% 8px,100% 8px,100% 100%,0 100%)}

#room[data-theme=igloo] .room-body{padding:14px 16px 0;background:repeating-linear-gradient(0deg,transparent 0 43px,#8db7c455 43px 45px);border-radius:36px 36px 0 0}
.ice-arch{text-align:center;padding:0 13px 10px}.ice-snowflake{display:block;width:37px;margin:0 auto 8px;font-size:29px;line-height:1.3;color:#f4f1db;text-shadow:2px 2px #527489}.ice-arch .room-kicker{color:#345867}.ice-arch p{color:#345867}.project-shelf{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:3px 0 17px;border-bottom:5px solid #527489;padding-bottom:10px;box-shadow:0 3px 0 #e0eff0}
.project-shelf button{display:flex;flex-direction:column;gap:5px;align-items:center;justify-content:center;padding:8px 4px;color:#527489;background:#e0eff0;border:2px solid #8db7c4;box-shadow:0 3px 0 #8db7c4;font:7px var(--pixel);min-height:69px}.project-shelf button svg{width:27px;height:27px}.project-shelf button[aria-selected=true]{color:#efc56f;background:#345867;border-color:#213e4d;box-shadow:0 3px 0 #213e4d}.project-specimen{position:relative;padding:17px 19px;background:#edf5ec;border:2px solid #8db7c4;box-shadow:inset 5px 0 #d5e8e5,0 3px #8db7c4;min-height:235px}.specimen-label{display:flex;justify-content:space-between;font:8px var(--pixel);color:#397c79;border-bottom:1px solid #8db7c4;padding-bottom:9px;margin-bottom:13px}.project-specimen .stop-date{font-size:7px;color:#52665e}.ice-tools{display:flex;flex-wrap:wrap;gap:5px;margin:15px 0 3px}.ice-tools span{font:8px var(--pixel);padding:6px 8px;background:#d5e8e5;border-bottom:2px solid #8db7c4}.ice-shelf-base{display:flex;flex-direction:column;align-items:center;gap:7px;padding:13px 0;color:#345867;font:6px var(--pixel)}.ice-shelf-base>span:first-child{font-size:9px;color:#527489}#room[data-theme=igloo] .room-continue{background:#527489;color:#f4f1db;border:2px solid #345867;border-radius:0 0 3px 3px}
/* Gondola: the cable drive, departure board and a tear-off university pass. */
#room[data-theme=gondola]{background:#397c79;border:5px solid #213e4d;box-shadow:inset 0 0 0 3px #60a18b,5px 6px 0 #213e4d50;padding:11px}
#room[data-theme=gondola]::before{inset:5px;background:radial-gradient(circle at 2px 2px,#b6d8d9 2px,transparent 3px) top left/5px 5px no-repeat,radial-gradient(circle at 2px 2px,#b6d8d9 2px,transparent 3px) bottom right/5px 5px no-repeat}
.station-machinery{height:32px;position:relative;overflow:hidden;margin:0 5px 7px 5px;display:flex;align-items:center;justify-content:space-between}.station-wheel{width:23px;height:23px;border:5px solid #213e4d;outline:2px solid #8db7c4;background:#efc56f;z-index:1;box-shadow:inset 0 0 0 4px #397c79}.station-cable{position:absolute;left:12px;right:12px;top:8px;height:15px;border-block:2px solid #213e4d}.tiny-cabin{position:absolute;top:12px;left:10%;height:16px;width:18px;border:3px solid #213e4d;background:#efc56f;box-shadow:inset 0 -4px #c87855;animation:station-haul 7s linear infinite}.tiny-cabin::before{content:"";position:absolute;left:5px;top:-7px;width:2px;height:5px;background:#213e4d}
.station-board{background:#213e4d;color:#f4f1db;padding:16px 14px;border:2px solid #142b41;box-shadow:0 3px 0 #60a18b}.station-board .room-kicker{color:#efc56f}.station-board h2{font-size:18px!important}.station-board>div{display:flex;align-items:center;gap:7px;font:6px/1.8 var(--pixel);color:#b6d8d9}
.station-switch{display:flex;gap:6px;margin:14px 0 11px}.station-switch button{flex:1;min-height:33px;background:#25635f;border:2px solid #213e4d;color:#f4f1db;font:8px var(--pixel);padding:7px 4px}.station-switch button[aria-selected=true]{background:#efc56f;color:#213e4d;box-shadow:0 2px 0 #213e4d}
.boarding-pass{position:relative;background:#f4f1db;color:#213e4d;padding:15px 17px 10px;border-left:7px solid #c87855;margin:0 3px 12px;box-shadow:3px 3px 0 #213e4d60}.ticket-heading{display:flex;align-items:center;justify-content:space-between;font:10px var(--pixel);border-bottom:2px solid #213e4d;margin-bottom:15px;padding-bottom:8px}.ticket-heading span:last-child{font-size:20px;color:#ad674a}.boarding-pass h3{margin-bottom:7px!important}.boarding-pass p{font-size:12px!important}.ticket-facts{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:17px 0}.ticket-facts div{display:flex;flex-direction:column;gap:8px}.ticket-facts div>span,.ticket-stub>div>span{font:6px var(--pixel)}.ticket-facts strong{font:19px var(--pixel)}.ticket-arrow{font-size:24px;color:#ad674a}.ticket-tear{border-top:2px dashed #86594066;position:relative;margin:0 -17px 14px}.ticket-tear::before,.ticket-tear::after{content:"";position:absolute;width:13px;height:13px;background:#397c79;top:-7px;border-radius:50%}.ticket-tear::before{left:-10px}.ticket-tear::after{right:-7px}.ticket-stub{display:flex;justify-content:space-between;align-items:center;gap:10px}.ticket-stub>div{display:flex;flex-direction:column;gap:8px}.ticket-stub strong{font:20px var(--pixel)}.ticket-stub small{font:8px var(--body)}.ticket-bars{height:35px;width:57px;background:repeating-linear-gradient(90deg,#213e4d 0 2px,transparent 2px 5px,#213e4d 5px 6px,transparent 6px 9px);opacity:.7}.punch-pass{margin-top:16px;width:100%;justify-content:center;color:#397c79;border-style:dashed}.punch-pass[aria-pressed=true]{background:#397c79;color:#f4f1db;border-style:solid}.punch-hole{width:8px;height:8px;border:2px solid currentColor}.punch-pass[aria-pressed=true] .punch-hole{background:#f4f1db;box-shadow:inset 0 0 0 1px #397c79}
.milestone-board{background:#f4f1db;border-top:6px solid #efc56f;padding:20px 18px;margin:0 3px 12px}.milestone-board ol{list-style:none;padding:0;margin:18px 0}.milestone-board li{display:flex;gap:12px;align-items:center;position:relative;padding:0 0 20px;font:13px/1.5 var(--body)}.milestone-board li:not(:last-child)::before{content:"";position:absolute;left:12px;top:25px;height:calc(100% - 25px);width:2px;background:#8db7c4}.milestone-dot{display:grid;place-items:center;flex:none;width:26px;height:26px;background:#397c79;color:#f4f1db;border:3px solid #8db7c4;font:8px var(--pixel)}#room[data-theme=gondola] .room-continue{background:#efc56f;color:#213e4d;border:2px solid #213e4d;padding-inline:12px}
@keyframes station-haul{from{left:-10%}to{left:110%}}
/* Caravan: a striped serving hatch, a hot mug and a small paper receipt. */
#room[data-theme=caravan]{background:#ad674a;border:5px solid #614c3b;box-shadow:inset 0 0 0 3px #c87855,5px 6px 0 #213e4d50;padding:0 11px}
.caravan-awning{height:66px;background:repeating-linear-gradient(90deg,#f4f1db 0 24px,#c87855 24px 48px);margin:0 -11px;position:relative;border-bottom:6px solid #614c3b;text-align:center;padding:17px 44px 16px 10px;clip-path:polygon(0 0,100% 0,100% 90%,96% 90%,96% 100%,88% 100%,88% 90%,80% 90%,80% 100%,72% 100%,72% 90%,64% 90%,64% 100%,56% 100%,56% 90%,48% 90%,48% 100%,40% 100%,40% 90%,32% 90%,32% 100%,24% 100%,24% 90%,16% 90%,16% 100%,8% 100%,8% 90%,0 90%)}.caravan-awning>span{display:inline-block;background:#614c3b;color:#f4f1db;border:2px solid #efc56f;padding:7px 8px;font:7px var(--pixel)}
.cocoa-menu{background:#25635f;color:#f4f1db;padding:18px 17px 11px;margin:8px 0 0;border:3px solid #614c3b;text-align:center;box-shadow:inset 0 0 0 2px #60a18b66}.cocoa-menu .room-kicker{color:#efc56f}.cocoa-menu h2{font-size:19px!important}.cocoa-menu p{font-size:12px!important;margin-bottom:3px!important}.menu-stars{display:block;color:#efc56f;font-size:18px;letter-spacing:5px;margin-top:8px}.counter-service{position:relative;padding:0 10px 17px;background:#865940;margin:0 0 12px;border:3px solid #614c3b;border-top:0}.mug-station{display:grid;grid-template-columns:100px 1fr;grid-template-rows:1fr auto;gap:0 12px;align-items:end;padding:2px 0 12px;color:#f4f1db}.cocoa-cup{grid-row:1/3;width:100px;height:90px;image-rendering:pixelated}.marshmallow-control{align-self:end;color:#f4f1db;font-size:6px;padding:7px 5px;background:#614c3b}.mug-station .feature-status{margin:5px 0 7px}.marshmallows{opacity:0;transition:opacity .2s}.extra-cocoa .marshmallows{opacity:1}.extra-cocoa .marshmallow-control{color:#efc56f}.cup-steam{opacity:.65;animation:cup-steam 3s steps(6,end) infinite}.cocoa-receipt{position:relative;background:#f4f1db;color:#614c3b;padding:18px 19px 23px;margin:0 0 5px;box-shadow:3px 3px 0 #614c3b55;clip-path:polygon(0 0,100% 0,100% calc(100% - 6px),96% calc(100% - 6px),96% 100%,88% 100%,88% calc(100% - 6px),80% calc(100% - 6px),80% 100%,72% 100%,72% calc(100% - 6px),64% calc(100% - 6px),64% 100%,56% 100%,56% calc(100% - 6px),48% calc(100% - 6px),48% 100%,40% 100%,40% calc(100% - 6px),32% calc(100% - 6px),32% 100%,24% 100%,24% calc(100% - 6px),16% calc(100% - 6px),16% 100%,8% 100%,8% calc(100% - 6px),0 calc(100% - 6px))}.receipt-heading{display:block;text-align:center;font:7px var(--pixel);border-bottom:2px dashed #ad674a66;padding-bottom:13px}.cocoa-receipt h3{font-size:21px!important}.receipt-total{display:flex;justify-content:space-between;gap:10px;font:6px/1.8 var(--pixel);border-block:1px dashed #ad674a66;padding:10px 0;margin-top:14px}.cocoa-receipt .stop-link{color:#25635f}.cocoa-receipt .stop-link:focus-visible{outline-offset:2px}.cocoa-receipt p{font-size:12px!important}#room[data-theme=caravan] .room-continue{background:#614c3b;color:#f4f1db;border-top:5px solid #efc56f;margin:0 -16px -5px;padding:16px 20px;box-shadow:0 -3px 0 #865940}
@keyframes cup-steam{0%,100%{transform:translateY(2px);opacity:.45}50%{transform:translateY(-3px);opacity:.8}}
/* Preserve the mountain beside the panel; let the objects scroll on small screens. */
@media(min-width:1600px){#room{width:430px}}
@media(max-height:760px) and (min-width:701px){#room{max-height:72svh}.hearth-corner{min-height:85px}.hearth{width:110px}}
@media(max-width:700px){
 #room{width:auto;left:6%;right:6%;bottom:59px;max-height:49svh;top:auto;translate:0}
 #room h2{font-size:17px}#room h3{font-size:20px}#room p{font-size:12px}
 
 #room .room-continue{font-size:7px;min-height:40px;padding:11px 13px}
 #room[data-theme=chalet]{border-width:4px}#room[data-theme=chalet] .room-body{padding:17px 13px 0}.chalet-mantel{padding-left:4px}.mantel-carving{display:none}.work-ledger{margin-top:14px;padding:24px 15px 15px 25px}.hearth-corner{margin:0 -13px;padding:6px 12px 9px;gap:10px}.hearth{width:112px}.hearth-caption{font-size:10px}
 #room[data-theme=igloo]{border-radius:32px 32px 5px 5px;padding:4px}#room[data-theme=igloo] .room-body{padding:10px 10px 0}.ice-snowflake{font-size:22px;margin-bottom:2px}.ice-arch{padding-bottom:5px}.ice-arch h2{font-size:16px}.ice-arch p{font-size:11px!important;margin:5px 0!important}.project-shelf{gap:6px;margin-bottom:13px}.project-shelf button{min-height:58px;padding:5px 4px}.project-shelf button svg{width:23px;height:23px}.project-specimen{padding:14px 15px;min-height:0}.ice-shelf-base{font-size:5px}
 #room[data-theme=gondola]{padding:8px;border-width:4px}.station-machinery{height:25px;margin-bottom:5px}.station-board{padding:12px}.station-board h2{font-size:16px!important}.station-board>div{font-size:5px}.station-switch{margin-top:11px}.boarding-pass{padding-inline:14px}.ticket-tear{margin-inline:-14px}
 #room[data-theme=caravan]{padding-inline:8px;border-width:4px}.caravan-awning{height:57px;margin-inline:-8px;padding-top:12px}.caravan-awning>span{font-size:6px;padding:6px}.cocoa-menu{padding:14px 12px 9px}.cocoa-menu h2{font-size:16px!important}.cocoa-menu p{font-size:11px!important}.menu-stars{font-size:15px;margin-top:4px}.counter-service{padding-inline:8px}.mug-station{grid-template-columns:83px 1fr;gap:0 8px}.cocoa-cup{width:83px;height:78px}.marshmallow-control{font-size:6px;padding:7px 5px}.cocoa-receipt{padding:16px 15px 22px}.cocoa-receipt h3{font-size:19px!important}#room[data-theme=caravan] .room-continue{margin:0 -12px -4px}
}
@media(prefers-reduced-motion:reduce){.flame,.tiny-cabin,.cup-steam{animation:none}.marshmallows{transition:none}}
/* Visible, operable overflow affordance; it vanishes at the end of the object. */
#room .room-more{flex:none;min-height:25px;padding:6px 12px;background:#f4f1db;color:#213e4d;border-top:1px dashed #8db7c4;font:8px/1.4 var(--pixel);display:flex;gap:12px;justify-content:center;align-items:center}
#room[data-theme=chalet] .room-more{background:#614c3b;color:#efc56f;border-color:#ad674a}
#room[data-theme=igloo] .room-more{background:#d5e8e5;color:#345867}
#room[data-theme=gondola] .room-more{background:#25635f;color:#f4f1db;border-color:#60a18b}
#room[data-theme=caravan] .room-more{background:#865940;color:#f4f1db;border-color:#c87855}
.ticket-tear::after{right:-3px}.ticket-tear::before{left:-7px}
/* A built ice arch: stair-step silhouette, offset block joints and an inset alcove. */
#room[data-theme=igloo]{background:none;border:0;border-radius:0;padding:12px 12px 8px;box-shadow:none;filter:drop-shadow(5px 6px 0 #34586766)}
#room[data-theme=igloo]::before,#room[data-theme=igloo]::after{content:"";position:absolute;pointer-events:none;border:0;height:auto;clip-path:polygon(0 48px,12px 48px,12px 28px,28px 28px,28px 12px,52px 12px,52px 0,calc(100% - 52px) 0,calc(100% - 52px) 12px,calc(100% - 28px) 12px,calc(100% - 28px) 28px,calc(100% - 12px) 28px,calc(100% - 12px) 48px,100% 48px,100% calc(100% - 8px),calc(100% - 8px) calc(100% - 8px),calc(100% - 8px) 100%,8px 100%,8px calc(100% - 8px),0 calc(100% - 8px))}
#room[data-theme=igloo]::before{inset:0;background:#527489;z-index:-2}
#room[data-theme=igloo]::after{inset:4px;background-color:#b6d8d9;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='64'%3E%3Cpath d='M0 0h100M0 32h100M0 63h100M25 0v32M75 32v32' fill='none' stroke='%238db7c4' stroke-width='2'/%3E%3Cpath d='M0 3h100M0 35h100' fill='none' stroke='%23dfefea' stroke-width='2' opacity='.6'/%3E%3C/svg%3E");z-index:-1;box-shadow:inset 0 7px #f4f1db}
#room[data-theme=igloo] .room-body{background:none;border-radius:0;padding:9px 12px 0}

.ice-arch{padding:0 15px 10px}.ice-snowflake{background:#345867;border:4px solid #edf5ec;box-shadow:0 3px #527489;color:#efc56f;width:38px;height:38px;font-size:25px;line-height:30px;margin:0 auto 10px;text-shadow:none}
.project-shelf{padding:0 4px 13px;border-bottom:6px solid #527489;box-shadow:0 4px 0 #edf5ec;gap:13px}
.project-shelf button{border:0;box-shadow:inset 0 -7px #8db7c4;background:#e0eff0;min-height:73px;padding-bottom:12px;clip-path:polygon(0 8px,8px 8px,8px 0,calc(100% - 8px) 0,calc(100% - 8px) 8px,100% 8px,100% 100%,0 100%)}
.project-shelf button[aria-selected=true]{color:#614c3b;background:#efc56f;box-shadow:inset 0 -7px #ad674a}.project-shelf button:focus-visible{outline:none;box-shadow:inset 0 0 0 4px #213e4d,inset 0 -7px #8db7c4}
.project-specimen{border:6px solid #527489;border-top:9px solid #e0eff0;border-bottom:7px solid #8db7c4;background:#edf5ec;box-shadow:inset 5px 0 #d5e8e5,0 4px 0 #527489;padding:15px 15px 17px}
.specimen-label{color:#865940}.specimen-label>span:first-child{background:#efc56f;padding:4px 7px;margin-top:-3px}.ice-shelf-base{padding-top:16px}
/* Mobile keeps the distinctive details in view without shrinking reading text. */
@media(max-width:700px){
 #room h2{font-size:15px;margin:5px 0 6px}#room h3{font-size:19px;margin:8px 0}#room p{font-size:12px;line-height:1.5;margin:7px 0}
 .room-feature{font-size:8px}.stop-link{margin-top:8px;padding:6px 0;font-size:12px}.stop-date{font-size:7px}.room-kicker{font-size:7px}
 #room[data-theme=chalet] .room-body{padding:12px 12px 0}.chalet-mantel{padding:0 25px 2px 4px}.work-ledger{margin:12px auto 10px;padding:17px 13px 10px 22px}.ledger-rule{font-size:6px;padding-bottom:5px;margin-bottom:8px}.ledger-tab{font-size:6px;padding:4px 7px;top:-9px}.journal-signoff{margin:8px 0 0}.journal-stamp{font-size:6px;line-height:1.5;padding:3px 5px}.journal-page{font-size:17px}.hearth-corner{min-height:80px;margin:0 -12px;padding:4px 11px 7px}.hearth{width:101px}.hearth-caption{display:none}.fire-control{margin-top:0;padding:5px 7px}.hearth-corner .feature-status{font-size:10px}
 #room[data-theme=igloo]{padding:10px 9px 7px}#room[data-theme=igloo] .room-body{padding:7px 9px 0}.ice-arch{padding:0 18px 4px;text-align:left;position:relative}.ice-arch .ice-snowflake{float:left;width:27px;height:29px;font-size:20px;line-height:23px;border-width:3px;margin:4px 8px 0 -5px}.ice-arch h2{font-size:14px;margin:4px 0 6px}.ice-arch .room-kicker{font-size:6px}.ice-arch p{display:none}.project-shelf{gap:10px;margin:4px 0 13px;padding:0 3px 7px;border-bottom-width:4px}.project-shelf button{min-height:48px;flex-direction:row;gap:5px;font-size:6px;padding:5px 3px 9px;box-shadow:inset 0 -5px #8db7c4}.project-shelf button[aria-selected=true]{box-shadow:inset 0 -5px #ad674a}.project-shelf button svg{width:20px;height:20px;flex:none}.project-specimen{padding:10px 11px;border-width:4px;border-top-width:7px}.specimen-label{padding-bottom:6px;margin-bottom:8px;font-size:7px}.project-specimen .stop-date{font-size:6px}.ice-tools{margin:9px 0 2px;gap:4px}.ice-tools span{font-size:7px;padding:4px 6px}.ice-shelf-base{display:none}
 #room[data-theme=gondola]{padding:7px}.station-machinery{height:22px;margin-bottom:4px}.station-board{padding:9px 11px}.station-board h2{font-size:14px!important}.station-board>div{display:none}.station-switch{margin:9px 0}.station-switch button{font-size:8px;min-height:31px}.boarding-pass{padding:10px 13px 9px;margin-bottom:9px}.ticket-heading{padding-bottom:5px;margin-bottom:8px;font-size:6px}.ticket-heading>span:last-child{font-size:15px}.boarding-pass>.stop-date{display:none}.boarding-pass h3{font-size:19px}.boarding-pass p{margin:5px 0!important}.ticket-facts{margin:9px 0;gap:6px}.ticket-facts div{gap:4px}.ticket-facts strong{font-size:15px}.ticket-facts div>span{font-size:5px}.ticket-tear{margin:0 -13px 9px}.ticket-stub>div{gap:5px}.ticket-stub strong{font-size:17px}.ticket-bars{height:27px;width:45px}.punch-pass{margin-top:10px;padding:5px;font-size:7px;min-height:29px}.milestone-board{padding:14px;margin-bottom:9px}.milestone-board ol{margin:12px 0}.milestone-board li{font-size:12px;padding-bottom:14px}
 .caravan-awning{height:37px;padding:6px 37px 8px 7px}.caravan-awning>span{font-size:6px;padding:4px 6px}.cocoa-menu{padding:8px 8px 7px;margin-top:5px}.cocoa-menu .room-kicker{font-size:6px}.cocoa-menu h2{font-size:14px!important;margin:4px 0!important}.cocoa-menu p{font-size:10px!important;margin:3px 0 0!important}.menu-stars{display:none}.mug-station{grid-template-columns:66px 1fr;padding:0 0 7px;gap:0 8px}.cocoa-cup{width:66px;height:65px}.marshmallow-control{font-size:7px;padding:5px;min-height:29px}.mug-station .feature-status{font-size:10px;margin:3px 0 4px}.counter-service{padding-bottom:8px;margin-bottom:6px}.cocoa-receipt{padding:10px 12px 16px;margin-bottom:0}.receipt-heading{font-size:6px;padding-bottom:6px}.cocoa-receipt h3{font-size:17px!important;margin:7px 0!important}.cocoa-receipt p{font-size:12px!important;line-height:1.45!important}.receipt-total{font-size:5px;padding:6px 0;margin-top:7px}.cocoa-receipt .stop-link{margin-top:6px;padding:5px 0}.cocoa-receipt .stop-link span{font-size:15px}
}
/* The awning spans its hatch without creating a horizontal scroll surface. */
#room[data-theme=caravan] .caravan-awning{margin-inline:0}
/* A quiet hearth vignette. Its fire is the control; no visible button or caption. */
#room[data-theme=chalet] .hearth-stage{display:block;position:relative;min-height:0;padding:0;margin:0 -18px;background:#865940;line-height:0}
.hearth-stage canvas{display:block;width:100%;height:auto;image-rendering:pixelated;aspect-ratio:192/92}
#room .hearth-hit{position:absolute;left:38.5%;top:25%;width:23%;height:42%;padding:0;border:0;background:transparent;box-shadow:none;cursor:pointer;min-width:44px;min-height:44px}
#room .hearth-hit:hover{filter:none;background:#efc56f09}
#room .hearth-hit:focus-visible{outline:2px dashed #efc56f;outline-offset:2px}
@media(max-width:700px){#room[data-theme=chalet] .hearth-stage{margin:0 -12px}}
/* Original hearth artwork and original warmth treatments, on a single surface. */
#room[data-theme=chalet] .hearth-stage{--hearth-size:132px;background:#614c3b55}
#room[data-theme=chalet] .hearth-stage[data-warm=true]{background:#ad674a66}
.hearth-stage canvas{position:relative;z-index:1;aspect-ratio:192/64;pointer-events:none;transform:translateY(-27px)}
.hearth-stage .hearth{position:absolute;top:6px;left:50%;width:var(--hearth-size);height:auto;transform:translateX(-50%);image-rendering:pixelated}
#room .hearth-hit{z-index:2;left:50%;top:calc(6px + var(--hearth-size)*.17);width:calc(var(--hearth-size)*.46);height:calc(var(--hearth-size)*.36);transform:translateX(-50%)}
#room .hearth-hit:hover{background:transparent}
@media(max-width:700px){#room[data-theme=chalet] .hearth-stage{--hearth-size:101px}}

/* Two project categories; the empty school collection is intentionally blank. */
.project-shelf{grid-template-columns:repeat(2,minmax(0,1fr))}
#project-display .project-specimen + .project-specimen{margin-top:18px}
#project-display{padding-bottom:12px}
#project-display:empty{min-height:160px;background:#edf5ec;border:6px solid #527489;border-top:9px solid #e0eff0;border-bottom:7px solid #8db7c4;margin-bottom:12px}

/* Education is a continuous strip of tickets, punched before the next school. */
#education-display{padding-top:18px;padding-bottom:12px}
#education-display .boarding-pass + .boarding-pass{margin-top:25px}
.ticket-heading{gap:10px;line-height:1.8}
.ticket-heading span:last-child{font-size:10px;white-space:nowrap}
.ticket-stub small{display:block;margin-top:6px;font:10px/1.4 var(--body)}
.punch-target{position:relative;flex:none;width:57px;height:35px}
.punch-target .ticket-bars{display:block;width:100%;height:100%}
.punched-hole{position:absolute;left:22px;top:11px;width:13px;height:13px;background:#397c79;box-shadow:inset 2px 2px #213e4d80;clip-path:polygon(3px 0,10px 0,10px 3px,13px 3px,13px 10px,10px 10px,10px 13px,3px 13px,3px 10px,0 10px,0 3px,3px 3px);opacity:0}
.punched .punched-hole{opacity:1}
.ticket-punch{position:absolute;width:48px;height:64px;left:10px;top:-27px;opacity:0;pointer-events:none;z-index:2;overflow:visible}
.punching .ticket-punch{animation:ticket-punch-tool 960ms both}
.punching .punch-jaw{animation:ticket-punch-jaw 960ms both}
.paper-chip{position:absolute;left:25px;top:14px;width:7px;height:7px;background:#f4f1db;border-right:2px solid #c7c9ab;opacity:0;pointer-events:none}
.punching .paper-chip{animation:ticket-punch-chip 960ms both}
.punch-pass{min-height:44px;gap:8px;transition:background-color .18s,color .18s}
.punch-pass[aria-disabled=true]{cursor:wait}
.punched .punch-pass{color:#f4f1db;background:#397c79;border-style:solid}
.punched .punch-pass .punch-hole{background:#f4f1db}
.boarding-pass h3:focus-visible{outline:2px dashed #397c79;outline-offset:4px}
@keyframes ticket-punch-tool{0%{opacity:0;transform:translate(10px,-15px) rotate(-9deg)}18%,65%{opacity:1;transform:translate(0,0) rotate(0)}82%,100%{opacity:0;transform:translate(8px,-13px) rotate(6deg)}}
@keyframes ticket-punch-jaw{0%,22%,68%,100%{transform:translateY(0)}36%,46%{transform:translateY(11px)}}
@keyframes ticket-punch-chip{0%,35%{opacity:0;transform:translate(0,0)}37%{opacity:1;transform:translate(0,0)}75%{opacity:.9;transform:translate(-12px,22px) rotate(70deg)}100%{opacity:0;transform:translate(-17px,32px) rotate(100deg)}}
@media(max-width:700px){#education-display{padding-top:13px}.ticket-heading{font-size:7px}.ticket-heading span:last-child{font-size:9px}.punch-pass{min-height:44px}.ticket-stub strong{font-size:18px}.ticket-stub small{font-size:10px}}
@media(prefers-reduced-motion:reduce){.punching .ticket-punch,.punching .punch-jaw,.punching .paper-chip{animation:none}.punch-pass{transition:none}}

/* Small stamped ink diamonds and ruled separators belong to the journal page. */
.journal-notes{list-style:none;margin:16px 0 0;padding:0;font:13px/1.65 var(--body)}
.journal-notes li{position:relative;padding:0 0 2px 19px;border-bottom:1px dashed #86594040;overflow-wrap:break-word}
.journal-notes li::before{content:"";position:absolute;left:0;top:.5em;width:9px;height:9px;background:#397c79;clip-path:polygon(3px 0,6px 0,6px 3px,9px 3px,9px 6px,6px 6px,6px 9px,3px 9px,3px 6px,0 6px,0 3px,3px 3px)}
.journal-notes li:last-child{border-bottom:0;padding-bottom:0;margin-bottom:0}
.experience-points{padding-left:20px;font:14px/1.65 var(--body)}
.experience-points li+li{margin-top:8px}
@media(max-width:700px){.journal-notes{font-size:12px;line-height:1.6;margin-top:12px}.journal-notes li{padding-bottom:10px;margin-bottom:10px}}

/* Bound chapter controls stay in place while the sheets tear off below. */
.work-ledger.journal-book{padding:24px 0 0;aspect-ratio:auto;background:#e5dfc2}
.journal-book .ledger-rule{align-items:center;gap:4px;margin:0 13px;padding:0 0 8px;}
.journal-book .ledger-title{font: 20px var(--pixel);white-space:nowrap;text-align:center}
.chapter-arrow{display:grid;place-items:center;flex:none;width:36px;min-height:36px;background:transparent;color:#397c79;font:22px/1 var(--pixel);border:1px solid #86594040;box-shadow:0 2px #86594025}
.chapter-arrow[aria-disabled=true]{opacity:.3;cursor:default}
.chapter-arrow:focus-visible{outline-offset:1px}
.journal-viewport{position:relative;isolation:isolate;overflow:hidden;display:grid;background:#e5dfc2}
.journal-sheet{grid-area:1/1;position:relative;visibility:hidden;min-width:0;padding:16px 21px 25px 28px;background:#f4f1db;transform-origin:0 100%;background-image:linear-gradient(90deg,transparent 15px,#c8785540 15px,#c8785540 16px,transparent 16px);backface-visibility:hidden}
.journal-sheet.is-current,.journal-sheet.is-under,.journal-sheet.is-tearing{visibility:visible}
.journal-sheet.is-under{z-index:0}.journal-sheet.is-current{z-index:1}.journal-sheet.is-tearing{visibility:hidden;pointer-events:none}

.journal-binding{position:absolute;inset:0 auto 0 0;width:12px;z-index:3;pointer-events:none;background:repeating-linear-gradient(0deg,#f4f1db 0 8px,#d0c4a2 8px 10px,#f4f1db 10px 17px);clip-path:polygon(0 0,80% 0,80% 100%,0 100%)}
.journal-folio{position:absolute;bottom:15px;right:21px;color:#86594080;font:10px var(--pixel)}
@media(max-width:700px){.work-ledger.journal-book{padding-top:17px}.journal-book .ledger-rule{margin:0 10px;padding-bottom:6px}.journal-book .ledger-title{font-size:13px}.chapter-arrow{width:36px}.journal-sheet{padding:12px 13px 35px 22px}}
@media(prefers-reduced-motion:reduce){.journal-sheet{will-change:auto}}

/* A moving crack and matched paper edges, with no curled or folded margin. */
.journal-rip-layer{position:absolute;inset:0;z-index:2;pointer-events:none;will-change:transform}
.journal-rip-band{position:absolute;left:0;width:100%;overflow:hidden;transform-origin:0 0;will-change:transform,clip-path}
.journal-sheet.journal-rip-copy{position:absolute;left:0;width:100%;visibility:visible;min-height:0;max-height:none;box-sizing:border-box;margin:0}
.journal-rip-stump{position:absolute;top:0;left:0;width:32px;height:100%;z-index:3;pointer-events:none}
.journal-rip-fibers{position:absolute;width:7px;height:3px;background:#b8a986;z-index:100;pointer-events:none;clip-path:polygon(0 0,55% 0,55% 33%,100% 33%,100% 66%,35% 66%,35% 100%,0 100%)}

/* Square organization marks sit on the paper like small publisher's emblems. */
.organization-logo{display:block;width:48px;height:48px;object-fit:contain;object-position:center;image-rendering:auto;flex:none}
.journal-sheet>.stop-date{font-size:10px;letter-spacing:0;line-height:1.8;margin-bottom:7px}
.journal-identity{display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:12px}
#room .journal-identity h3{font-size:19px;line-height:1.25;margin:0}
#room .journal-role{font-size:12px;line-height:1.5;font-weight:600;color:#52665e;margin:10px 0 0}
.ticket-issuer{display:grid;grid-template-columns:48px minmax(0,1fr);gap:12px;align-items:center;min-height:48px}
#room .ticket-issuer h3{font-size:21px;line-height:1.2;margin:0 0 2px!important}
#room .ticket-issuer p{margin:0!important}
@media(max-width:700px){
 .journal-sheet>.stop-date{font-size:10px;margin-bottom:5px}
 .journal-identity{grid-template-columns:44px minmax(0,1fr);gap:10px}
 .journal-identity .organization-logo{width:44px;height:44px}
 #room .journal-identity h3{font-size:18px;line-height:1.25}
 #room .journal-role{font-size:12px;line-height:1.5;margin-top:9px}
 .ticket-issuer{grid-template-columns:44px minmax(0,1fr);gap:11px;min-height:44px}
 .ticket-issuer .organization-logo{width:44px;height:44px}
 #room .ticket-issuer h3{font-size:19px;line-height:1.2;margin-bottom:5px!important}
 #room .ticket-issuer p{font-size:12px!important;line-height:1.5}
}

/* Optional project destinations share the build label's shelf, without badges. */
.specimen-label{align-items:center;gap:12px;min-height:33px}
.project-source-links{display:flex;align-items:center;gap:4px;flex:none}
.project-source-links a{display:grid;place-items:center;width:32px;height:32px;color:#213e4d;text-decoration:none;transition:background-color .15s}
.project-source-links img{display:block;width:20px;height:20px;object-fit:contain;image-rendering:auto}
.project-source-links a:hover{background:#8db7c433}
.project-source-links a:focus-visible{outline:2px dashed #397c79;outline-offset:0}
@media(max-width:700px){.project-source-links a{width:36px;height:36px}}

/* The final counter serves as a contact card, with cocoa as a small extra below. */
.contact-counter{padding-top:12px}
.contact-card .stop-link{min-height:44px;gap:10px;margin-top:8px}
.contact-card .contact-email{background:#25635f;color:#f4f1db;border:0;padding:11px 12px;overflow-wrap:anywhere}
.contact-card .contact-email span{flex:none}
.contact-card .contact-email:focus-visible{outline:2px dashed #efc56f;outline-offset:-4px}
.contact-counter .mug-station{padding-top:7px;padding-bottom:0}
@media(max-width:700px){.contact-counter{padding-top:9px}.contact-card .stop-link{font-size:12px;min-height:44px}.contact-card .contact-email{padding:9px 10px}}
@media(max-width:700px) and (max-height:700px){
 #room[data-theme=caravan] .cocoa-menu p{display:none}
 .contact-card{display:flex;flex-direction:column}
 .contact-card .receipt-heading{display:none}
 #room .contact-card h3{margin:0 0 4px!important}
 .contact-card .stop-link{flex-shrink:0}
 #room .contact-card p{order:1;margin-top:12px!important}
}
