@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:200 800;font-display:swap;src:url(/fonts/plus-jakarta-sans-latin.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:200 800;font-display:swap;src:url(/fonts/plus-jakarta-sans-latin-ext.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}:root{--g-900:#06332a;--g-800:#094134;--g-700:#0b5f4c;--g-600:#12795f;--g-500:#17906f;--g-400:#2fae8a;--g-300:#7fcfb5;--g-200:#bfe3d7;--g-100:#ddf0e8;--g-50:#edf8f4;--g-25:#f6fcfa;--black:#0a0e0d;--ink:#121917;--ink-2:#46534f;--ink-3:#7a8884;--ink-4:#a8b4b0;--white:#fff;--bg:#fff;--line:#e3eae7;--line-2:#eef3f1;--r-lg:18px;--r-md:12px;--r-sm:9px;--shadow-sm:0 1px 2px rgba(10,14,13,.04);--shadow-md:0 4px 14px -4px rgba(10,14,13,.1);--shadow-lg:0 16px 40px -12px rgba(10,14,13,.18);--font:"Plus Jakarta Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--safe-b:env(safe-area-inset-bottom,0px);--safe-t:env(safe-area-inset-top,0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body,html{margin:0;padding:0;height:100%;overscroll-behavior-y:none}body{background:var(--bg);color:var(--ink);font-family:var(--font);font-size:15px;line-height:1.45;font-feature-settings:"ss01","cv01";-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;border:none;background:none;padding:0}input,textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none}a{color:var(--g-600)}h1,h2,h3,h4{margin:0;font-weight:700;letter-spacing:-.022em;color:var(--black)}p{margin:0}.wordmark{display:inline-flex;align-items:baseline;font-weight:800;letter-spacing:-.04em;line-height:1;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none}.wm-tutor{color:var(--black)}.wm-mint{color:var(--g-600);margin-left:.17em}.wm-i{position:relative;display:inline-block}.wm-leaf{position:absolute;left:50%;top:-.4em;width:.68em;height:.68em;transform:translateX(-48%) rotate(-22deg);color:var(--g-600)}.app{min-height:100dvh;display:flex;flex-direction:column}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:40;padding:calc(var(--safe-t) + 13px) 18px 13px;display:flex;align-items:center;gap:12px;background:hsla(0,0%,100%,.86);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-bottom:1px solid var(--line)}.topbar h1{font-size:19px;flex:1 1;min-width:0}.topbar .sub{font-size:12px;color:var(--ink-3);font-weight:600;letter-spacing:-.005em}.main{flex:1 1;padding:16px 16px calc(88px + var(--safe-b));max-width:680px;width:100%;margin:0 auto}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:50;display:grid;grid-template-columns:repeat(5,1fr);padding:6px 6px calc(6px + var(--safe-b));background:hsla(0,0%,100%,.92);backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);border-top:1px solid var(--line)}.tabbar button{display:flex;flex-direction:column;align-items:center;gap:3px;padding:7px 2px 4px;border-radius:11px;color:var(--ink-3);font-size:10.5px;font-weight:700;letter-spacing:-.01em;transition:color .15s ease}.tabbar button.on{color:var(--g-600)}.tabbar button svg{width:22px;height:22px}.card{background:var(--white);border:1px solid var(--line);border-radius:var(--r-lg);padding:16px}.card+.card{margin-top:12px}.glass{background:hsla(0,0%,100%,.86);backdrop-filter:blur(18px) saturate(180%);-webkit-backdrop-filter:blur(18px) saturate(180%);border:1px solid var(--line);border-radius:var(--r-lg)}.row,.row-between{display:flex;align-items:center;gap:10px}.row-between{justify-content:space-between}.col{display:flex;flex-direction:column}.grow{flex:1 1;min-width:0}.wrap{flex-wrap:wrap}.muted{color:var(--ink-3)}.small{font-size:13px}.tiny{font-size:11.5px}.center{text-align:center}.mt8{margin-top:8px}.mt12{margin-top:12px}.mt16{margin-top:16px}.mt20{margin-top:20px}.mt24{margin-top:24px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 18px;border-radius:var(--r-md);font-size:14.5px;font-weight:700;letter-spacing:-.012em;background:var(--g-600);color:var(--white);transition:background .15s ease,transform .1s ease,opacity .15s ease}.btn:active{transform:scale(.98)}.btn:hover:not(:disabled){background:var(--g-700)}.btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.btn svg{width:18px;height:18px}.btn.secondary{background:var(--g-50);color:var(--g-700)}.btn.secondary:hover:not(:disabled){background:var(--g-100)}.btn.ghost{background:transparent;color:var(--ink-2);border:1px solid var(--line)}.btn.ghost:hover:not(:disabled){background:var(--g-25);border-color:var(--g-200)}.btn.dark{background:var(--black);color:var(--white)}.btn.dark:hover:not(:disabled){background:var(--ink)}.btn.danger{background:#fdf1f0;color:#a93226}.btn.block{width:100%}.btn.sm{padding:8px 12px;font-size:13px;border-radius:var(--r-sm)}.btn.icon{padding:0;width:30px;height:30px;flex:none;font-size:19px;line-height:1;border-radius:9px;border:none;background:transparent;color:var(--ink-3)}.btn.icon:hover:not(:disabled){background:var(--g-50);color:var(--g-600);border:none}.btn.sm svg{width:15px;height:15px}.seg{display:flex;gap:2px;padding:3px;background:var(--g-25);border:1px solid var(--line);border-radius:var(--r-md)}.seg button{flex:1 1;padding:8px;border-radius:9px;font-size:13px;font-weight:700;letter-spacing:-.012em;color:var(--ink-2);white-space:nowrap;transition:background .15s ease,color .15s ease}.seg button.on{background:var(--g-600);color:var(--white)}.chip{display:inline-flex;align-items:center;gap:5px;padding:6px 11px;border-radius:999px;background:var(--white);color:var(--ink-2);font-size:12.5px;font-weight:650;border:1px solid var(--line)}.chip.on{background:var(--g-600);color:var(--white);border-color:var(--g-600)}.input,.textarea{width:100%;padding:11px 13px;border-radius:var(--r-md);border:1px solid var(--line);background:var(--white);font-size:16px;font-family:inherit;outline:none;transition:border-color .15s ease,box-shadow .15s ease}.input:focus,.textarea:focus{border-color:var(--g-600);box-shadow:0 0 0 3px rgba(18,121,95,.13)}.textarea{resize:none;line-height:1.45}.input::placeholder,.textarea::placeholder{color:var(--ink-4)}label.field{display:block}label.field>span{display:block;font-size:12px;font-weight:700;color:var(--ink-2);letter-spacing:-.005em;margin-bottom:5px}.thread{display:flex;flex-direction:column;gap:10px}.msg{max-width:88%;padding:11px 14px;border-radius:16px;font-size:14.5px}.msg.me{align-self:flex-end;background:var(--g-600);color:var(--white);border-bottom-right-radius:5px}.msg.bot{background:var(--white);border:1px solid var(--line);border-bottom-left-radius:5px}.msg.bot,.msg.err{align-self:flex-start}.msg.err{background:#fdf1f0;border:1px solid #f5d8d4;color:#a93226;font-size:13.5px}.msg img{max-width:100%;border-radius:11px;display:block}.msg p+p{margin-top:8px}.msg ol,.msg ul{margin:8px 0 0;padding-left:19px}.msg li+li{margin-top:3px}.msg code{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.88em;background:rgba(10,14,13,.06);padding:1px 4px;border-radius:4px}.msg.me code{background:hsla(0,0%,100%,.2)}.dots{display:inline-flex;gap:4px;align-items:center;padding:2px 0}.dots i{width:6px;height:6px;border-radius:50%;background:var(--g-300);animation:bounce 1.2s ease-in-out infinite}.dots i:nth-child(2){animation-delay:.15s}.dots i:nth-child(3){animation-delay:.3s}@keyframes bounce{0%,70%,to{transform:translateY(0);opacity:.5}35%{transform:translateY(-4px);opacity:1}}.shot{position:relative;border-radius:var(--r-lg);overflow:hidden;background:var(--black);aspect-ratio:3/4;display:flex;align-items:center;justify-content:center}.shot img,.shot video{width:100%;height:100%;object-fit:cover;display:block}.shutter{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);width:62px;height:62px;border-radius:50%;background:hsla(0,0%,100%,.25);border:3px solid var(--white);display:grid;place-items:center}.shutter:after{content:"";width:47px;height:47px;border-radius:50%;background:var(--white);transition:transform .1s ease}.shutter:active:after{transform:scale(.88)}.list{flex-direction:column}.item,.list{display:flex}.item{align-items:center;gap:11px;padding:11px 0;border-bottom:1px solid var(--line-2)}.item:last-child{border-bottom:none}.check{width:22px;height:22px;flex:none;border-radius:7px;border:1.8px solid var(--g-200);display:grid;place-items:center;transition:background .15s ease,border-color .15s ease}.check.on{background:var(--g-600);border-color:var(--g-600)}.check svg{width:13px;height:13px;color:var(--white)}.done{text-decoration:line-through;color:var(--ink-4)}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:2px;gap:2px}.cal-month{font-size:15px;font-weight:800}.cal-head{font-size:10.5px;font-weight:800;color:var(--ink-4);text-align:center;padding:2px 0 6px;letter-spacing:.04em}.cal-day{height:36px;border-radius:9px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;font-size:13px;font-weight:600;color:var(--ink);transition:background .13s ease}.cal-day:hover:not(.sel){background:var(--g-25)}.cal-day.out{color:var(--ink-4);font-weight:500}.cal-day.today{color:var(--g-600);font-weight:800}.cal-day.sel{background:var(--g-600);color:var(--white);font-weight:800}.cal-day .dot{width:4px;height:4px;border-radius:50%;background:var(--g-600)}.cal-day.sel .dot{background:var(--white)}.keys{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:7px;gap:7px}.keys.sci{grid-template-columns:repeat(5,1fr);gap:5px}.key{aspect-ratio:1.45;border-radius:var(--r-md);background:var(--white);border:1px solid var(--line);font-size:17px;font-weight:600;display:grid;place-items:center;transition:transform .08s ease,background .12s ease}.key:active{transform:scale(.95);background:var(--g-50)}.key.op{background:var(--g-25);color:var(--g-700);font-weight:700}.key.eq{background:var(--g-600);color:var(--white)}.key.fn{font-size:13px;background:var(--g-25);aspect-ratio:1.6;color:var(--ink-2)}.key.clr{color:#a93226}.readout{background:var(--white);border:1px solid var(--line);border-radius:var(--r-lg);padding:16px;text-align:right}.readout .expr{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:14px;color:var(--ink-3);min-height:18px;word-break:break-all}.readout .val{font-size:32px;font-weight:700;letter-spacing:-.035em;color:var(--black);margin-top:3px;word-break:break-all}.vid{display:flex;gap:11px;align-items:center;padding:10px;border-radius:var(--r-md);border:1px solid var(--line);background:var(--white);text-decoration:none;color:inherit;transition:border-color .15s ease}.vid:hover{border-color:var(--g-300)}.vid .thumb{width:62px;height:44px;flex:none;border-radius:8px;background:var(--g-50);display:grid;place-items:center;color:var(--g-600);overflow:hidden}.vid .thumb img{width:100%;height:100%;object-fit:cover}.vid .t{font-size:13.5px;font-weight:700;line-height:1.3;color:var(--black)}.vid .s{font-size:11.5px;color:var(--ink-3);margin-top:2px}.flip{perspective:1200px}.flip-in{position:relative;width:100%;min-height:210px;transition:transform .45s cubic-bezier(.4,0,.2,1);transform-style:preserve-3d}.flip.on .flip-in{transform:rotateY(180deg)}.face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:var(--r-lg);padding:24px;display:grid;place-items:center;text-align:center;font-size:17px;font-weight:600;line-height:1.4;background:var(--white);border:1px solid var(--line);box-shadow:var(--shadow-md)}.face.back{transform:rotateY(180deg);background:var(--g-600);border-color:var(--g-600);color:var(--white)}.opt{width:100%;text-align:left;padding:12px 14px;border-radius:var(--r-md);border:1.5px solid var(--line);background:var(--white);font-size:14.5px;font-weight:550;transition:border-color .15s ease,background .15s ease}.opt+.opt{margin-top:8px}.opt:hover:not(:disabled){border-color:var(--g-300)}.opt.right{border-color:var(--g-600);background:var(--g-50);color:var(--g-700);font-weight:700}.opt.wrong{border-color:#e5a9a1;background:#fdf1f0;color:#a93226}.stats{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:8px;gap:8px}.stat{background:var(--white);border:1px solid var(--line);border-radius:var(--r-md);padding:12px 8px;text-align:center}.stat .n{font-size:22px;font-weight:800;letter-spacing:-.035em;color:var(--g-600)}.stat .l{font-size:11px;color:var(--ink-3);font-weight:650;margin-top:1px}.avatar{width:66px;height:66px;border-radius:50%;background:var(--g-50);display:grid;place-items:center;overflow:hidden;flex:none;border:1px solid var(--line)}.avatar img{width:100%;height:100%;object-fit:cover}.orb{position:relative;width:210px;height:210px;border-radius:50%;display:grid;place-items:center;margin:0 auto;isolation:isolate;background:none;transform:scale(calc(1 + var(--lvl, 0) * .085));transition:transform .06s linear;box-shadow:0 18px 50px -18px rgba(6,51,42,calc(.45 + var(--lvl, 0) * .4)),0 0 calc(30px + var(--lvl, 0) * 60px) rgba(18,121,95,calc(var(--lvl, 0) * .5))}.orb-skin{inset:0;overflow:hidden;background:radial-gradient(120% 120% at 42% 44%,#0e5544 0,#052a22 55%,#010d0b 100%)}.orb-blob,.orb-skin{position:absolute;border-radius:50%}.orb-blob{will-change:transform}.orb-blob.b1{width:96%;height:72%;left:-26%;top:-18%;background:radial-gradient(circle at 55% 55%,#cff8e8 0,#6fdcbb 34%,rgba(111,220,187,0) 66%);filter:blur(13px);opacity:calc(.88 + var(--lvl, 0) * .12);animation:drift1 14s ease-in-out infinite}.orb-blob.b2{width:84%;height:70%;left:-6%;top:26%;background:radial-gradient(circle at 50% 50%,#1fc79b 0,#0f7a61 45%,rgba(15,122,97,0) 74%);filter:blur(15px);opacity:calc(.8 + var(--lvl, 0) * .2);animation:drift4 12s ease-in-out infinite}.orb-blob.b3{width:74%;height:66%;right:-16%;top:-10%;background:radial-gradient(circle at 45% 55%,#010a08 0,#020f0c 44%,rgba(2,15,12,0) 70%);filter:blur(15px);opacity:.95;animation:drift2 17s ease-in-out infinite}.orb-blob.b4{width:82%;height:72%;right:-22%;bottom:-20%;background:radial-gradient(circle at 45% 40%,#01110d 0,rgba(1,17,13,0) 66%);filter:blur(18px);opacity:.9;animation:drift3 15s ease-in-out infinite}.orb-blob.b5{width:62%;height:54%;left:-12%;bottom:-8%;background:radial-gradient(circle at 55% 45%,#8fe8cd 0,rgba(143,232,205,0) 64%);filter:blur(17px);opacity:calc(.5 + var(--lvl, 0) * .4);animation:drift5 13s ease-in-out infinite}.orb-grain{inset:-30%;background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27180%27%20height%3D%27180%27%3E%3Cfilter%20id%3D%27n%27%3E%3CfeTurbulence%20type%3D%27fractalNoise%27%20baseFrequency%3D%270.95%27%20numOctaves%3D%275%27%20stitchTiles%3D%27stitch%27%2F%3E%3CfeColorMatrix%20type%3D%27saturate%27%20values%3D%270%27%2F%3E%3CfeComponentTransfer%3E%3CfeFuncR%20type%3D%27linear%27%20slope%3D%272.1%27%20intercept%3D%27-0.45%27%2F%3E%3CfeFuncG%20type%3D%27linear%27%20slope%3D%272.1%27%20intercept%3D%27-0.45%27%2F%3E%3CfeFuncB%20type%3D%27linear%27%20slope%3D%272.1%27%20intercept%3D%27-0.45%27%2F%3E%3C%2FfeComponentTransfer%3E%3C%2Ffilter%3E%3Crect%20width%3D%27180%27%20height%3D%27180%27%20filter%3D%27url%28%23n%29%27%2F%3E%3C%2Fsvg%3E");background-size:180px 180px;opacity:.82;mix-blend-mode:overlay;animation:grainshift 4s steps(5) infinite}.orb-grain,.orb-sheen{position:absolute;pointer-events:none}.orb-sheen{inset:0;border-radius:50%;background:radial-gradient(78% 78% at 50% 50%,transparent 62%,rgba(0,0,0,.42) 100%)}.orb-icon{position:relative;z-index:2;display:grid;place-items:center;color:#fff;filter:drop-shadow(0 2px 8px rgba(4,29,24,.55))}.orb-icon svg{width:46px;height:46px}.orb-idle .orb-skin{animation:breathe 5.5s ease-in-out infinite}.orb-listening .orb-skin{animation:breathe 2.1s ease-in-out infinite}.orb-thinking .orb-skin{animation:breathe 1.3s ease-in-out infinite}.orb-speaking .orb-skin{animation:none}.orb-listening{box-shadow:0 18px 50px -18px rgba(6,51,42,.5),0 0 0 0 rgba(18,121,95,.4);animation:ring 2.1s ease-out infinite}@keyframes ring{0%{box-shadow:0 18px 50px -18px rgba(6,51,42,.5),0 0 0 0 rgba(18,121,95,.45)}70%{box-shadow:0 18px 50px -18px rgba(6,51,42,.5),0 0 0 28px rgba(18,121,95,0)}to{box-shadow:0 18px 50px -18px rgba(6,51,42,.5),0 0 0 0 rgba(18,121,95,0)}}@keyframes breathe{0%,to{transform:scale(1)}50%{transform:scale(1.035)}}@keyframes drift1{0%,to{transform:translate(0) scale(1)}33%{transform:translate(14%,10%) scale(1.12)}66%{transform:translate(-8%,16%) scale(.94)}}@keyframes drift2{0%,to{transform:translate(0) scale(1)}40%{transform:translate(-16%,14%) scale(1.1)}75%{transform:translate(6%,-10%) scale(.92)}}@keyframes drift3{0%,to{transform:translate(0) scale(1)}50%{transform:translate(-12%,-14%) scale(1.14)}}@keyframes drift4{0%,to{transform:translate(0) scale(1)}50%{transform:translate(12%,-12%) scale(1.2)}}@keyframes drift5{0%,to{transform:translate(0) scale(1)}50%{transform:translate(10%,-12%) scale(1.16)}}@keyframes grainshift{0%{transform:translate(0)}20%{transform:translate(-4%,3%)}40%{transform:translate(3%,-4%)}60%{transform:translate(-3%,-2%)}80%{transform:translate(4%,2%)}to{transform:translate(0)}}@media (prefers-reduced-motion:reduce){.orb,.orb-blob,.orb-grain,.orb-skin{animation:none!important;transform:none!important}}.divider{height:1px;background:var(--line);margin:14px 0}.banner{padding:11px 13px;border-radius:var(--r-md);background:var(--g-25);border:1px solid var(--g-200);color:var(--g-800);font-size:12.5px;font-weight:500}.setup{display:flex;align-items:flex-start;gap:10px;padding:13px 14px;margin-bottom:14px;border-radius:var(--r-md);background:#fff8e8;border:1px solid #f0dca8;color:#6b5210;font-size:13px;line-height:1.45}.setup strong{color:#4d3a06;font-weight:750}.setup-x{flex:none;width:22px;height:22px;border-radius:6px;color:#6b5210;font-size:12px;opacity:.6}.setup-x:hover{opacity:1;background:rgba(0,0,0,.05)}.empty{text-align:center;padding:22px 18px;color:var(--ink-3)}.fill-center{min-height:calc(100dvh - 190px - var(--safe-t) - var(--safe-b));display:flex;flex-direction:column;justify-content:center}.empty h3{font-size:15.5px;color:var(--black);margin-bottom:4px}.empty p{font-size:13px}.sheet-bg{position:fixed;inset:0;z-index:90;background:rgba(10,14,13,.34);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);display:flex;align-items:flex-end;justify-content:center}.sheet{width:100%;max-width:540px;background:var(--white);border-radius:20px 20px 0 0;padding:18px 16px calc(22px + var(--safe-b));box-shadow:var(--shadow-lg);animation:up .24s cubic-bezier(.32,.72,0,1);max-height:88dvh;overflow-y:auto}@keyframes up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.spin{width:16px;height:16px;border:2px solid hsla(0,0%,100%,.35);border-top:2px solid var(--white);border-radius:50%;animation:spin .65s linear infinite}.spin.dark{border-color:var(--g-200);border-top-color:var(--g-600)}@keyframes spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.001ms!important;transition-duration:.001ms!important}}