:root{--bg: #fafafb;--surface: #ffffff;--border: #e2e4e7;--border-strong: #e7e9eb;--text: #26282c;--text-dim: #7c8189;--text-on-ink: #adafb3;--ink-inverse: #ffffff;--accent: #8c5a18;--radio-idle: #d6d8db;--danger: #a3432f;--scrim: rgba(20, 22, 26, .32);--backdrop: rgba(0, 0, 0, .5);--float-shadow: 0 20px 50px rgba(0, 0, 0, .35);--goal-1: #8c5a18;--goal-2: #3f6b52;--goal-3: #3c5a8c;--goal-4: #8c3f52;--goal-5: #6b5a8c;--goal-6: #8c7a3f;--goal-unknown: #8a8580;--solid-face: #8c5a18;--solid-edge: #3e2408;--solid-shine: #d9a43f;--serif: "Instrument Serif", Georgia, "Iowan Old Style", "Times New Roman", serif;--sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;color-scheme:light}@media (prefers-color-scheme: dark){:root{--bg: #131416;--surface: #1c1e21;--border: #2b2e33;--border-strong: #3a3e44;--text: #e8e9ea;--text-dim: #9a9fa7;--text-on-ink: #6f7378;--ink-inverse: #131416;--accent: #d99a4e;--radio-idle: #4a4e55;--danger: #e0806c;--scrim: rgba(0, 0, 0, .48);--backdrop: rgba(0, 0, 0, .5);--float-shadow: 0 20px 50px rgba(0, 0, 0, .35);--goal-1: #d99a4e;--goal-2: #6fbb93;--goal-3: #7ba3e0;--goal-4: #e07f97;--goal-5: #ad9ad9;--goal-6: #d4bd76;--goal-unknown: #8f9298;--solid-face: #b8823a;--solid-edge: #e0b070;--solid-shine: #fff0c8;color-scheme:dark}}*{box-sizing:border-box}:root{--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--tabbar-space: var(--tabbar-height, calc(64px + var(--safe-bottom)))}html.typing{--tabbar-space: 0px}html.typing .tabbar{display:none}.chat-screen{position:fixed;top:0;left:0;right:0;bottom:var(--tabbar-height, calc(64px + var(--safe-bottom)));display:flex;flex-direction:column;padding-top:var(--safe-top);background:var(--bg)}html.typing .chat-screen{bottom:0}.chat-top-fade{position:absolute;top:0;left:0;right:0;height:calc(var(--safe-top) + 66px);background:linear-gradient(var(--bg) calc(var(--safe-top) + 34px),transparent);pointer-events:none;z-index:1}html.native{background:var(--bg);-webkit-tap-highlight-color:transparent}html.native body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}html.native input,html.native textarea{-webkit-user-select:text;user-select:text}html{scroll-behavior:smooth}html,body,#root{min-height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased}button,input,textarea{font-family:inherit}button{cursor:pointer;color:inherit}textarea{resize:vertical}@keyframes dotPulse{0%,80%,to{opacity:.25}40%{opacity:1}}@keyframes dotBounce{0%,80%,to{opacity:.3;transform:translateY(0)}40%{opacity:1;transform:translateY(-5px)}}.loading-dot{display:inline-block;border-radius:50%;animation:dotBounce 1.2s infinite ease-in-out}.load-in{animation:loadIn .25s ease .25s both}@keyframes loadIn{0%{opacity:0}to{opacity:1}}body:after{content:"";position:fixed;top:0;left:0;right:0;height:var(--safe-top);z-index:35;background:var(--bg);pointer-events:none}@supports ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) and (background: color-mix(in srgb,red 50%,blue)){body:after{background:color-mix(in srgb,var(--bg) 82%,transparent);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:10;display:flex;background:var(--bg);border-top:.5px solid var(--border-strong);padding-bottom:var(--safe-bottom)}@supports ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) and (background: color-mix(in srgb,red 50%,blue)){.tabbar{background:color-mix(in srgb,var(--bg) 82%,transparent);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}}.floating-btn{background:var(--surface);border:.5px solid var(--border-strong);box-shadow:0 1px 6px #00000014}@supports ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) and (background: color-mix(in srgb,red 50%,blue)){.floating-btn{background:color-mix(in srgb,var(--surface) 78%,transparent);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}}.tabbar-item{flex:1;min-height:52px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:6px 0 4px;background:none;border:none;font-size:10.5px;letter-spacing:.01em}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:spin .8s linear infinite}button{transition:opacity .12s ease,transform .16s cubic-bezier(.2,.8,.2,1)}button:not(:disabled):active{opacity:.7;transform:scale(.97)}@keyframes tabIn{0%{opacity:0}to{opacity:1}}.tab-in{animation:tabIn .2s ease-out both}@keyframes tickPop{0%{transform:scale(.55)}60%{transform:scale(1.18)}to{transform:scale(1)}}.tick-pop{animation:tickPop .3s cubic-bezier(.2,.8,.2,1)}@keyframes sheetUp{0%{transform:translateY(100%)}to{transform:none}}.sheet{animation:sheetUp .34s cubic-bezier(.2,.8,.2,1)}@keyframes scrimIn{0%{opacity:0}to{opacity:1}}.scrim{animation:scrimIn .24s ease-out}@keyframes cardUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}.card-up{animation:cardUp .34s cubic-bezier(.2,.8,.2,1)}.htw-track{transition:transform .34s cubic-bezier(.2,.8,.2,1)}.htw-track.dragging{transition:none}.htw-dot{display:block;height:6px;border-radius:3px;transition:width .3s cubic-bezier(.2,.8,.2,1)}@keyframes popIn{0%{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}.level-fill{transition:width .5s cubic-bezier(.2,.8,.2,1)}.level-fill.instant{transition:none}.pop-in{animation:popIn .32s cubic-bezier(.2,.8,.2,1) both}.step-in{animation:stepIn .45s ease both}@keyframes stepIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.taup-mark{display:block;overflow:visible}.taup-mark.busy,.taup-mark.winding{animation:markTurn 2.6s cubic-bezier(.45,0,.25,1) infinite}.taup-mark.busy .taup-facet,.taup-mark.winding .taup-facet{animation:facetGlint 1.3s ease-in-out infinite}@keyframes markTurn{0%{transform:rotate(0) scale(1)}50%{transform:rotate(180deg) scale(.84)}to{transform:rotate(360deg) scale(1)}}@keyframes facetGlint{0%,to{opacity:1}50%{opacity:.35}}@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms;animation-iteration-count:1}button:not(:disabled):active{transform:none}.level-fill{transition:none}.card-up{animation-name:scrimIn}.htw-track,.htw-dot{transition:none}.taup-mark.busy .taup-facet,.taup-mark.winding .taup-facet{animation-duration:1.3s;animation-iteration-count:infinite}.loading-dot{animation-name:dotPulse;animation-duration:1.2s;animation-iteration-count:infinite}}.auth-field:focus{outline:none;border-color:var(--text-dim)}
