*{box-sizing:border-box}body{margin:0;overflow:hidden;background:#e9dfc8;color:#38392e;font-family:Georgia,serif}button{font:inherit;cursor:pointer;color:inherit}#game{position:fixed;inset:0}canvas{display:block;touch-action:none}header{position:fixed;top:28px;left:32px;pointer-events:none}h1{font-weight:400;font-size:clamp(22px,3vw,36px);margin:8px 0}header p{font:14px system-ui;margin:0;color:#656655}.eyebrow{font:11px system-ui;letter-spacing:3px}nav{position:fixed;right:26px;top:28px;display:flex;gap:8px}nav button,.close{border:1px solid #81795140;background:#fffaf0e6;border-radius:24px;padding:11px 16px;font:14px system-ui;box-shadow:0 3px 12px #51442b0b}button:hover{filter:brightness(.96)}button:focus-visible{outline:3px solid #aa7543;outline-offset:4px}footer{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);display:flex;gap:25px;white-space:nowrap;font:12px system-ui;color:#5d614f;background:#fffaf0c9;padding:12px 20px;border-radius:30px;pointer-events:none}#interact{position:fixed;bottom:86px;left:50%;transform:translateX(-50%);border:1px solid #9a8d6655;border-radius:30px;background:#fffaf2;padding:12px 23px;font:16px system-ui;box-shadow:0 6px 30px #55442122}kbd{padding:4px 7px;background:#e6e4d4;border-radius:5px;margin-right:10px;font:13px system-ui}#thought{position:fixed;left:50%;top:120px;transform:translateX(-50%);width:max-content;max-width:min(460px,85vw);text-align:center;line-height:1.6;font-size:18px;background:#fffaf1f2;padding:18px 25px;border-radius:18px;box-shadow:0 10px 30px #51442b15;pointer-events:none}#companion{position:fixed;right:25px;bottom:26px;font:12px system-ui;color:#4f6043}#loading{position:fixed;inset:0;display:grid;place-items:center;background:#e9dfc8;font-size:24px}dialog{border:1px solid #c8bfa6;background:#fffaf0;color:#38392e;border-radius:22px;width:min(480px,92vw);padding:32px;box-shadow:0 25px 100px #1e2c3150;max-height:88vh;overflow:auto}dialog::backdrop{background:#27342155;backdrop-filter:blur(4px)}dialog h2{font-weight:400;font-size:28px;margin:0 30px 16px 0}dialog p{line-height:1.7;font-size:16px}dialog .close{position:absolute;right:12px;top:12px;padding:5px 12px;font-size:24px}dialog .action{display:block;width:100%;border:0;background:#566447;color:#fff9eb;padding:13px;border-radius:12px;margin-top:10px;font:15px system-ui}dialog .secondary{background:#e9e5d6;color:#464c3f}dialog ul{padding-left:20px;line-height:1.9}dialog small{font:13px system-ui;color:#777}#paint{position:relative;height:310px;background:#ddd3be;border:10px solid #b18b54;border-radius:5px;overflow:hidden}#paint img{width:100%;height:100%;object-fit:cover}#paint .veil{position:absolute;inset:0;background:#f0e7d4;transition:opacity .5s}#paint button{position:absolute;z-index:2;border:2px dashed #fff9ec;border-radius:50%;width:52px;height:52px;background:#ccaa52bc;color:#fff;font-size:24px}#paint button:disabled{display:none}#touch{display:none;position:fixed;bottom:25px;left:18px;text-align:center}#touch button{width:44px;height:44px;border-radius:14px;background:#fff9eee0;border:1px solid #8b8c6940;font:22px system-ui;touch-action:none}#touch div{display:flex;gap:5px;margin-top:5px}.books{list-style:none;padding:0!important}.books li{border-top:1px solid #dbd4c0;padding:10px 0;line-height:1.3}.books small{display:block;margin-top:4px}@media(max-width:700px){header{top:20px;left:18px}nav{top:auto;bottom:24px;right:15px;flex-direction:column}nav button{padding:9px 12px;font-size:12px}header h1{font-size:24px}footer{display:none}#touch{display:block}#interact{bottom:145px;font-size:14px;padding:12px 15px}#companion{bottom:12px;right:15px;font-size:10px}#thought{top:110px;font-size:16px}dialog{padding:26px}}
/* A quiet in-world voice, with a small paper panel only for longer reading. */
#thought{font-size:16px;max-width:min(340px,85vw);padding:12px 18px;border:1px solid #e1d7bd;border-radius:18px 18px 18px 3px;transform:translate(-50%,-100%);box-shadow:0 5px 20px #5c50301a;line-height:1.55}
dialog{position:fixed;inset:140px 24px auto auto;margin:0;width:330px;max-height:calc(100vh - 180px);border:1px solid #cbbd994f;border-radius:8px 24px 24px 24px;box-shadow:0 15px 45px #342c2520;padding:28px;background:#fff9ecf5;animation:paper-in .25s ease-out}dialog::backdrop{background:transparent;backdrop-filter:none}dialog h2{font-size:25px;line-height:1.15}dialog p{font-size:15px;line-height:1.6}dialog .action{background:#586849;border-radius:8px;padding:11px}dialog .secondary{background:transparent;color:#586849;border:1px solid #bdbb9c}dialog .close{background:transparent;border:0;box-shadow:none}
#paintTools{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);text-align:center;background:#fff9ebed;padding:18px 28px;border:1px solid #dbcfb1;border-radius:18px;box-shadow:0 12px 45px #61503b20;min-width:320px}#paintTools h2{font-size:24px;font-weight:400;margin:8px 0}#paintTools p{font:14px system-ui;color:#6d725b;margin:8px 0 14px}#paintTools button{border:0;border-radius:20px;padding:11px 18px;background:#586a46;color:#fffaed;font:14px system-ui;touch-action:none}#paintTools #leavePaint{background:transparent;color:#787a65;display:block;margin:8px auto 0;padding:4px 10px;font-size:13px}#paintTools #leavePaint span{font-size:11px;margin-left:8px}#paintTools kbd{background:#ffffff24;margin-left:8px;margin-right:0}#paintTools[hidden]{display:none}body:has(#paintTools:not([hidden])) footer,body:has(#paintTools:not([hidden])) #touch,body:has(#paintTools:not([hidden])) #companion{display:none}#interact{animation:paper-in .16s ease-out}#interact kbd{background:#5b6a47;color:#fff9ea}#paintHold:active{background:#465638;transform:scale(.98)}@keyframes paper-in{from{opacity:0;translate:0 8px}to{opacity:1;translate:0 0}}@media(max-width:700px){dialog{inset:auto 12px 145px 12px;width:auto;max-height:55vh;padding:22px}#paintTools{bottom:18px;width:calc(100% - 28px);min-width:0;padding:12px 18px}#paintTools h2{font-size:21px}body:has(#paintTools:not([hidden])) nav{bottom:auto;top:16px;right:12px}body:has(#paintTools:not([hidden])) header{opacity:.3}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

#companion{border:0;background:#fff8e5cc;padding:8px 12px;border-radius:20px;cursor:pointer}

#sound{color:#fff;background:#4c5a47e8;border:1px solid #ffffff38;text-shadow:0 1px 2px #0003} @media(max-width:700px){#sound{position:fixed;top:78px;right:15px;bottom:auto}nav{bottom:24px}}
/* Object experiences sit beside the world rather than replacing it. */
dialog.experience{width:min(760px,calc(100vw - 40px));max-height:calc(100dvh - 170px);padding:30px;border:1px solid #bbaa8a;border-radius:20px;background:#fff8e9;box-shadow:0 16px 50px #43382933;color:#453c31;overflow:auto}
dialog.experience h2{font-size:25px;margin:0 36px 8px 0}dialog.experience h3{font-size:20px;line-height:1.25;margin:0 0 6px}dialog.experience h4{font-size:15px;margin:22px 0 8px}dialog.experience p{font-size:16px;line-height:1.55}dialog.experience small{font-size:13px;line-height:1.45}dialog.experience button:focus-visible,dialog.experience a:focus-visible{outline:3px solid #698b9b;outline-offset:3px}
.eyebrow,.byline{color:#776b58}.pending,.local-note{color:#796e60;font-style:italic}.library-layout{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-top:24px}.book-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px 10px;align-content:start}.book-pick{border:0;border-radius:7px;background:transparent;padding:5px;color:inherit;text-align:left;font-size:13px;line-height:1.3}.book-pick img{display:block;width:100%;height:145px;object-fit:contain;object-position:bottom;margin-bottom:10px;filter:drop-shadow(3px 4px 2px #55412526)}.book-pick.selected{background:#e4d6b8;box-shadow:0 0 0 2px #a48c62}.book-detail{padding-left:23px;border-left:1px solid #d9cdb7}.book-detail blockquote{margin:10px 0;padding:10px 12px;border-left:3px solid #c1a574;background:#f2e9d7;font-size:15px;overflow-wrap:anywhere}.book-detail blockquote small{display:block;margin-top:5px}.book-detail label{display:block;font-size:14px;margin-bottom:8px}.book-detail textarea{width:100%;box-sizing:border-box;font:inherit;border:1px solid #b5a88c;border-radius:8px;background:#fffdf5;padding:10px;resize:vertical}.book-detail .local-note{font-size:13px}.book-detail a{color:#3f6b7d}.essay-cover{display:grid;place-items:center;height:145px;background:#ead9b7;margin-bottom:10px}.magnet-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin:26px 0}.magnet{background:var(--magnet);padding:10px 7px 15px;border:1px solid #0002;border-radius:14px;color:#352e26;box-shadow:0 5px 0 #69513533;transform:rotate(-2deg);transition:transform .15s}.magnet:nth-child(even){transform:rotate(2deg)}.magnet:hover,.magnet:focus-visible{transform:translateY(-5px) rotate(0deg)}.magnet img{width:100%;height:105px;object-fit:contain}.magnet strong,.magnet span{display:block}.magnet strong{font-size:15px}.magnet span{font-size:12px;margin-top:5px}.memory-note{border-top:1px solid #ccbea3;padding-top:20px;min-height:130px}.memory-note small{color:#7d6e58}#visit-cursor{position:fixed;z-index:100;pointer-events:none;background:#514938;color:#fff3d3;border-radius:20px;padding:8px 15px;font-size:14px;box-shadow:0 3px 10px #0002}.wardrobe-layout{display:grid;grid-template-columns:1fr 1fr;gap:24px}.wardrobe-ui{width:min(600px,calc(100vw - 40px))!important}#outfit-preview{border-radius:120px 120px 18px 18px;background:#eddfc4;min-height:310px;overflow:hidden;align-self:start}#outfit-preview canvas{display:block;width:100%;height:auto}.inventory fieldset{border:0;padding:0;margin:15px 0}.inventory legend{font-size:14px;margin-bottom:8px}.swatch{display:block;width:100%;text-align:left;padding:9px 10px 9px 34px;margin-bottom:6px;border:1px solid #cbbda1;border-radius:8px;background:linear-gradient(90deg,var(--swatch) 24px,#fff8e9 24px);color:#453c31;font-size:14px}.swatch[aria-pressed=true]{outline:2px solid #896c3e;outline-offset:0}.outfit-toggle{font-size:14px;display:block;margin:20px 0}.laptop-ui{width:min(560px,calc(100vw - 40px))!important;background:#d8e3e0!important;border:7px solid #6b7777!important;border-bottom-width:15px!important}.desktop-bar{display:flex;justify-content:space-between;font-size:13px;border-bottom:1px solid #748c8540;padding:12px 0}.desktop-apps{display:flex;gap:32px;padding:35px 12px 65px}.desktop-apps button{background:none;border:0;color:#3c514e;font-size:15px;display:grid;gap:10px;justify-items:center}.app-mark{display:grid;place-items:center;width:64px;height:57px;border-radius:12px;background:#fff4d8;box-shadow:0 3px 0 #526e7133;font-size:29px}.desktop-message{font-size:14px;color:#586e66}.pose-hint{position:fixed;bottom:60px;left:50%;transform:translateX(-50%);border-radius:30px;background:#fff5dded;padding:10px 18px;color:#554b3a;box-shadow:0 3px 16px #0001;font-size:14px;pointer-events:none}.pose-hint[hidden]{display:none}
@media(max-width:700px){dialog.experience{inset:95px 12px auto;width:calc(100vw - 24px);max-height:calc(100dvh - 225px);padding:20px;box-sizing:border-box}.library-layout{grid-template-columns:1fr}.book-detail{border-left:0;padding:0;border-top:1px solid #d9cdb7;padding-top:20px}.book-pick img{height:115px}.magnet-grid{grid-template-columns:repeat(2,1fr)}.wardrobe-layout{grid-template-columns:.85fr 1fr;gap:12px}#outfit-preview{min-height:200px}.swatch{font-size:13px}.pose-hint{bottom:145px;white-space:nowrap}.wardrobe-ui,.laptop-ui{width:calc(100vw - 24px)!important}}
@media(prefers-reduced-motion:reduce){.magnet{transition:none;transform:none!important}}
.book-pick[data-book=things] img{object-fit:cover;clip-path:inset(0);object-position:center;scale:1}
dialog.experience.photo-memory{width:min(450px,calc(100vw - 40px));inset:85px 24px auto auto;max-height:calc(100dvh - 115px);padding:24px;background:#f6efdf}
.travel-print{margin:20px 0 16px;padding:10px 10px 15px;background:#fffdf5;border:1px solid #e1d7c2;box-shadow:0 5px 18px #66503915;border-radius:3px}
.travel-print img{display:block;width:100%;height:auto;max-height:54dvh;object-fit:contain;background:#e6e0d3}
.travel-print figcaption{padding-top:14px;text-align:center;font-size:15px;font-style:italic;color:#6c6758}
@media(max-width:700px){dialog.experience.photo-memory{inset:90px 12px auto;width:calc(100vw - 24px);max-height:calc(100dvh - 220px);padding:20px}.travel-print img{max-height:34dvh}}
body:has(dialog[open]) #interact{display:none}.pose-hint{z-index:2}body:has(.pose-hint:not([hidden])) #interact{bottom:105px}
@media(max-width:700px){body:has(.pose-hint:not([hidden])) #interact{bottom:185px}}
