:root{--paper:#fbf6ea;--paper-2:#f2ead7;--ink:#2f3a2c;--ink-soft:#55604f;--teal:#2f6f6a;--teal-dark:#24564f;--line:#d9ccb0;--focus:#1a5fb4;--shadow:0 10px 30px #282e1e38;--font:ui-rounded, "SF Pro Rounded", "Nunito", "Segoe UI", system-ui, sans-serif;--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)}*{box-sizing:border-box}html,body{height:100%;color:var(--ink);font-family:var(--font);background:#cfdcd2;margin:0;overflow:hidden}html,body,.scroll-menu,.loading{touch-action:pan-y}body.game-playing,body.game-playing #game,body.game-playing #hud,body.game-playing #scene{touch-action:none}button,a,input,select,summary,label{touch-action:manipulation}html.page-zoomed,html.page-zoomed body,html.page-zoomed body *{touch-action:pan-x pan-y pinch-zoom!important}#game{-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;position:fixed;inset:0;overflow:hidden}#scene{outline:none;width:100%;height:100%;display:block;position:absolute;inset:0}.hidden{display:none!important}button{font:inherit;color:inherit;cursor:pointer}:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.primary,.secondary{border:2px solid var(--teal-dark);border-radius:999px;min-height:48px;padding:.8rem 1.4rem;font-size:1.05rem;font-weight:700}.primary{background:var(--teal);color:#fff;box-shadow:0 3px 0 var(--teal-dark)}.primary:disabled{box-shadow:none;cursor:progress;background:#8aa7a2;border-color:#7b958f}.secondary{background:var(--paper);color:var(--teal-dark)}.primary:active,.secondary:active{transform:translateY(2px)}.panel{overscroll-behavior:contain;padding:calc(16px + var(--safe-top)) calc(16px + var(--safe-right)) calc(16px + var(--safe-bottom)) calc(16px + var(--safe-left));z-index:20;background:radial-gradient(circle at 50% 40%,#fbf6ea33,#2f3a2c73);place-items:center;display:grid;position:absolute;inset:0;overflow-y:auto}.card{background:var(--paper);width:min(560px,100%);box-shadow:var(--shadow);border:1px solid var(--line);border-radius:22px;padding:26px 28px;font-size:1.05rem;line-height:1.5}.card.small{width:min(440px,100%)}.card h1{letter-spacing:-.01em;color:var(--teal-dark);margin:.1rem 0 .6rem;font-size:clamp(2.2rem,7vw,3.2rem)}.card h2{color:var(--teal-dark);margin:0 0 .8rem;font-size:1.6rem}.eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);font-size:.78rem;font-weight:700}.how{gap:.6rem;margin:1rem 0;padding:0;list-style:none;display:grid}.how li{grid-template-columns:5.2rem 1fr;align-items:baseline;gap:.6rem;display:grid}.how b{color:var(--teal-dark)}.note{color:var(--ink-soft);font-size:.95rem}.actions{flex-wrap:wrap;gap:.7rem;margin-top:1rem;display:flex}.actions.column{flex-direction:column}.actions.column>button{width:100%}.hint-text{background:var(--paper-2);border-radius:12px;margin:.8rem 0 0;padding:.7rem .9rem}.hint-text:empty{display:none}.noticed{border-top:1px solid var(--line);margin-top:1rem;padding-top:.7rem}.noticed summary{cursor:pointer;color:var(--teal-dark);min-height:32px;font-weight:700}.noticed ul{margin:.5rem 0 0;padding-left:1.2rem}.muted{color:var(--ink-soft);margin-left:-1.2rem;list-style:none}.settings .row{align-items:center;gap:.8rem;min-height:40px;margin:.7rem 0;display:flex}.settings .row input[type=range]{accent-color:var(--teal);flex:1;min-height:32px}.settings fieldset{border:1px solid var(--line);border-radius:14px;margin:.8rem 0;padding:.5rem .9rem .7rem}.settings legend{color:var(--teal-dark);padding:0 .3rem;font-weight:700}.settings .check{align-items:center;gap:.6rem;min-height:40px;display:flex}.settings input[type=checkbox],.settings input[type=radio]{width:22px;height:22px;accent-color:var(--teal)}.loading{left:50%;bottom:calc(24px + var(--safe-bottom));background:var(--paper);z-index:30;box-shadow:var(--shadow);border-radius:999px;padding:.6rem 1rem;font-weight:700;position:absolute;transform:translate(-50%)}.loading span{background:var(--teal);border-radius:50%;width:.7rem;height:.7rem;margin-right:.4rem;animation:1s ease-in-out infinite alternate pulse;display:inline-block}@keyframes pulse{0%{opacity:.3}to{opacity:1}}.error{color:#6a2b18;z-index:40;background:#fff1ec;border-radius:12px;padding:1rem;position:absolute;inset:auto 16px 16px}.zoom-recovery{display:none}html.page-zoomed .zoom-recovery{z-index:50;background:var(--paper);border:2px solid var(--teal);box-shadow:var(--shadow);text-align:center;border-radius:14px;gap:.3rem;padding:.8rem 1rem;display:grid;position:fixed;top:16px;left:50%;transform:translate(-50%)}.hud{pointer-events:none;z-index:10;position:absolute;inset:0}.hud>*{pointer-events:auto}.hud-top{top:calc(12px + var(--safe-top));left:calc(16px + var(--safe-left));right:calc(16px + var(--safe-right));pointer-events:none;justify-content:space-between;align-items:flex-start;transition:opacity .3s;display:flex;position:absolute}.hud-top>*{pointer-events:auto}.goal{background:#fbf6eaeb;border-radius:999px;align-items:center;gap:.5rem;padding:.45rem .9rem;font-weight:700;display:flex;box-shadow:0 3px 12px #0000001f}.goal-dot{background:#c95a2c;border-radius:50%;width:.65rem;height:.65rem}.icon-button{border:2px solid var(--line);background:var(--paper);border-radius:50%;place-items:center;width:52px;height:52px;display:grid;box-shadow:0 3px 12px #00000026}.icon-button svg{width:24px;height:24px}.notice-veil{pointer-events:none;opacity:0;background:radial-gradient(62% 58% at 50% 52%,#0000 55%,#1426226b 100%);position:absolute;inset:0}.captions{pointer-events:none;z-index:1;position:absolute;inset:0}.caption{color:var(--ink);border:2px solid var(--line);white-space:nowrap;background:#fbf6eaf2;border-radius:999px;align-items:center;gap:.45rem;padding:.4rem .8rem .4rem .5rem;font-size:.98rem;font-weight:700;transition:opacity .5s;display:flex;position:absolute;transform:translate(-50%,-50%);box-shadow:0 3px 14px #0000002e}.caption.faint{opacity:.82;font-weight:600}.caption.notice{border-color:var(--teal)}.caption .arrow{background:var(--teal);color:#fff;border-radius:50%;flex:none;place-items:center;width:1.5rem;height:1.5rem;font-size:.9rem;display:grid}.caption .dist{color:var(--ink-soft);font-weight:600}.thought{background:#fffffff0;border:2px dashed #b9c3b4;border-radius:26px;width:min(360px,100% - 32px);padding:.8rem 2.4rem .8rem 1.1rem;transition:opacity .4s,transform .6s;position:absolute;top:22%;left:50%;transform:translate(-50%);box-shadow:0 6px 22px #1e281e2e}.thought:after{content:"";background:#ffffffe6;border:2px dashed #b9c3b4;border-radius:50%;width:14px;height:14px;position:absolute;bottom:-16px;left:50%}.thought-feeling{margin-bottom:.2rem}.chip{letter-spacing:.04em;color:#6a5a8c;background:#efeaf7;border-radius:999px;padding:.1rem .55rem;font-size:.78rem;font-weight:700;display:inline-block}.thought-text{margin:0;font-size:1.12rem;font-style:italic;line-height:1.35}.thought.noticed .thought-text{color:var(--teal-dark);font-style:normal}.thought.noticed{border-style:solid;border-color:#9ec1b8}.thought.drift{transform:translate(-50%,-26px);opacity:0!important}.thought.side{transition:opacity .4s;transform:translate(-100%,-100%)}.thought.side:after{bottom:-12px;left:auto;right:-14px}.thought.side.drift{transition:opacity .4s,transform .6s;transform:translate(-100%,calc(-100% - 26px))}.thought-close{width:36px;height:36px;color:var(--ink-soft);background:0 0;border:none;border-radius:50%;font-size:1.3rem;position:absolute;top:.45rem;right:.5rem}.labels{pointer-events:none;position:absolute;inset:0}.labels span{color:#2f3a2c;white-space:nowrap;background:#ffffffb8;border-radius:999px;padding:.1rem .5rem;font-size:.9rem;font-style:italic;transition:opacity .8s;position:absolute;transform:translate(-50%,-100%)}.line{left:50%;bottom:calc(150px + var(--safe-bottom));text-align:center;opacity:0;pointer-events:none;background:#fbf6eaf2;border-radius:14px;max-width:min(520px,100% - 32px);padding:.55rem .9rem;font-weight:600;transition:opacity .4s;position:absolute;transform:translate(-50%);box-shadow:0 3px 14px #00000026}.line.show{opacity:1}.discovery{left:calc(16px + var(--safe-left));top:calc(76px + var(--safe-top));background:var(--paper);width:min(320px,100% - 32px);box-shadow:var(--shadow);border-left:6px solid var(--teal);border-radius:16px;gap:.15rem;padding:.7rem .9rem;display:grid;position:absolute}.dialogue{left:50%;bottom:calc(150px + var(--safe-bottom));background:var(--paper);width:min(520px,100% - 32px);box-shadow:var(--shadow);border:2px solid var(--line);z-index:2;border-radius:18px;padding:.9rem 1.1rem;position:absolute;transform:translate(-50%)}.dialogue-name{color:var(--teal-dark);font-weight:800}.dialogue p{margin:.3rem 0 .6rem}.dialogue-actions{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;display:flex}.dialogue-actions button{min-height:44px;padding:.5rem 1rem;font-size:1rem}.dialogue-actions .choice kbd{font:inherit;opacity:.7;margin-right:.2rem;font-size:.8rem;font-weight:800}@media (pointer:coarse){.dialogue-actions .choice kbd{display:none}}.prompt{left:50%;bottom:calc(96px + var(--safe-bottom));color:#fff;opacity:0;pointer-events:none;white-space:nowrap;background:#2f3a2ce0;border-radius:999px;align-items:center;gap:.5rem;padding:.45rem .9rem .45rem .45rem;font-weight:700;transition:opacity .2s;display:flex;position:absolute;transform:translate(-50%)}.prompt.show{opacity:1}.prompt kbd{color:var(--ink);font:inherit;background:#fff;border-radius:8px;padding:.1rem .5rem;font-weight:800}.stick{left:calc(18px + var(--safe-left));bottom:calc(18px + var(--safe-bottom));width:150px;height:150px;display:none;position:absolute}.stick-ring{background:#fbf6ea59;border:3px solid #fbf6eacc;border-radius:50%;position:absolute;inset:0}#knob{background:#fbf6eaf2;border-radius:50%;width:64px;height:64px;margin:-32px 0 0 -32px;position:absolute;top:50%;left:50%;box-shadow:0 3px 10px #0003}.stick.held .stick-ring{background:#fbf6ea80}.right-controls{right:calc(18px + var(--safe-right));bottom:calc(18px + var(--safe-bottom));pointer-events:none;align-items:flex-end;gap:12px;display:flex;position:absolute}.right-controls>*{pointer-events:auto}.notice-button{color:#fff;background:#2f6f6ae6;border:3px solid #fff;border-radius:50%;align-content:center;place-items:center;gap:0;width:112px;height:112px;font-size:1.05rem;font-weight:800;transition:background .3s,box-shadow .3s,transform .15s;display:grid;box-shadow:0 4px 16px #00000040}.notice-button svg{width:34px;height:34px}.notice-button small{opacity:.9;font-size:.75rem;font-weight:600}.notice-button.held,.notice-button[aria-pressed=true]{background:#2f6f6a;transform:scale(.97);box-shadow:0 0 0 6px #ffffff73,0 4px 16px #00000040}.action-button{min-width:84px;height:84px;color:var(--teal-dark);background:#fbf6eaf2;border:3px solid #fff;border-radius:42px;max-width:140px;padding:0 .8rem;font-size:.95rem;font-weight:800;line-height:1.15;box-shadow:0 4px 16px #0003}.action-button:disabled{opacity:.45}.keys.learned{transition:opacity 1.5s;opacity:0!important}@media (pointer:fine){.action-button{display:none}}.keys{left:50%;bottom:calc(12px + var(--safe-bottom));color:#fff;text-shadow:0 1px 3px #0009;white-space:nowrap;pointer-events:none;font-size:.85rem;transition:opacity .3s;position:absolute;transform:translate(-50%)}@media (pointer:coarse){.stick{display:block}.keys,.prompt{display:none}.line,.dialogue{bottom:calc(220px + var(--safe-bottom))}}@media (pointer:fine){.notice-button{width:92px;height:92px}.action-button{min-width:70px;height:70px}}@media (max-width:520px){.card{padding:20px 18px}.how li{grid-template-columns:1fr;gap:.1rem}.thought{top:16%}.notice-button{width:98px;height:98px}}.pull-veil{pointer-events:none;opacity:0;position:absolute;inset:0}.pull-veil.angry{background:radial-gradient(70% 65%,#d65c321a 25%,#8c221299 100%)}.pull-veil.worried{background:radial-gradient(48% 44%,#46505c26 15%,#222a36cc 100%)}.pull-veil.heavy{background:linear-gradient(#282e4acc,#343a5859 45%,#282e4abf)}.pull-veil.daydream{background:radial-gradient(70% 60%,#fff6dc4d,#ffeec8b8 100%)}.pull-word{transform-origin:50% 100%;opacity:0;pointer-events:none;white-space:nowrap;border-radius:999px;padding:.2rem .7rem;font-size:1rem;font-weight:800;position:absolute;top:0;left:0;box-shadow:0 4px 18px #0003}.pull-word.angry{color:#fff6ee;background:#962816e6}.pull-word.worried{color:#eef2f6;background:#303a48e6}.pull-word.heavy{color:#e8eaf6;background:#343a5ceb;font-weight:700}.pull-word.noticed{color:var(--teal-dark);white-space:normal;text-align:center;background:#fffffff0;border-radius:1rem;max-width:min(86vw,30rem);font-weight:600}.pull-word.daydream{color:#6a4a1c;background:#fff8e4f0;font-style:italic;font-weight:700;box-shadow:0 0 26px #ffe8aaf2}.notice-button.beckon{animation:1.5s ease-in-out infinite beckon}@keyframes beckon{0%,to{box-shadow:0 0 #ffffffb3,0 4px 16px #00000040}50%{box-shadow:0 0 0 14px #fff0,0 4px 16px #00000040}}html.reduce-motion .notice-button.beckon{animation:none;box-shadow:0 0 0 7px #ffffffbf,0 4px 16px #00000040}@media (prefers-reduced-motion:reduce){.thought,.caption,.line,.prompt{transition:none}.notice-button.beckon{animation:none;box-shadow:0 0 0 7px #ffffffbf,0 4px 16px #00000040}}html.reduce-motion .thought,html.reduce-motion .caption{transition:none}
