*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;height:100%}img,svg,canvas{max-width:100%;display:block}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}a{color:inherit;text-decoration:none}:root{--color-bg:#f5f2ed;--color-bg-alt:#ede9e3;--color-text:#1a1a1a;--color-gray:#8c8c8c;--color-grid:#d6d2cc;--color-accent:#c4714a;--color-accent-light:#d4916e;--font-body:"Inter", "Helvetica Neue", sans-serif;--font-mono:"IBM Plex Mono", monospace;--space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:2rem;--space-xl:4rem;--ease-default:cubic-bezier(.4, 0, .2, 1);--duration-fast:.2s;--duration-normal:.5s;--duration-slow:1.2s}body{font-family:var(--font-body);color:var(--color-text);background-color:var(--color-bg);background-image:linear-gradient(var(--color-grid) 1px, transparent 1px), linear-gradient(90deg, var(--color-grid) 1px, transparent 1px);background-position:50%;background-size:40px 40px;overflow:hidden}#app{width:100%;height:100dvh;position:relative;overflow:hidden}.screen{padding:var(--space-lg);opacity:1;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.screen.entering{animation:screenFadeIn var(--duration-normal) var(--ease-default) both}.screen.exiting{animation:screenFadeOut var(--duration-normal) var(--ease-default) both}@keyframes screenFadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes screenFadeOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-20px)}}.label{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--color-gray);font-size:.75rem;font-weight:300}.btn-accent{font-family:var(--font-mono);letter-spacing:.05em;border:2px solid var(--color-accent);color:var(--color-accent);transition:background var(--duration-fast) var(--ease-default), color var(--duration-fast) var(--ease-default), transform .15s ease, box-shadow .2s ease;background:0 0;border-radius:3px;padding:.75rem 2rem;font-size:.875rem;font-weight:500;position:relative;overflow:hidden}.btn-accent:hover{background:var(--color-accent);color:#fff;box-shadow:0 0 16px #c4714a33}.btn-accent:active{transform:scale(.96)}.btn-accent--filled{background:var(--color-accent);color:#fff}.btn-accent--filled:hover{background:var(--color-accent-light);border-color:var(--color-accent-light)}.mute-btn{top:var(--space-md);right:var(--space-md);z-index:100;border:1.5px solid var(--color-grid);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);width:36px;height:36px;color:var(--color-accent);cursor:pointer;opacity:.6;background:#f5f2edcc;border-radius:50%;justify-content:center;align-items:center;font-size:1rem;transition:border-color .2s,opacity .2s;display:flex;position:fixed}.mute-btn:hover{opacity:1;border-color:var(--color-accent)}.mute-btn--muted{opacity:.4;color:var(--color-gray)}@media (pointer:fine){body{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20'%3E%3Ccircle cx='10' cy='10' r='4' fill='none' stroke='%23C4714A' stroke-width='1.5'/%3E%3Ccircle cx='10' cy='10' r='1' fill='%23C4714A'/%3E%3C/svg%3E") 10 10,auto}.btn-accent,.token,button{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20'%3E%3Ccircle cx='10' cy='10' r='6' fill='none' stroke='%23C4714A' stroke-width='1.5'/%3E%3Ccircle cx='10' cy='10' r='2' fill='%23C4714A'/%3E%3C/svg%3E") 10 10,pointer}}.spoiler-mode .narration-text,.spoiler-mode .narration-sentence,.spoiler-mode .final-buildup-line,.spoiler-mode .final-question,.spoiler-mode .final-message p{filter:blur(5px);-webkit-user-select:none;user-select:none;transition:filter .3s}@keyframes lineDraw{to{stroke-dashoffset:0}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:.6}50%{opacity:1}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}
