:root{--sand: #c9a86a;--sand-dim: #a08050;--ink: #f2e8d8;--ink-dim: rgba(242, 232, 216, .62);--bg: #120d0a;--serif-cn: "Noto Serif SC", "Songti SC", serif;--serif-en: "Cormorant Garamond", Georgia, serif}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;overflow:hidden;overscroll-behavior:none}body{background:var(--bg);color:var(--ink);font-family:var(--serif-cn);-webkit-font-smoothing:antialiased;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}.stage{position:fixed;top:0;right:0;bottom:0;left:0;touch-action:none}.veil{position:fixed;top:0;right:0;bottom:0;left:0;background:#000;z-index:40;pointer-events:none;transition:opacity 2.4s ease}.veil.lifted{opacity:0}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;pointer-events:none;display:flex;flex-direction:column;align-items:center}.guidance{position:absolute;top:16%;width:100%;text-align:center;padding:0 24px;font-size:clamp(17px,2.6vw,23px);font-weight:400;letter-spacing:.14em;line-height:2.1;color:var(--ink);text-shadow:0 1px 18px rgba(0,0,0,.55);opacity:0;transition:opacity 1.6s ease}.guidance.on{opacity:.92}.guidance.weak{top:26%;opacity:0;font-size:clamp(15px,2.2vw,19px)}.guidance.weak.on{opacity:.55}.hint-release{position:absolute;bottom:22%;width:100%;text-align:center;font-size:clamp(16px,2.4vw,21px);letter-spacing:.5em;text-indent:.5em;color:var(--sand);text-shadow:0 0 22px rgba(255,190,110,.45);opacity:0;transition:opacity .9s ease}.hint-release.on{opacity:.85}.result{position:absolute;bottom:12%;width:100%;text-align:center;opacity:0;transition:opacity 2s ease;pointer-events:none}.result.on{opacity:1}.result .name{font-family:var(--serif-en);font-size:clamp(26px,4.4vw,40px);font-weight:500;font-style:italic;letter-spacing:.28em;color:var(--sand);text-shadow:0 0 26px rgba(0,0,0,.6)}.result .answer{margin-top:6px;font-size:clamp(30px,5.4vw,48px);font-weight:600;letter-spacing:.3em;text-indent:.3em;text-shadow:0 2px 24px rgba(0,0,0,.65)}.result .note{margin-top:14px;font-size:13px;letter-spacing:.12em;color:var(--ink-dim)}.result .closing{margin-top:18px;font-size:clamp(14px,2vw,16px);line-height:2;letter-spacing:.16em;color:var(--ink-dim)}.result .restraint{margin-top:10px;font-size:13px;letter-spacing:.14em;color:#c9a86abf}.actions{position:absolute;bottom:4.5%;width:100%;display:flex;justify-content:center;gap:28px;opacity:0;transition:opacity 1.4s ease;pointer-events:none}.actions.on{opacity:1;pointer-events:auto}button.ghost{pointer-events:auto;min-height:44px;min-width:44px;padding:10px 22px;background:transparent;border:1px solid rgba(201,168,106,.4);border-radius:2px;color:var(--ink-dim);font-family:var(--serif-cn);font-size:14px;letter-spacing:.2em;text-indent:.2em;cursor:pointer;transition:color .5s,border-color .5s,background .5s}button.ghost:hover,button.ghost:focus-visible{color:var(--ink);border-color:var(--sand);background:#c9a86a14;outline:none}button.ghost.primary{color:var(--ink-dim)}.top-controls{position:fixed;top:max(14px,env(safe-area-inset-top));right:18px;z-index:30;display:flex;gap:10px}.top-controls button{min-width:44px;min-height:44px;background:transparent;border:none;color:#f2e8d866;font-family:var(--serif-cn);font-size:13px;letter-spacing:.15em;cursor:pointer;transition:color .4s}.top-controls button:hover,.top-controls button:focus-visible{color:var(--ink);outline:none}.about-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#060403b8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;animation:fadein .5s ease}@keyframes fadein{0%{opacity:0}}.about-panel{width:min(520px,calc(100vw - 40px));max-height:80vh;overflow-y:auto;background:#1a120c;border:1px solid rgba(201,168,106,.28);padding:36px 34px 28px}.about-panel h2{font-family:var(--serif-en);font-style:italic;font-weight:500;font-size:24px;letter-spacing:.16em;color:var(--sand);margin-bottom:20px}.about-panel h3{font-size:14px;font-weight:600;letter-spacing:.2em;color:var(--ink);margin:20px 0 8px}.about-panel p{font-size:13px;line-height:2;letter-spacing:.08em;color:var(--ink-dim)}.about-panel label{display:flex;align-items:center;gap:10px;margin-top:10px;font-size:13px;letter-spacing:.1em;color:var(--ink-dim);cursor:pointer;min-height:44px}.about-panel .close-row{margin-top:26px;text-align:center}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.fallback{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;background:radial-gradient(120% 60% at 50% 108%,#7a5230 0%,transparent 60%),linear-gradient(to top,#d08d52,#5a3a44 34%,#181228 78%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:34px;padding:24px;text-align:center}.fallback .dune{position:absolute;bottom:-12vh;width:130vw;height:34vh;border-radius:50% 50% 0 0;background:#2c1c26}.fallback .dune.far{bottom:-6vh;left:-30vw;height:26vh;background:#3a2530}.fallback .fb-note{position:relative;font-size:12px;letter-spacing:.15em;color:#f2e8d873}.fallback .fb-guide{position:relative;font-size:clamp(16px,4vw,20px);letter-spacing:.14em;line-height:2.1}.fallback .fb-bag{position:relative;background:none;border:none;cursor:pointer;transition:transform .4s ease}.fallback .fb-bag:hover{transform:scale(1.04)}.fallback .fb-stone{position:relative;width:110px;height:96px;border-radius:46% 54% 52% 48%/55% 48% 52% 45%;animation:fadein 2.2s ease}.fallback .fb-stone.yes{background:radial-gradient(circle at 34% 30%,#3a3244,#0d0a10 62%);box-shadow:0 0 42px #ff944059}.fallback .fb-stone.no{background:radial-gradient(circle at 34% 30%,#fff,#d9d2c0 70%);box-shadow:0 0 42px #a9bcff66}.fallback .fb-result .name{font-family:var(--serif-en);font-style:italic;font-size:30px;letter-spacing:.26em;color:var(--sand)}.fallback .fb-result .answer{font-size:38px;font-weight:600;letter-spacing:.3em;text-indent:.3em;margin-top:4px}.fallback .fb-privacy{position:relative;font-size:12px;line-height:1.9;letter-spacing:.1em;color:#f2e8d866}@media (prefers-reduced-motion: reduce){.veil{transition-duration:.4s}.guidance,.result,.actions{transition-duration:.3s}}
