@font-face{font-family:OpenDyslexic;src:url('/fonts/OpenDyslexic-Regular.woff2') format('woff2');font-display:swap}
@font-face{font-family:OpenDyslexic;src:url('/fonts/OpenDyslexic-Bold.woff2') format('woff2');font-weight:700;font-display:swap}
:root{--paper:#c2b18c;--cream:#e6d8b7;--ink:#1b3025;--green:#224634;--sage:#cbd3b8;--red:#8c3e30;--muted:#4d5847;--line:#a9966e;--gold:#b58e4b}
body,button,input,select,textarea,h1,h2,h3{font-family:OpenDyslexic,system-ui,sans-serif}
input,select,textarea{background:#f0e5ca}
.web-sitebar{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:44px;padding:.35rem max(16px,calc((100vw - 1100px)/2));background:#18382b;color:#f7e8c0;font-size:13px;font-weight:700;position:sticky;top:0;z-index:101}
.web-sitebar a{color:inherit;text-decoration:none}
.web-sitebar a:hover{text-decoration:underline;text-underline-offset:3px}
.web-sitebar .web-links{display:flex;gap:1rem;align-items:center}
.web-sitebar a:focus-visible{outline:3px solid #dfbd70}
body{min-height:100vh}
body>header{position:sticky;top:var(--web-bar-height,44px);z-index:100}
@media(min-width:900px){body>main{max-width:1050px}}
@media(max-width:600px){.web-sitebar{font-size:11px}.web-sitebar .web-links{gap:.55rem}.web-sitebar .web-links a:first-child{display:none}}

/* The Android layout flattens its 3:2 scenes into a short viewport-height strip.
   Keep every artwork and its interactive hit areas in the same natural rectangle. */
.unified-room .pantry-room,
.unified-room[data-live-zone] .pantry-room{
  width:min(100%,840px)!important;
  height:auto!important;
  aspect-ratio:3/2!important;
  margin:0 auto!important;
}
.unified-room .pantry-room>img,
.unified-room .pantry-room .room-open>img{
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
}
#app .tp-sticky .tp-scene,
#app .tp-visit-sticky .tp-scene,
#tp-profile .tp-style-preview .tp-scene{
  width:min(100%,840px)!important;
  height:auto!important;
  aspect-ratio:3/2!important;
  margin:0 auto 8px!important;
}
.tp-scene .tp-backdrop{object-fit:contain!important}
#app .unified-room{top:calc(var(--web-bar-height,44px) + var(--tp-header-height,80px))}
#app .tp-sticky,#app .tp-visit-sticky{top:calc(var(--web-bar-height,44px) + var(--tp-header-height,80px))}
.web-scene-label{width:100%;margin:2px auto 4px;font-size:clamp(.75rem,1vw,.88rem);line-height:1.2;white-space:nowrap;text-align:center;color:#23442f;text-shadow:0 1px #f7e7bd}
.web-app-download{display:grid;place-items:center;width:100%;min-height:52px;margin:0 auto 6px;padding:7px 10px;border:1px solid #aa5d45;border-radius:9px;background:linear-gradient(155deg,#a84a36,#7d2e25);box-shadow:inset 0 2px #e8a77a55,0 5px 0 #5d2821,0 10px 20px #301b1938;color:#fff3d7;text-decoration:none;text-align:center;text-shadow:0 1px #481b16}
.web-app-download strong{display:grid;gap:2px;font-size:clamp(.76rem,1vw,.9rem);line-height:1.18}
.web-app-download strong span{display:block}
.web-app-download.is-pending{cursor:not-allowed;filter:saturate(.65)}
.web-app-download:not(:disabled):hover{background:linear-gradient(155deg,#bd553b,#8c3428);color:#fff6df;transform:translateY(-2px);box-shadow:inset 0 2px #e8a77a55,0 7px 0 #5d2821,0 12px 22px #301b1945}
.web-app-download:focus-visible{outline:3px solid #f8d779;outline-offset:5px}
.web-password-toggle{display:block;width:auto;min-height:36px;margin:5px 0 12px auto;padding:5px 10px;border:1px solid #8b6d3b;border-radius:5px;background:#e8ca80;color:#2b2a1e;font-size:.76rem;font-weight:700;box-shadow:0 2px 0 #745722;cursor:pointer}
.web-password-toggle:focus-visible{outline:3px solid #274c37;outline-offset:2px}
#app [data-action="tp-info"]{margin-top:14px;border:1px solid #9c752e;background:linear-gradient(#e4c16f,#c99943);box-shadow:0 4px 0 #745222,0 8px 17px #31261927;color:#2c2a1c;font-weight:700;text-shadow:0 1px #f7e8ba}
#app [data-action="tp-info"]:hover{background:linear-gradient(#f1d181,#d8aa50);transform:translateY(-1px)}
@media(max-height:550px){
  .unified-room .pantry-room,
  .unified-room[data-live-zone] .pantry-room,
  #app .tp-sticky .tp-scene,
  #app .tp-visit-sticky .tp-scene{
    height:auto!important;
    aspect-ratio:3/2!important;
  }
}

/* The wrappers have no visual effect on the phone layout. */
.web-workspace,.web-scene,.web-content{display:contents}

@media(max-width:999px){
  .unified-room .pantry-room,.unified-room[data-live-zone] .pantry-room,
  #app .tp-sticky .tp-scene,#app .tp-visit-sticky .tp-scene{
    width:min(100%,840px,max(240px,calc((100dvh - 260px)*1.5)))!important;
  }
  .web-scene-label,.web-app-download{width:min(100%,840px,max(240px,calc((100dvh - 260px)*1.5)))}
}

@media(min-width:1000px){
  body>main:has(#app>.web-workspace){max-width:1320px;padding-inline:24px}
  #app:has(>.web-workspace){padding-top:0}
  #app:has(>.web-workspace)::before{display:none}
  .web-workspace{display:grid;grid-template-columns:minmax(0,1.23fr) minmax(340px,.9fr);gap:clamp(20px,2.5vw,38px);align-items:start}
  .web-scene{--scene-width:min(100%,max(300px,calc((100dvh - 300px)*1.5)));display:block;position:sticky;top:calc(var(--web-bar-height,44px) + var(--tp-header-height,80px) + 14px);min-width:0;align-self:start;z-index:25;padding:12px;border:1px solid #9d8053;border-radius:16px;background:#d4c39b;box-shadow:0 7px 0 #5d452d,0 18px 35px #241e1740}
  .web-content{display:block;min-width:0;padding:8px 0 28px}
  .web-content>*{max-width:100%}
  .web-scene .unified-room,.web-scene .tp-sticky,.web-scene .tp-visit-sticky{
    position:static;top:auto;width:var(--scene-width);margin:0 auto;padding:0;background:transparent;box-shadow:none;
  }
  .web-scene .unified-room .pantry-room,
  .web-scene .unified-room[data-live-zone] .pantry-room,
  #app .web-scene .tp-sticky .tp-scene,
  #app .web-scene .tp-visit-sticky .tp-scene{
    width:100%!important;
    height:auto!important;
    aspect-ratio:3/2!important;
    margin:0 auto 8px!important;
  }
  .web-scene-label,.web-app-download{width:var(--scene-width)}
  .tp-visit .web-workspace{width:100%}
}
