:root{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:#fff6e8;font-synthesis:none;color-scheme:light}
*{box-sizing:border-box}body{margin:0;background:#483527}button,input{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible,canvas:focus-visible{outline:2px solid #fff6d8;outline-offset:5px}button{transition:background .18s,transform .18s}button:active{transform:scale(.97)}
#experience{position:relative;isolation:isolate;width:100%;height:100svh;min-height:min(420px,100svh);overflow:hidden}
.home{position:absolute;user-select:none;pointer-events:none}
.vignette{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,rgba(32,22,13,.30),transparent 22%,transparent 78%,rgba(35,23,15,.35))}
.stage{visibility:hidden;position:absolute;inset:0;isolation:isolate;touch-action:none}.stage canvas{position:absolute;inset:0;width:100%;height:100%}#toy{z-index:2;touch-action:none;outline-offset:-7px}#toy.pointer-focus:focus-visible{outline:none}#toy.is-over{cursor:grab}#toy.is-grabbing{cursor:grabbing}#effects{z-index:3;pointer-events:none}
#foreground{z-index:4;pointer-events:none}.ground-shadows{pointer-events:none;z-index:1}
.topbar{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:max(27px,env(safe-area-inset-top)) 34px;gap:20px;pointer-events:none;z-index:5}.brand{filter:drop-shadow(0 2px 8px #301e1460)}.brand>span{font-size:11px;letter-spacing:.27em;font-weight:600}.brand h1{font-size:19px;font-weight:500;margin:8px 0 0;letter-spacing:.12em}.header-actions{display:flex;align-items:center;gap:9px;pointer-events:auto}.round-control{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid #fff3d63b;border-radius:24px;padding:10px 14px;min-height:43px;background:#35291b3d;backdrop-filter:blur(18px);color:#fff5e8;font-size:12px;box-shadow:0 4px 16px #2c1c100b}.round-control:hover{background:#59412c8f}.control-symbol{font-size:21px;line-height:1}.sound-symbol{font-size:17px;line-height:1}
.loading{position:absolute;left:50%;top:46%;transform:translate(-50%,-50%);padding:17px 24px;border-radius:18px;background:#fff7e9e8;color:#69513a;z-index:4;white-space:nowrap;font-size:14px}.loading[hidden]{display:none}
.speech{position:absolute;left:50%;top:18%;max-width:75%;margin:0;padding:11px 19px;transform:translate(-50%,-100%);border:1px solid #fffaf364;border-radius:18px 18px 18px 4px;background:#fffaf0d9;color:#796048;font-size:13px;box-shadow:0 8px 35px #47301e10;pointer-events:none;opacity:0;transition:opacity .2s,translate .2s;z-index:4;text-align:center;backdrop-filter:blur(12px)}.speech.reaction{opacity:1;translate:0 -4px}.speech.airborne{opacity:0}
.play-controls{position:absolute;bottom:max(27px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);z-index:5;display:flex;flex-direction:column;align-items:center;gap:13px;width:max-content;max-width:calc(100% - 32px)}.gesture-hint{margin:0;font-size:12px;letter-spacing:.025em;text-shadow:0 1px 7px #3d241dc9;line-height:1.6;text-align:center;pointer-events:none}.tools{display:flex;gap:5px;padding:6px;border:1px solid #fff2d966;background:#fff7e2be;backdrop-filter:blur(22px);border-radius:40px;box-shadow:0 8px 40px #3c261833}.tool{border:0;border-radius:30px;background:transparent;color:#745b41;display:flex;align-items:center;justify-content:center;gap:10px;padding:13px 22px;min-height:48px;font-size:13px;white-space:nowrap}.tool:hover{background:#fff9ed9e}.tool.active{color:#fff8ec;background:#7a6248;box-shadow:0 2px 10px #72513526}.mode-icon{font-size:23px;line-height:1;font-family:Georgia,serif;font-weight:400}.edition{position:absolute;bottom:32px;left:34px;opacity:.6;letter-spacing:.16em;font-size:9px;pointer-events:none}
@media(max-width:850px){.edition{display:none}.topbar{padding:23px 22px}.tool{padding:13px 18px}.speech{font-size:12px}}
@media(max-width:600px){#experience{min-height:min(440px,100svh)}.topbar{padding:max(21px,env(safe-area-inset-top)) 18px}.brand>span{font-size:9px;letter-spacing:.19em}.brand h1{font-size:16px;margin-top:7px}.header-actions{gap:6px}.round-control{width:39px;min-height:39px;padding:8px}.control-text{display:none}.play-controls{bottom:max(24px,env(safe-area-inset-bottom));gap:14px;max-width:calc(100% - 24px)}.tools{gap:3px;padding:5px;border-radius:23px}.tool{flex-direction:column;gap:7px;padding:10px 15px;min-width:73px;min-height:67px;font-size:12px;border-radius:18px}.mode-icon{font-size:22px}.gesture-hint{font-size:11px;max-width:calc(100vw - 40px)}.speech{max-width:85%;width:max-content}}
@media(max-height:550px) and (min-width:601px){.topbar{padding:15px 24px}.brand h1{font-size:15px}.brand>span{font-size:9px}.play-controls{bottom:14px;gap:6px}.tool{padding:9px 18px;min-height:39px}.gesture-hint{display:none}.edition{display:none}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

.scene-ready .stage{visibility:visible}

:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
html,body{width:100%;height:100%;overflow:hidden;overscroll-behavior:none}
body{background:#372b23;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
#play-viewport{position:fixed;inset:0;width:100%;height:100%;height:100dvh;overflow:hidden;touch-action:none}
#experience{position:absolute;left:0;top:0;min-height:0;transform-origin:0 0;touch-action:none;
  --safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);
  --safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px)}
#experience.rotated{--safe-top:env(safe-area-inset-right,0px);--safe-right:env(safe-area-inset-bottom,0px);
  --safe-bottom:env(safe-area-inset-left,0px);--safe-left:env(safe-area-inset-top,0px)}
.stage{inset:auto;left:0;top:0;transform-origin:0 0}
.topbar{padding:max(22px,var(--safe-top)) max(10px,var(--safe-right)) 0 max(28px,var(--safe-left));align-items:flex-start}
.brand{pointer-events:auto;text-decoration:none;color:#fff6e8;min-height:44px;display:block}
.brand .wordmark{font-size:25px;font-weight:700;letter-spacing:-1px;line-height:1.1}
.wordmark i{font-style:normal;color:#f1d4a0;margin-left:5px}
.brand h1{font-size:11px;letter-spacing:.04em;margin-top:8px;font-weight:400;opacity:.85}
.round-control svg,.edge-link svg,.tool svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.round-control{width:44px;min-height:44px;padding:10px;font-size:11px;background:#49352380;backdrop-filter:blur(12px)}
.round-control[aria-pressed="false"]{opacity:.65}
.control-text{display:none}
.play-controls{left:auto;right:max(10px,var(--safe-right));top:50%;bottom:auto;transform:translateY(-50%);width:64px;max-width:none;gap:0}
.tools{width:100%;flex-direction:column;gap:9px;padding:0;background:none;border:0;box-shadow:none;border-radius:0;backdrop-filter:none}
.tool{width:100%;min-width:0;min-height:64px;padding:9px 4px;flex-direction:column;gap:5px;font-size:11px;border-radius:19px;
  border:1px solid #fff4dd99;background:#fff5e2d9;color:#70583f;backdrop-filter:blur(14px);box-shadow:0 3px 14px #42261518}
.tool svg{width:22px;height:22px}
.tool:hover{background:#fff9ed}
.tool.active{color:#fff8ec;background:#71583de8;border-color:#ffe8bd80;box-shadow:0 3px 16px #42261533}
.gesture-hint{position:absolute;z-index:5;left:50%;bottom:max(18px,var(--safe-bottom));transform:translateX(-50%);margin:0;
  font-size:11px;font-weight:400;letter-spacing:.01em;max-width:60%;pointer-events:none}
.edge-link{position:absolute;z-index:5;bottom:max(10px,var(--safe-bottom));display:flex;gap:7px;align-items:center;min-height:44px;
  color:#fff5e5;font-size:11px;text-decoration:none;background:none;border:0;padding:6px;text-shadow:0 1px 10px #302015}
.edge-link:hover{text-decoration:underline;text-underline-offset:5px}
.fullscreen{left:max(22px,var(--safe-left))}
.stay-link{right:max(8px,var(--safe-right))}
.edge-link>span[aria-hidden]{font-size:19px}
.edge-link[hidden]{display:none}
#experience.compact .topbar{padding:max(8px,var(--safe-top)) max(8px,var(--safe-right)) 0 max(16px,var(--safe-left))}
#experience.compact .brand .wordmark{font-size:21px}
#experience.compact .brand h1{font-size:10px;margin-top:5px}
#experience.compact .play-controls{right:max(8px,var(--safe-right));width:54px}
#experience.compact .tools{gap:7px}
#experience.compact .tool{min-height:54px;padding:6px 3px;gap:4px;font-size:10px;border-radius:16px}
#experience.compact .tool svg{width:20px;height:20px}
#experience.compact .gesture-hint{display:none}
#experience.compact .edge-link{bottom:max(4px,var(--safe-bottom));font-size:10px}
#experience.compact .fullscreen{left:max(9px,var(--safe-left));width:44px;justify-content:center}
#experience.compact .fullscreen span{display:none}
#experience.compact .stay-link{right:max(7px,var(--safe-right))}
#experience.short .play-controls{top:calc(50% + 10px)}
#experience.short .tools{gap:4px}
#experience.short .tool{min-height:44px;padding:4px 3px;gap:2px;font-size:9px;border-radius:13px}
#experience.short .tool svg{width:17px;height:17px}
#experience.short .stay-link{right:auto;left:calc(max(9px,var(--safe-left)) + 52px)}
#soft-shadow{display:none;position:absolute;left:0;top:0;z-index:1;pointer-events:none;transform-origin:center;
  background:radial-gradient(ellipse closest-side,#4a301e88 0%,#593b285c 35%,#61442b24 67%,#61442b00 100%)}
.mobile-performance #soft-shadow{display:block}
.mobile-performance #shadow,.mobile-performance #effects{display:none}
.mobile-performance .round-control,.mobile-performance .tool{backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none}
.mobile-performance .brand{filter:none}
@font-face{font-family:Delius;src:url('/assets/delius-regular.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
.brand-logo{display:block;width:150px;height:auto;max-width:none}
.brand h1{margin-top:0;margin-left:6px;font-family:Delius,sans-serif}
.stay-link{width:144px;min-height:90px;padding:0;background:none;display:block;text-shadow:none;right:max(8px,var(--safe-right));transition:transform .16s ease}
.stay-link img{display:block;width:100%;height:auto;pointer-events:none}
.stay-link:hover{text-decoration:none}
@media(hover:hover) and (pointer:fine){.stay-link:hover{transform:translateY(-2px) scale(1.015)}}
.stay-link:active{transform:translateY(2px) scale(.97)}
#experience.compact .brand-logo{width:115px}
#experience.compact .brand h1{font-size:10px;margin-top:0}
#experience.compact .stay-link{width:108px;min-height:68px;bottom:max(3px,var(--safe-bottom));right:max(5px,var(--safe-right))}
#experience.short .stay-link{left:calc(max(9px,var(--safe-left)) + 52px);right:auto}
@media(prefers-reduced-motion:reduce){.stay-link{transition:none}}

.character-controls{position:absolute;z-index:6;left:max(18px,var(--safe-left));top:50%;transform:translateY(-50%);
  display:flex;flex-direction:column;gap:10px;width:70px}
.character-card{position:relative;display:grid;place-items:center;width:100%;aspect-ratio:1;height:auto;flex:none;padding:0;
  border:4px solid #a77a49;border-radius:24px;background:#e8cdaa;
  box-shadow:inset 0 0 0 2px #f9e9c9,0 2px 0 #66492d;
  transition:transform .16s ease;touch-action:manipulation}
.character-card img{display:block;width:100%;height:100%;object-fit:contain;max-width:none;pointer-events:none;user-select:none}
.character-card[aria-pressed="true"]{border-color:#f8e6a9;background:#f3e3bb;box-shadow:inset 0 0 0 2px #b89455,0 0 0 2px #77894d,0 2px 0 #5e4e2f}
.character-card[aria-busy="true"]{border-color:#d0bd8d}
.selection-mark{position:absolute;right:-4px;bottom:-4px;display:none;align-items:center;justify-content:center;
  width:18px;height:18px;border-radius:50%;background:#687b47;color:#fff4da;border:1px solid #f4d797;font-size:12px;line-height:1;pointer-events:none}
.character-card[aria-pressed="true"] .selection-mark{display:flex}
@media(hover:hover) and (pointer:fine){.character-card:hover{transform:translateX(2px)}}
.character-card:active{transform:scale(.96)}
.character-card:focus-visible{outline:2px solid #fff2c7;outline-offset:4px}
.character-status{position:absolute;left:0;bottom:0;width:1px;height:1px;padding:0;margin:0;overflow:hidden;clip-path:inset(50%)}
.character-status.is-error{left:50%;bottom:16px;transform:translateX(-50%);width:max-content;max-width:55%;height:auto;
  padding:9px 14px;clip-path:none;border-radius:12px;background:#fff3dfee;color:#654529;font:12px Delius,sans-serif;z-index:7}
#experience.compact .character-controls{left:max(8px,var(--safe-left));width:52px;gap:8px}
#experience.compact .character-card{border-width:3px;border-radius:18px}
#experience.compact .selection-mark{width:14px;height:14px;font-size:10px;right:-3px;bottom:-3px}
#experience.short .character-controls{width:44px;gap:5px;top:calc(50% + 8px)}
#experience.short .character-card{border-radius:15px}
#experience.short .brand-logo{width:88px}
#experience.short .brand h1{display:none}
#experience.short .play-controls{top:calc(50% - 8px)}
#experience.short .fullscreen{display:none}
#experience.short .stay-link{left:auto;right:max(5px,var(--safe-right));width:88px;min-height:55px}
