/*! tailwindcss v4.2.4 | MIT License | https://tailwindcss.com */@import "https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/variable/pretendardvariable.min.css";@import "https://cdn.jsdelivr.net/gh/JetBrains/JetBrainsMono@master/web/woff2/JetBrainsMono-Regular.woff2" layer(base);@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-ease:initial}}}@layer theme{:host,:root{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--spacing:.25rem;--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.border{border-style:var(--tw-border-style);border-width:1px}.break-all{word-break:break-all}.uppercase{text-transform:uppercase}.line-through{text-decoration-line:line-through}.underline{text-decoration-line:underline}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}}:root{--bg:#0b0c0f;--bg-elev:#0f1115;--surface:#14161a;--surface-2:#1a1d22;--surface-3:#21252b;--surface-inv:#ecedf0;--border-soft:#1b1e22;--border:#23272d;--border-strong:#2e343b;--text:#ecedf0;--text-2:#b7bcc4;--text-3:#7b8089;--text-4:#555a62;--accent-warm:#e6e1d7;--brand:#4f8af7;--brand-2:#6fa0fa;--brand-3:#9dc0ff;--brand-soft:#4f8af724;--brand-soft-2:#4f8af738;--success:#5bae7a;--warning:#d9a441;--danger:#c76a6a;--cat-english:220;--cat-frontend:150;--cat-backend:30;--cat-cs:280;--cat-design:350;--cell-0:#1a1d22;--r-sm:6px;--r-md:10px;--r-lg:14px;--r-pill:999px;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:24px;--s-6:32px;--s-7:48px;--s-8:64px;--shadow-1:0 1px 0 #0006;--shadow-2:0 8px 24px #0000005c;--sidebar-w:240px;--topbar-h:56px;--content-max:960px;--content-public:1080px;--font-sans:"Pretendard Variable",Pretendard,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI","Apple SD Gothic Neo","Noto Sans KR",sans-serif;--font-mono:"JetBrains Mono",ui-monospace,"SF Mono",Menlo,Consolas,monospace}*{box-sizing:border-box}html{background:var(--bg);color-scheme:dark;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}body,html{overflow-x:clip}body{background:radial-gradient(1200px 600px at 20% -10%,#4f8af70d,transparent 60%),radial-gradient(900px 500px at 100% 0,#e6e1d708,transparent 60%),var(--bg);min-height:100vh;color:var(--text);font-family:var(--font-sans);letter-spacing:-.005em;margin:0;font-size:15px;line-height:1.55}a{color:inherit;text-decoration:none}[tabindex]:focus-visible,a:focus-visible,button:focus-visible{outline:2px solid var(--accent-warm);outline-offset:2px;border-radius:var(--r-sm)}button,input,select,textarea{font:inherit;color:inherit}::selection{background:var(--brand-soft-2);color:var(--text)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{border:2px solid var(--bg);background:#232830;border-radius:8px}::-webkit-scrollbar-thumb:hover{background:#2c333c}.t-display{letter-spacing:-.012em;font-size:clamp(2rem,5vw,2.5rem);line-height:1.1}.t-display,.t-h1{margin:0;font-weight:700}.t-h1{letter-spacing:-.008em;font-size:1.75rem;line-height:1.18}.t-h2{font-size:1.375rem;line-height:1.25}.t-h2,.t-h3{margin:0;font-weight:600}.t-h3{font-size:1.125rem;line-height:1.3}.t-body{font-size:.9375rem;line-height:1.6}.t-small{color:var(--text-2);font-size:.8125rem;line-height:1.5}.t-caption{color:var(--text-3);font-size:.75rem;line-height:1.4}.t-mono{font-family:var(--font-mono);letter-spacing:0;font-size:.8125rem}.t-accent{color:var(--brand-3);font-weight:700}.muted{color:var(--text-2)}.faint{color:var(--text-3)}.shell{flex-direction:column;width:100%;display:flex}.shell,.shell-app{min-width:0;min-height:100vh}.shell-app{grid-template-columns:var(--sidebar-w) 1fr;display:grid}.main{width:min(100%,var(--content-max));padding:var(--s-7) var(--s-5) var(--s-8);min-width:0;margin:0 auto}.main.public{width:min(100%,var(--content-public))}.main.wide{width:100%;max-width:none;padding:var(--s-6) var(--s-6) var(--s-8)}.stack{gap:var(--s-6);min-width:0;display:grid}.row{align-items:center;gap:var(--s-3);min-width:0;display:flex}.row.between{justify-content:space-between}.grid{gap:var(--s-4);display:grid}.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.checklist-sort-row{border-radius:var(--r-sm);align-items:center;gap:8px;transition:box-shadow .15s,background .15s;display:flex}.checklist-sort-row.dragging{opacity:.5;background:var(--surface-2);z-index:10;box-shadow:0 4px 16px #00000040}.drag-handle{width:28px;height:36px;color:var(--text-3);cursor:grab;border-radius:var(--r-sm);touch-action:none;-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;transition:color .15s,background .15s;display:flex}.drag-handle:hover{color:var(--text-2);background:var(--surface)}.drag-handle:active{cursor:grabbing;color:var(--text)}[data-theme=light] .checklist-sort-row.dragging{box-shadow:0 4px 16px #0000001f}.grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}@media (max-width:880px){.grid.cols-3,.grid.cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:560px){.grid.cols-2,.grid.cols-3,.grid.cols-4{grid-template-columns:1fr}}.topbar{z-index:20;height:var(--topbar-h);padding:0 var(--s-5);-webkit-backdrop-filter:saturate(140%)blur(14px);backdrop-filter:saturate(140%)blur(14px);background:#0b0c0fc7;justify-content:space-between;align-items:center;min-width:0;display:flex;position:sticky;top:0}.topbar,.topbar-public{border-bottom:1px solid var(--border-soft)}.brand{color:var(--text);letter-spacing:-.01em;align-items:center;gap:10px;font-weight:700;display:inline-flex}.brand .brand-mark{width:28px;height:28px;display:block}.brand .brand-full{width:auto;height:28px;display:block}.brand .brand-full-dark{display:none}@media (prefers-color-scheme:light){.brand .brand-full-light{display:block}.brand .brand-full-dark{display:none}}@media (prefers-color-scheme:dark){.brand .brand-full-light{display:none}.brand .brand-full-dark{display:block}}[data-theme=light] .brand .brand-full-light{display:block}[data-theme=dark] .brand .brand-full-light,[data-theme=light] .brand .brand-full-dark{display:none}[data-theme=dark] .brand .brand-full-dark{display:block}.nav{gap:var(--s-2);flex-wrap:wrap;min-width:0;display:flex}.nav,.nav-link{align-items:center}.nav-link{border-radius:var(--r-sm);height:34px;color:var(--text-2);padding:0 12px;font-size:13px;font-weight:500;transition:color .15s,background .15s;display:inline-flex}.nav-link:hover{color:var(--text);background:#ffffff08}.nav-link[aria-current=page]{color:var(--text);background:var(--brand-soft)}.sidebar{border-right:1px solid var(--border-soft);background:linear-gradient(180deg,#ffffff03,transparent 70%),var(--bg);flex-direction:column;height:100vh;display:flex;position:sticky;top:0}.sidebar-head{border-bottom:1px solid var(--border-soft);padding:18px 16px 12px}.sidebar-section{padding:10px 8px 4px}.sidebar-section-title{letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);padding:6px 12px;font-size:11px;font-weight:600}.sidebar-item{border-radius:var(--r-sm);height:36px;color:var(--text-2);align-items:center;gap:10px;margin:1px 0;padding:0 12px 0 14px;font-size:14px;font-weight:500;transition:color .15s,background .15s;display:flex;position:relative}.sidebar-item:hover{color:var(--text);background:#ffffff08}.sidebar-item[aria-current=page]{color:var(--text);background:var(--brand-soft)}.sidebar-item[aria-current=page]:before{content:"";background:var(--brand);border-radius:3px;width:3px;position:absolute;top:8px;bottom:8px;left:4px}.sidebar-item .badge{margin-left:auto}.sidebar-foot{border-top:1px solid var(--border-soft);gap:6px;margin-top:auto;padding:12px 12px 16px;display:grid}.eyebrow{border-radius:var(--r-pill);border:1px solid var(--brand);align-items:center;gap:8px;padding:4px 10px;display:inline-flex}@supports (color:color-mix(in lab,red,red)){.eyebrow{border:1px solid color-mix(in srgb,var(--brand) 28%,var(--border))}}.eyebrow{background:var(--brand)}@supports (color:color-mix(in lab,red,red)){.eyebrow{background:color-mix(in srgb,var(--brand) 12%,var(--surface))}}.eyebrow{color:var(--brand-3);font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;font-size:11px;font-weight:700}.eyebrow .dot{background:var(--brand);width:6px;height:6px;box-shadow:0 0 0 4px var(--brand-soft);border-radius:50%}.hero{gap:var(--s-3);padding:var(--s-7) 0 var(--s-5);display:grid}.hero h1{letter-spacing:-.012em;max-width:22ch;margin:0;font-size:clamp(2rem,5vw,3rem);font-weight:700;line-height:1.08}.hero p.lead{max-width:60ch;color:var(--text-2);margin:0;font-size:1rem;line-height:1.6}.panel{border:1px solid var(--border);border-radius:var(--r-md);padding:var(--s-4);background:linear-gradient(#ffffff06,#ffffff02);min-width:0;transition:border-color .15s;position:relative}.panel:hover{border-color:var(--border-strong)}.panel.flat{background:var(--surface)}.panel-head{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.panel-title{margin:0;font-size:.95rem;font-weight:600}.panel-sub{color:var(--text-3);font-size:12px}a.panel,a.panel-link{color:inherit;display:block}a.panel-link:hover,a.panel:hover{border-color:var(--border-strong);background:linear-gradient(#ffffff0a,#ffffff03)}.stat{gap:6px;display:grid}.stat .stat-value{letter-spacing:-.01em;font-feature-settings:"tnum" 1;font-size:1.875rem;font-weight:700}.stat .stat-label{color:var(--text-3);text-transform:uppercase;letter-spacing:.06em;font-size:12px}.btn{border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);height:38px;color:var(--text);cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;gap:8px;padding:0 14px;font-size:14px;font-weight:500;transition:border-color .15s,background .15s,color .15s;display:inline-flex}.btn:hover{border-color:var(--border-strong);background:var(--surface-2)}.btn.sm{border-radius:var(--r-sm);height:32px;padding:0 12px;font-size:13px}.btn.lg{height:44px;padding:0 18px;font-size:15px}.btn.primary{background:var(--brand);border-color:var(--brand);color:#0b0c0f;font-weight:600}.btn.primary:hover{background:var(--brand-2);border-color:var(--brand-2)}.btn.ghost{color:var(--text-2);background:0 0;border-color:#0000}.btn.ghost:hover{color:var(--text);background:#ffffff0a}.btn.danger{color:var(--danger);background:0 0;border-color:#c76a6a66}.btn.danger:hover{border-color:var(--danger);background:#c76a6a14}.btn[disabled]{opacity:.4;cursor:not-allowed}.btn-icon{justify-content:center;align-items:center;width:34px;height:34px;padding:0;display:inline-flex}.kbd{min-width:20px;font-family:var(--font-mono);border:solid var(--border);border-width:1px 1px 2px;border-radius:5px;padding:0 6px}.badge,.kbd{background:var(--surface-3);height:20px;color:var(--text-2);letter-spacing:0;align-items:center;font-size:11px;display:inline-flex}.badge{border-radius:var(--r-pill);padding:0 8px;font-weight:500}.badge.brand{background:var(--brand-soft);color:var(--brand-3)}.badge.success{color:#93d3a8;background:#5bae7a24}.badge.warning{color:#e9c477;background:#d9a44129}.badge.danger{color:#e29797;background:#c76a6a29}.chip{border:1px solid var(--border);border-radius:var(--r-pill);background:var(--surface);height:28px;color:var(--text-2);cursor:pointer;align-items:center;gap:6px;padding:0 12px;font-size:12px;transition:border-color .15s,background .15s,color .15s;display:inline-flex}.chip:hover{border-color:var(--border-strong);color:var(--text)}.chip[aria-pressed=true]{border-color:var(--brand);background:var(--brand-soft);color:var(--brand-3)}.cat-dot{background:var(--cat-color,#497bdf);width:8px;height:8px;box-shadow:0 0 0 3px var(--cat-color,#497bdf);border-radius:50%;display:inline-block}@supports (color:color-mix(in lab,red,red)){.cat-dot{box-shadow:0 0 0 3px color-mix(in srgb,var(--cat-color,#497bdf) 28%,#0b0d12)}}.input,.textarea{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-elev);width:100%;color:var(--text);padding:10px 12px;font-size:16px;transition:border-color .15s,box-shadow .15s}.input::placeholder,.textarea::placeholder{color:var(--text-4)}.input:focus,.textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft);outline:none}.input.search{background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237B8089' stroke-width='2'><circle cx='11' cy='11' r='7'/><path d='M21 21l-4.3-4.3'/></svg>") no-repeat 12px /16px,var(--bg-elev);padding-left:36px}.blocknote-shell{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-elev);min-height:420px;overflow:hidden}.blocknote-shell:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.blocknote-loading{border-bottom:1px solid var(--border-soft);padding:10px 12px}.blocknote-shell .bn-container,.blocknote-shell .bn-editor{background:0 0;min-height:420px}.blocknote-shell .bn-editor{padding:18px 20px 28px;font-size:16px}.blocknote-shell .bn-block-content{font-family:var(--font-sans)}.list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.list-row{border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);align-items:center;gap:12px;min-height:56px;padding:10px 14px;transition:border-color .15s,background .15s;display:flex}.list-row:hover{border-color:var(--border-strong);background:var(--surface-2)}.list-row .title{color:var(--text);font-weight:500}.list-row .meta{color:var(--text-3);flex-shrink:0;font-size:12px}.heatmap{grid-template-columns:repeat(var(--weeks,53),minmax(0,1fr));aspect-ratio:53/7;border-radius:var(--r-sm);background:#ffffff03;grid-template-rows:repeat(7,minmax(7px,1fr));grid-auto-flow:column;gap:4px;width:100%;padding:6px;display:grid;overflow:visible}.heatmap-meta-mobile,.heatmap-mobile,.heatmap-sub-mobile{display:none}.heatmap-heading{min-width:0}.heatmap.dense{gap:3px}.cell{background:var(--cell-0);border-radius:3px;outline:1px solid #ffffff05;width:100%;min-width:0;height:100%;min-height:0;transition:transform .12s,box-shadow .12s,outline-color .12s}.cell:hover{box-shadow:0 0 0 1px var(--accent-warm);outline-color:var(--accent-warm);z-index:1;transform:scale(1.45)}.cell.l1{background:var(--cat-color,#5b8def)}@supports (color:color-mix(in lab,red,red)){.cell.l1{background:color-mix(in srgb,var(--cat-color,#5b8def) 12%,var(--cell-0))}}.cell.l2{background:var(--cat-color,#5b8def)}@supports (color:color-mix(in lab,red,red)){.cell.l2{background:color-mix(in srgb,var(--cat-color,#5b8def) 28%,var(--cell-0))}}.cell.l3{background:var(--cat-color,#5b8def)}@supports (color:color-mix(in lab,red,red)){.cell.l3{background:color-mix(in srgb,var(--cat-color,#5b8def) 48%,var(--cell-0))}}.cell.l4{background:var(--cat-color,#5b8def)}@supports (color:color-mix(in lab,red,red)){.cell.l4{background:color-mix(in srgb,var(--cat-color,#5b8def) 70%,var(--cell-0))}}.cell.l5{background:var(--cat-color,#5b8def)}@supports (color:color-mix(in lab,red,red)){.cell.l5{background:color-mix(in srgb,var(--cat-color,#5b8def) 88%,var(--cell-0))}}.heatmap-mini{grid-template-columns:repeat(7,1fr);grid-auto-rows:8px;gap:2px;width:64px;display:grid}.heatmap-mini .cell{border-radius:2px;height:8px}.legend{color:var(--text-3);flex-wrap:wrap;align-items:center;gap:6px;font-size:11px;display:inline-flex}.legend .cell{flex:0 0 10px;width:10px;height:10px}.streak-badge{border:1px solid var(--brand);flex:none;justify-items:end;gap:2px;min-width:150px;padding:8px 11px;display:grid}@supports (color:color-mix(in lab,red,red)){.streak-badge{border:1px solid color-mix(in srgb,var(--brand) 28%,var(--border))}}.streak-badge{border-radius:var(--r-md);background:var(--brand)}@supports (color:color-mix(in lab,red,red)){.streak-badge{background:color-mix(in srgb,var(--brand) 10%,var(--surface))}}.streak-badge-value{color:var(--brand-3);font-size:15px;font-weight:700;line-height:1.2}.streak-badge-hint{color:var(--text-3);font-size:11px;line-height:1.2}.hero-actions{flex-wrap:wrap}.how-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.review-fullscreen{z-index:40;background:var(--bg);position:fixed;inset:0;overflow:auto}.review-shell{background:radial-gradient(800px 400px at 50% -10%,#4f8af70f,transparent 60%),var(--bg);grid-template-rows:56px 1fr auto;min-height:100dvh;display:grid;overflow-x:clip}.review-header{padding:0 var(--s-5);border-bottom:1px solid var(--border-soft);justify-content:space-between;height:56px}.review-header,.review-header-progress{align-items:center;min-width:0;display:flex}.review-header-progress{flex:auto;justify-content:center;gap:12px}.review-mode-badge{border-radius:var(--r-pill);max-width:100%;min-height:24px;color:var(--text-2);white-space:nowrap;background:#4f8af714;border:1px solid #4f8af759;padding:4px 9px;font-size:12px;font-weight:600}.review-mode-badge,.review-progress{align-items:center;display:inline-flex}.review-progress{gap:6px;min-width:0;max-width:min(360px,42vw);overflow:hidden}.review-progress .pip{background:var(--surface-3);border-radius:50%;width:8px;height:8px}.review-progress .pip.done{background:var(--brand)}.review-progress .pip.current{background:var(--accent-warm);box-shadow:0 0 0 3px #e6e1d72e}.review-progress-bar{border-radius:var(--r-pill);background:var(--surface-3);width:min(260px,34vw);height:6px;display:block;position:relative;overflow:hidden}.review-progress-bar:after{content:"";width:var(--progress,0);border-radius:inherit;background:var(--brand);position:absolute;inset:0 auto 0 0}.review-stage{padding:var(--s-7) var(--s-4);place-items:center;display:grid}.review-card{border:1px solid var(--border-strong);border-radius:var(--r-lg);background:linear-gradient(#ffffff0a,#ffffff03);width:min(100%,540px);min-height:320px;max-height:min(680px,100vh - 190px);transition:transform .25s,border-color .15s;position:relative;overflow:auto}.review-card .stripe{background:var(--cat-color,#497bdf);height:4px;position:absolute;inset:0 0 auto}.review-card .face{text-align:center;place-items:center;padding:56px 32px 36px;display:grid}.review-card .face .front{letter-spacing:-.005em;max-width:30ch;font-size:clamp(1.25rem,2.2vw,1.75rem);font-weight:600;line-height:1.4}.review-card-text{white-space:pre-wrap;word-break:break-word}.review-card .back{border-top:1px dashed var(--border);color:var(--text-2);text-align:left;padding:20px 28px 28px;font-size:.9375rem;line-height:1.6}.review-card.flip{animation:cardFlip .32s ease-out}@keyframes cardFlip{0%{opacity:.45;transform:rotate(.5deg)}to{opacity:1;transform:rotate(0)}}.review-card.shake{animation:cardShake .18s ease-out}@keyframes cardShake{0%,to{transform:translate(0)}25%{transform:translate(-2px)}75%{transform:translate(2px)}}.review-actions{padding:var(--s-4) var(--s-5) var(--s-7);gap:10px;width:min(100%,720px);margin:0 auto;display:grid}.review-actions .show-answer{border-radius:var(--r-md);border:1px solid var(--border-strong);background:var(--surface-2);width:100%;height:56px;color:var(--text);cursor:pointer;font-size:15px;font-weight:500}.review-actions .show-answer:hover{border-color:var(--accent-warm)}.rate-row{grid-template-columns:repeat(4,1fr)}.rate-row,.review-nav-row{gap:8px;animation:fadeIn .4s ease-out;display:grid}.review-nav-row{grid-template-columns:repeat(2,minmax(0,1fr))}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.skeleton{background:linear-gradient(90deg,var(--surface) 0,var(--surface-2) 50%,var(--surface) 100%);border-radius:var(--r-sm);background-size:200% 100%;animation:skeleton-shimmer 1.4s ease-in-out infinite;display:block}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.skeleton{animation:none}}.rate-btn{border-radius:var(--r-md);border:1px solid var(--border-strong);background:var(--surface-2);height:56px;color:var(--text);cursor:pointer;place-items:center;font-size:14px;font-weight:500;transition:transform .1s,border-color .15s,background .15s;display:grid;position:relative}.rate-btn:hover{transform:translateY(-1px)}.rate-btn .kbd{position:absolute;top:6px;right:6px}.rate-btn.again{color:#e2a4a4;background:#c76a6a0f;border-color:#c76a6a73}.rate-btn.hard{color:#e3bd75;background:#d9a4410f;border-color:#d9a44173}.rate-btn.good{color:#a7c0f3;background:#4f8af70f;border-color:#4f8af780}.rate-btn.easy{color:#98d3ad;background:#5bae7a0f;border-color:#5bae7a80}.review-nav-btn{border-radius:var(--r-md);border:1px solid var(--border-strong);background:var(--surface-2);height:56px;color:var(--text);cursor:pointer;place-items:center;font-size:14px;font-weight:600;transition:transform .1s,border-color .15s,background .15s,opacity .15s;display:grid}.review-nav-btn:hover:not(:disabled){border-color:#4f8af78c;transform:translateY(-1px)}.review-nav-btn.primary{color:var(--text);background:#4f8af71a;border-color:#4f8af78c}.review-nav-btn:disabled{opacity:.45;cursor:not-allowed}.review-foot{color:var(--text-3);flex-wrap:wrap;justify-content:center;gap:18px;padding-bottom:24px;font-size:12px;display:flex}.review-goal-modal{gap:14px;display:grid}.review-goal-options{gap:10px;display:grid}.review-goal-option{border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--surface-2);min-height:64px;color:var(--text);cursor:pointer;text-align:left;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;transition:border-color .15s,background .15s,transform .12s;display:flex}.review-goal-option:hover{border-color:#4f8af78c;transform:translateY(-1px)}.review-goal-option.selected{background:linear-gradient(135deg,#5bae7a1f,#4f8af714);border-color:#5bae7abf}.review-goal-option strong{font-size:1.05rem}.review-goal-option.custom{cursor:default}.review-goal-option.custom input{text-align:right;width:110px}.review-complete-card{border-radius:var(--r-lg);background:radial-gradient(640px 300px at 50% -8%,#5bae7a3d,transparent 68%),radial-gradient(360px 200px at 88% 88%,#4f8af721,transparent 70%),radial-gradient(280px 180px at 10% 72%,#a78bfa1a,transparent 70%),linear-gradient(160deg,#4f8af712,#d9a44112 50%,#e97c7c0d),var(--bg-elev);text-align:center;border:1px solid #5bae7a80;width:min(100%,600px);padding:clamp(28px,6vw,52px);animation:complete-rise .55s cubic-bezier(.175,.885,.32,1.275) both;position:relative;overflow:hidden;box-shadow:0 28px 72px #00000052,0 0 0 1px #5bae7a2e,inset 0 1px #ffffff12}.review-complete-confetti{pointer-events:none;position:absolute;inset:0;overflow:hidden}.review-complete-confetti span{animation:confetti-fall linear infinite;position:absolute;top:0}.review-complete-trophy{margin-bottom:10px;font-size:clamp(2.8rem,8vw,3.8rem);line-height:1;animation:trophy-pop .55s cubic-bezier(.175,.885,.32,1.275) 80ms both;display:block;position:relative}.review-complete-kicker{color:var(--text-2);letter-spacing:0;text-transform:uppercase;font-size:.78rem;font-weight:700;animation:fade-up .4s ease-out .2s both;position:relative}.review-complete-count{letter-spacing:-.02em;margin-top:8px;font-size:clamp(2rem,7vw,4rem);font-weight:800;line-height:1.05;animation:count-pop .5s cubic-bezier(.175,.885,.32,1.275) .28s both;position:relative}.review-complete-copy{max-width:32rem;color:var(--text-2);margin:14px auto 0;line-height:1.65;animation:fade-up .4s ease-out .36s both;position:relative}.review-complete-streak{border-radius:var(--r-pill);min-height:34px;color:var(--text);background:#d9a4411f;border:1px solid #d9a44180;justify-content:center;align-items:center;margin-top:18px;padding:7px 14px;font-size:.85rem;font-weight:700;animation:fade-up .4s ease-out .44s both;display:inline-flex;position:relative}.review-recap-complete{background:radial-gradient(520px 260px at 50% -8%,#4f8af721,transparent 70%),linear-gradient(160deg,#4f8af70d,#5bae7a0d),var(--bg-elev);border-color:#4f8af757}@keyframes complete-rise{0%{opacity:0;transform:translateY(32px)scale(.9)}65%{opacity:1;transform:translateY(-5px)scale(1.02)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes trophy-pop{0%{opacity:0;transform:scale(.2)rotate(-18deg)}65%{opacity:1;transform:scale(1.18)rotate(6deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes count-pop{0%{opacity:0;transform:scale(.5)}65%{opacity:1;transform:scale(1.1)}to{opacity:1;transform:scale(1)}}@keyframes fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes confetti-fall{0%{opacity:1;transform:translateY(-16px)rotate(0)translate(0)}25%{opacity:.92;transform:translateY(90px)rotate(180deg)translate(9px)}50%{opacity:.8;transform:translateY(200px)rotate(310deg)translate(-5px)}75%{opacity:.4;transform:translateY(320px)rotate(480deg)translate(7px)}to{opacity:0;transform:translateY(440px)rotate(630deg)translate(0)}}@media (max-width:760px){.review-shell{grid-template-rows:52px minmax(0,1fr) auto}.review-header{height:52px;padding:0 var(--s-3);gap:8px}.review-header .btn.sm{min-width:0;padding-inline:9px}.review-header-progress{justify-content:center;gap:8px}.review-mode-badge{text-overflow:ellipsis;max-width:28vw;padding-inline:7px;font-size:11px;overflow:hidden}.review-progress{display:none}.review-progress-bar{width:min(120px,28vw)}.review-stage{padding:var(--s-3);align-items:stretch;min-width:0}.review-card{border-radius:var(--r-md);width:100%;min-height:min(360px,100dvh - 230px);max-height:calc(100dvh - 210px)}.review-card .face{padding:36px 18px 24px}.review-card .face .front{max-width:100%;font-size:1.15rem}.review-card .back{padding:16px 18px 20px;font-size:.9rem}.review-actions{padding:var(--s-3) var(--s-3) calc(var(--s-3) + env(safe-area-inset-bottom));width:100%}.rate-row{grid-template-columns:repeat(2,minmax(0,1fr))}.review-foot{display:none}.review-goal-backdrop{place-items:end stretch;padding:0}.review-goal-modal{max-width:none;min-height:min(620px,100dvh - 24px);max-height:calc(100dvh - 12px);padding:28px 18px calc(24px + env(safe-area-inset-bottom));border-radius:18px 18px 0 0;place-content:center stretch;gap:16px}.review-goal-modal .panel-head{text-align:center;justify-content:center}.review-goal-options{gap:12px}.review-goal-option{min-height:70px;padding:14px}.review-goal-option.custom input{width:min(126px,38vw)}.review-complete-card{border-radius:var(--r-md);padding:34px 18px 22px}.review-complete-count{font-size:2.35rem}}@media (max-width:760px) and (max-height:680px){.review-goal-modal{align-content:start;min-height:calc(100dvh - 12px);padding-top:22px}.review-goal-option{min-height:62px}}.tts-row{justify-content:center;margin-top:10px;display:flex}.tts-btn{border:1px solid var(--border-soft);color:var(--text-3);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:0 0;border-radius:999px;align-items:center;gap:5px;padding:4px 10px;font-family:inherit;font-size:11px;font-weight:500;transition:color .15s,border-color .15s,background .15s;display:inline-flex}.tts-btn:hover{color:var(--text-2);border-color:var(--border-strong);background:var(--surface)}.tts-btn.speaking{color:var(--brand-3);border-color:var(--brand-3);background:#4f8af712}.card-edit-btn{border-radius:var(--r-sm);border:1px solid var(--border-soft);width:100%;height:34px;color:var(--text-3);cursor:pointer;background:0 0;justify-content:center;align-items:center;gap:6px;font-family:inherit;font-size:12px;font-weight:500;transition:color .15s,border-color .15s,background .15s;display:flex}.card-edit-btn:hover{color:var(--text-2);border-color:var(--border-strong);background:var(--surface)}.card-edit-backdrop{z-index:70;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0000008c;justify-content:center;align-items:flex-end;animation:modal-fade .16s ease-out;display:flex;position:fixed;inset:0}.card-edit-sheet{background:var(--bg-elev);border:1px solid var(--border-strong);border-bottom:none;border-radius:20px 20px 0 0;flex-direction:column;width:100%;max-width:560px;max-height:85dvh;animation:card-edit-rise .22s cubic-bezier(.32,.72,0,1);display:flex;overflow:hidden;box-shadow:0 -8px 40px #00000073}@keyframes card-edit-rise{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.card-edit-handle{background:var(--border-strong);border-radius:999px;flex-shrink:0;width:36px;height:4px;margin:10px auto 0}.card-edit-header{border-bottom:1px solid var(--border-soft);flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 20px;display:flex}.card-edit-title{color:var(--text);font-size:14px;font-weight:600}.card-edit-body{overscroll-behavior:contain;flex:1;gap:14px;padding:16px 20px;display:grid;overflow-y:auto}.card-edit-field{gap:5px;display:grid}.card-edit-label{color:var(--text-2);letter-spacing:.04em;text-transform:uppercase;align-items:center;gap:6px;font-size:11px;font-weight:600;display:flex}.card-edit-opt{color:var(--text-3);text-transform:none;letter-spacing:0;font-size:11px;font-weight:400}.card-edit-footer{padding:12px 20px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--border-soft);flex-shrink:0;gap:8px;display:flex}.card-edit-footer .btn{flex:1}[data-theme=light] .card-edit-sheet{box-shadow:0 -4px 24px #00000026}.today{gap:var(--s-3);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}@media (max-width:980px){.today{grid-template-columns:repeat(2,1fr)}}@media (max-width:520px){.today{grid-template-columns:1fr}}.today-card{border:1px solid var(--border);border-radius:var(--r-md);padding:var(--s-4);min-height:132px;color:inherit;background:linear-gradient(#ffffff06,#ffffff02);align-content:start;gap:8px;text-decoration:none;transition:border-color .15s,transform .12s;display:grid;position:relative}.today-card:hover{border-color:var(--border-strong);transform:translateY(-1px)}.today-card .label{color:var(--text-3);text-transform:uppercase;letter-spacing:.06em;font-size:11px}.today-card .value{letter-spacing:-.01em;font-feature-settings:"tnum" 1;font-size:1.875rem;font-weight:700}.today-card .hint{color:var(--text-2);font-size:12px}.today-card .cta{color:var(--brand-3);margin-top:auto;font-size:12px;font-weight:500}.blocknote-readonly .bn-container,.blocknote-readonly .bn-editor,.blocknote-readonly [class*=ProseMirror]{box-shadow:none!important;background:0 0!important;border:none!important}.blocknote-readonly .bn-editor{padding:0!important}.blocknote-readonly .bn-block,.blocknote-readonly .bn-block-group{background:0 0!important}.markdown{color:var(--text);max-width:70ch;font-size:.9375rem;line-height:1.7}.markdown h1,.markdown h2,.markdown h3{letter-spacing:-.005em;margin:1.6em 0 .6em}.markdown h1{font-size:1.625rem;font-weight:700}.markdown h2{border-bottom:1px solid var(--border-soft);padding-bottom:6px;font-size:1.25rem;font-weight:600}.markdown h3{font-size:1.0625rem;font-weight:600}.markdown p{margin:.8em 0}.markdown a{color:var(--brand-3);text-underline-offset:3px;-webkit-text-decoration:underline #9dc0ff66;text-decoration:underline #9dc0ff66}.markdown code{font-family:var(--font-mono);background:var(--surface-2);color:var(--brand-3);border-radius:4px;padding:1px 6px;font-size:.85em}.markdown pre{border:1px solid var(--border);border-radius:var(--r-md);background:#0f1320;padding:14px 16px;font-size:.8125rem;line-height:1.6;overflow-x:auto}.markdown pre code{color:var(--text);background:0 0;padding:0}.markdown blockquote{border-left:3px solid var(--border-strong);color:var(--text-2);margin:1em 0;padding:4px 14px}.markdown ol,.markdown ul{margin:.6em 0;padding-left:1.4em}.markdown ul{list-style-type:disc}.markdown ol{list-style-type:decimal}.markdown li{margin:.25em 0}.markdown hr{background:var(--border-soft);border:0;height:1px;margin:2em 0}.empty{padding:var(--s-7) var(--s-4);border:1px dashed var(--border);border-radius:var(--r-md);text-align:center;color:var(--text-3);place-items:center;gap:10px;display:grid}.empty .empty-title{color:var(--text-2);font-size:14px;font-weight:500}.empty .empty-hint{font-size:12px}.spark{width:100%;height:64px;display:block}.bottom-tab{display:none}@media (max-width:760px){:root{--mobile-tab-safe-bottom:max(env(safe-area-inset-bottom),18px);--mobile-tab-height:calc(68px + var(--mobile-tab-safe-bottom))}.topbar{height:auto;min-height:var(--topbar-h);padding:12px var(--s-4);flex-wrap:wrap;align-items:flex-start;gap:10px}.nav{width:100%}.shell-app{grid-template-columns:1fr}.sidebar{display:none}.bottom-tab{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--border-soft);z-index:30;padding:8px 2px calc(var(--mobile-tab-safe-bottom) + 8px) 2px;background:#0b0c0fe6;grid-template-columns:repeat(5,1fr);display:grid;position:fixed;inset:auto 0 0}.tab-btn{min-height:52px;color:var(--text-3);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:0 0;border:0;place-items:center;gap:2px;padding:8px 0 6px;font-size:11px;font-weight:500;text-decoration:none;display:grid}.tab-btn[aria-current=page]{color:var(--brand-3)}.more-sheet-backdrop{z-index:40;background:#00000080;align-items:flex-end;animation:modal-fade .16s ease-out;display:flex;position:fixed;inset:0}.more-sheet{background:var(--bg-elev);border-top:1px solid var(--border-soft);width:100%;padding:8px 8px calc(var(--mobile-tab-height) + 16px) 8px;border-radius:16px 16px 0 0;animation:more-sheet-rise .2s ease-out;box-shadow:0 -8px 24px #00000059}.more-sheet-handle{background:var(--border-strong);border-radius:999px;width:36px;height:4px;margin:6px auto 10px}.more-sheet-list{gap:2px;display:grid}.more-sheet-item{color:var(--text-1);touch-action:manipulation;-webkit-tap-highlight-color:transparent;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:10px;align-items:center;gap:12px;width:100%;padding:14px;font-family:inherit;font-size:14px;font-weight:500;text-decoration:none;display:flex}.more-sheet-item:active,.more-sheet-item:hover{background:var(--surface-2)}.more-sheet-item[aria-current=page]{color:var(--brand-3);background:var(--surface-2)}@keyframes more-sheet-rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.main,.main.public,.main.wide{padding:var(--s-6) var(--s-4) calc(160px + var(--mobile-tab-safe-bottom))}.hero{padding-top:var(--s-6)}.hero h1{max-width:100%}.row.between{flex-wrap:wrap;align-items:flex-start}.how-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.heatmap{gap:2px;padding:4px}.heatmap-desktop,.heatmap-meta-desktop{display:none}.heatmap-mobile{aspect-ratio:13/7;gap:4px;min-height:92px;padding:6px;display:grid}.heatmap-meta-mobile{display:flex}.heatmap-sub-desktop{display:none}.heatmap-sub-mobile{display:inline}.heatmap-panel-head{align-items:stretch;gap:10px}.heatmap-heading{flex:100%}.heatmap-mobile .cell:hover{box-shadow:none;transform:none}.streak-badge{border-radius:var(--r-pill);justify-self:start;place-items:center start;width:fit-content;min-width:0;max-width:100%;padding:5px 8px;display:inline-flex}.streak-badge-value{white-space:nowrap;font-size:12px;line-height:1.1}.streak-badge-hint{display:none}}@media (max-width:520px){.btn{max-width:100%}.btn.lg,.hero-actions{width:100%}.hero-actions>*{flex:100%}.how-grid{grid-template-columns:1fr}}.dashboard-toolbar{padding-top:var(--s-4);justify-content:flex-end;display:flex}.dashboard-hero{padding-top:8px}@media (max-width:760px){.main.wide.stack{gap:var(--s-4)}.dashboard-toolbar{padding-top:0}.dashboard-hero{padding-top:0;padding-bottom:var(--s-3)}}.modal-backdrop{z-index:60;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0000008c;place-items:center;padding:16px;animation:modal-fade .16s ease-out;display:grid;position:fixed;inset:0}.modal-panel{border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--bg-elev);width:100%;max-width:560px;max-height:calc(100vh - 32px);padding:var(--s-5);animation:modal-rise .18s ease-out;overflow:auto;box-shadow:0 18px 48px #00000073}.modal-close{color:var(--text-2);cursor:pointer;background:0 0;border:0;border-radius:8px;place-items:center;width:32px;height:32px;font-size:20px;line-height:1;display:grid}.modal-close:hover{background:var(--surface-3);color:var(--text-1)}@keyframes modal-fade{0%{opacity:0}to{opacity:1}}@keyframes modal-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.public-pages-stat{border-top:1px solid var(--border-soft);padding:10px 0}.public-pages-stat .stat-value{font-size:24px}@media (max-width:560px){.grid.public-pages-stats{gap:var(--s-2);grid-template-columns:repeat(2,minmax(0,1fr))}.public-pages-stat{padding:8px 0}.public-pages-stat .stat-value{font-size:18px}.public-pages-stat .stat-label{letter-spacing:.04em;font-size:11px}}.divider{background:var(--border-soft);height:1px}.spacer-3{height:12px}.spacer-5{height:24px}.tnum{font-feature-settings:"tnum" 1}.center{text-align:center}.flex-1{flex:1}@media (prefers-reduced-motion:reduce){*,:after,:before{transition-duration:.001ms!important;animation-duration:.001ms!important}}.landing-shell{--bg:#f7faff;--bg-elev:#fff;--surface:#fff;--surface-2:#edf4ff;--surface-3:#e3ebf8;--border-soft:#ecf1f8;--border:#dfe7f4;--border-strong:#cbd7ea;--text:#171b29;--text-2:#3b4558;--text-3:#738095;--text-4:#a6b0c0;--brand:#3f76ff;--brand-2:#2f8cff;--brand-3:#1d4ed8;--brand-soft:#3f76ff1a;--brand-soft-2:#3f76ff24;--success:#25c987;--cell-0:#e7f0ed;min-height:100svh;color:var(--text);background:radial-gradient(760px 520px at 88% 5%,#5882ff3d,#0000 70%),radial-gradient(620px 420px at 84% 86%,#4891ff29,#0000 68%),radial-gradient(580px 420px at 28% 78%,#25c98717,#0000 72%),linear-gradient(115deg,#fff,#fbfdff 43%,#eef4ff);position:relative;overflow-x:clip}body:has(.landing-shell),html:has(.landing-shell),html:has(.landing-shell) body{background:radial-gradient(760px 520px at 88% 5%,#5882ff3d,#0000 70%),radial-gradient(620px 420px at 84% 86%,#4891ff29,#0000 68%),linear-gradient(115deg,#fff,#fbfdff 43%,#eef4ff)}.landing-shell:before{content:"";pointer-events:none;background:linear-gradient(90deg,#ffffffc7,#ffffff57 44%,#ffffff14),radial-gradient(520px 300px at 52% 24%,#ffffffb3,#0000 70%);position:absolute;inset:0}.landing-shell>*{z-index:1;position:relative}.landing-shell .topbar-public{-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border-bottom:0}.landing-shell .brand{box-shadow:none;background:0 0;padding:0}.landing-shell .brand .brand-full{height:28px}.landing-shell .brand .brand-full-dark{display:none!important}.landing-shell .brand .brand-full-light{display:block!important}.landing-shell .nav-link{color:var(--text-2)}@supports (color:color-mix(in lab,red,red)){.landing-shell .nav-link{color:color-mix(in srgb,var(--text-2) 88%,transparent)}}.landing-shell .nav-link:hover{color:var(--text);background:#3f76ff12}.landing-main{--content-public:1440px;padding:0 clamp(20px,5vw,72px) var(--s-8)}.landing-shell .btn.primary{color:#fff;background:linear-gradient(135deg,#2563eb,#3b82f6);border-color:#0000;box-shadow:0 18px 34px #3f76ff42}.landing-shell .btn:not(.primary){color:var(--text);background:#ffffffad;border-color:#94a3b86b;box-shadow:0 12px 28px #19274914}.lp-hero{min-height:calc(100svh - var(--topbar-h));grid-template-columns:minmax(320px,.82fr) minmax(640px,1.32fr);align-items:center;gap:38px;padding:34px 0 74px;display:grid}.lp-hero-text{align-content:center;gap:26px;min-width:0;padding-left:min(1vw,12px);display:grid}.lp-headline{letter-spacing:0;color:#1d2433;max-width:11ch;margin:0;font-size:4.25rem;font-weight:800;line-height:1.18}.lp-headline .accent{white-space:nowrap;color:#0000;background:linear-gradient(100deg,#3b82f6,#2563eb 58%,#1d2433 0);-webkit-background-clip:text;background-clip:text;position:relative}.lp-headline .accent:after{display:none}.lp-lead{max-width:32ch;color:var(--text-2);margin:0;font-size:1.25rem;line-height:1.7}.lp-hero-tools{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;max-width:520px;margin-top:12px;display:grid}.lp-hero-tool{gap:8px;min-width:0;display:grid}.lp-tool-icon{background:#ffffffc2;border-radius:12px;place-items:center;width:60px;height:60px;display:grid;box-shadow:0 16px 34px #19274917}.lp-tool-icon.note{color:var(--brand)}.lp-tool-icon.card{color:#18b981;background:linear-gradient(#dfffefe0,#ffffffdb)}.lp-tool-icon.chart{color:#2563eb;background:linear-gradient(#e2f0ffeb,#ffffffdb)}.lp-hero-tool strong{color:var(--text);font-size:1rem}.lp-hero-tool span:last-child{color:var(--text-2);font-size:.9375rem;line-height:1.55}.hero-actions{margin-top:2px}.lp-stage{isolation:isolate;perspective:1700px;perspective-origin:52% 42%;min-width:0;min-height:650px;padding:18px 0 44px;position:relative}.lp-stage:before{content:"";filter:blur(4px);z-index:-1;position:absolute;inset:8% -6% 0 2%}.lp-monitor{transform-origin:50%;width:min(100%,780px);transform-style:preserve-3d;margin:0 0 0 auto;transition:transform .6s;position:relative;transform:rotateX(4deg)rotateY(-10deg)rotate(1.2deg)}.lp-stage:hover .lp-monitor{transform:rotateX(2deg)rotateY(-7deg)rotate(1deg)}.lp-monitor-frame{background:linear-gradient(#f1f3f8,#dfe4ee);border:1px solid #c2cada9e;border-radius:30px;padding:18px;position:relative;box-shadow:0 34px 76px #37519133,inset 0 2px #ffffffd1}.lp-monitor-frame:before{content:"";background:#5a606c;border-radius:50%;width:4px;height:4px;position:absolute;top:9px;left:50%;transform:translate(-50%);box-shadow:0 0 0 1px #00000014}.lp-monitor-screen{background:#fff;border:1px solid #cbd5e1e6;border-radius:18px;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffffc7,0 0 0 1px #ffffff8c}.lp-monitor-stand{transform-origin:top;background:linear-gradient(90deg,#0000 0 16%,#d7dfedb8 16% 84%,#0000 84%),linear-gradient(#f5f8fde6,#cdd7e8c7);border-radius:0 0 34px 34px;width:42%;height:86px;margin:-4px auto 0;position:relative;transform:rotateX(54deg)}.lp-monitor-stand:before{content:"";background:radial-gradient(#ffffffd1,#dde5f2c7 58%,#c5d1e557 100%);border:1px solid #bec8db6b;border-radius:50%;width:128%;height:18px;position:absolute;bottom:0;left:50%;transform:translate(-50%);box-shadow:inset 0 1px #ffffffc2,0 24px 34px #2d4c962e}.lp-monitor-stand:after{content:"";filter:blur(18px);z-index:-1;background:#475e9638;border-radius:50%;height:24px;position:absolute;bottom:-16px;left:-42%;right:-42%}.lp-mock{background:linear-gradient(135deg,#fff,#fbfcff 58%,#f3f7ff);overflow:hidden}.lp-mock-body{grid-template-columns:128px 1fr;min-height:438px;display:grid}.lp-mock-side{border-right:1px solid var(--border-soft);background:#fafcffd1;align-content:start;gap:6px;padding:20px 10px;display:grid}.lp-side-brand{letter-spacing:0;color:var(--text);align-items:center;gap:6px;padding:2px 8px 18px;font-size:12px;font-weight:700;display:inline-flex}.lp-side-brand img{object-fit:cover;border-radius:5px;width:18px;height:18px}.lp-side-item{height:34px;color:var(--text-3);border-radius:8px;align-items:center;gap:8px;padding:0 10px;font-size:12px;display:flex}.lp-side-item.active{color:var(--brand-3);background:linear-gradient(90deg,#6f48f517,#3f76ff0f)}.lp-side-item .dotmark{opacity:.6;background:currentColor;border-radius:3px;width:9px;height:9px}.lp-mock-main{align-content:start;gap:13px;min-width:0;padding:26px 28px 24px;display:grid}.lp-mock-topline{justify-content:flex-end;align-items:center;gap:12px;min-height:26px;display:flex}.lp-mock-search{width:92px;height:28px;color:var(--text-3);background:#f2f5fb;border-radius:999px;align-items:center;padding-left:34px;font-size:11px;display:flex;position:relative}.lp-mock-search:before{content:"";border:1.5px solid #60708a;border-radius:50%;width:9px;height:9px;position:absolute;left:14px}.lp-mock-search:after{content:"";transform-origin:0;background:#60708a;width:5px;height:1.5px;position:absolute;left:22px;transform:rotate(45deg)}.lp-mock-bell{border:1.5px solid #c6cfdf;border-radius:7px;width:18px;height:18px;position:relative}.lp-mock-bell:after{content:"";background:#ffb23f;border-radius:50%;width:5px;height:5px;position:absolute;top:-2px;right:-2px}.lp-mock-avatar{color:#fff;background:linear-gradient(135deg,#e2efff,#437cff);border-radius:50%;place-items:center;width:28px;height:28px;font-size:12px;font-weight:800;display:grid}.lp-mock-greet{gap:2px;display:grid}.lp-mock-greet .greet-name{letter-spacing:0;font-size:17px;font-weight:700}.lp-mock-greet .greet-sub{color:var(--text-3);font-size:12px}.lp-mock-section-label{color:var(--text);margin-top:4px;font-size:12px;font-weight:700}.lp-mock-stats{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.lp-mock-stat{background:#ffffffd6;border:1px solid #e4ebf5;border-radius:10px;min-width:0;padding:13px 14px;box-shadow:0 12px 26px #1e37690a}.lp-mock-stat .lbl{color:var(--text-3);letter-spacing:0;font-size:10px}.lp-mock-stat .val{font-feature-settings:"tnum" 1;color:#111827;margin-top:7px;font-size:18px;font-weight:700}.lp-mock-panel{background:#ffffffdb;border:1px solid #e4ebf5;border-radius:12px;padding:14px;box-shadow:0 14px 30px #1e37690a}.lp-mock-panel .head{color:var(--text-3);justify-content:space-between;align-items:center;margin-bottom:10px;font-size:11px;display:flex}.lp-mock-panel .head .ttl{color:var(--text);font-weight:700}.lp-mock-heatmap{grid-template-rows:repeat(7,1fr);grid-template-columns:repeat(30,1fr);grid-auto-flow:column;gap:4px;height:90px;display:grid}.lp-mock-heatmap .c{background:var(--cell-0);border-radius:3px}.lp-mock-heatmap .c.l1{background:#47d18c}@supports (color:color-mix(in lab,red,red)){.lp-mock-heatmap .c.l1{background:color-mix(in srgb,#47d18c 18%,var(--cell-0))}}.lp-mock-heatmap .c.l2{background:#47d18c}@supports (color:color-mix(in lab,red,red)){.lp-mock-heatmap .c.l2{background:color-mix(in srgb,#47d18c 36%,var(--cell-0))}}.lp-mock-heatmap .c.l3{background:#47d18c}@supports (color:color-mix(in lab,red,red)){.lp-mock-heatmap .c.l3{background:color-mix(in srgb,#47d18c 58%,var(--cell-0))}}.lp-mock-heatmap .c.l4{background:#47d18c}@supports (color:color-mix(in lab,red,red)){.lp-mock-heatmap .c.l4{background:color-mix(in srgb,#47d18c 80%,var(--cell-0))}}.lp-mock-list{gap:0;display:grid}.lp-mock-list .row-i{border-bottom:1px solid #edf2f8;align-items:center;gap:10px;min-width:0;padding:10px 0;font-size:12px;display:flex}.lp-mock-list .row-i:last-child{border-bottom:0}.lp-mock-list .row-i .note-dot{background:linear-gradient(#3f76ff,#3f76ff) 50% 44%/9px 2px no-repeat,linear-gradient(#3f76ff,#3f76ff) 50% 60%/9px 2px no-repeat,#eef4ff;border-radius:7px;flex:0 0 22px;width:22px;height:22px}.lp-mock-list .row-i .ttl{color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.lp-mock-list .row-i .meta{color:var(--text-3);flex-shrink:0;font-size:10px}.lp-float{-webkit-backdrop-filter:saturate(170%)blur(16px);backdrop-filter:saturate(170%)blur(16px);z-index:2;background:linear-gradient(#ffffffeb,#ffffffbd);border:1px solid #dbe2eeeb;border-radius:28px;width:244px;padding:18px;position:absolute;box-shadow:0 34px 70px #485d962b}.lp-float .ftop{color:var(--text-3);letter-spacing:0;justify-content:space-between;align-items:center;margin-bottom:10px;font-size:10px;font-weight:600;display:flex}.lp-float .fttl{letter-spacing:0;margin-bottom:8px;font-size:16px;font-weight:700}.lp-float ul.fbody{color:var(--text-2);gap:4px;margin:0;padding:0 0 0 14px;font-size:13px;display:grid}.lp-note-sketch{border-bottom:2px solid #111827;height:46px;margin:12px 20px 0;position:relative}.lp-note-sketch:before{content:"F";color:#111827;font-size:12px;position:absolute;top:0;left:45%}.lp-note-sketch:after{content:"";background:linear-gradient(90deg,#0000 44%,#111827 45% 47%,#0000 48%),#ffffff80;border:1.5px solid #111827;width:32px;height:22px;position:absolute;top:18px;left:42%}.lp-float .fchips{gap:6px;margin-top:14px;display:flex}.lp-float .fchip{color:#6252d6;background:#eef2ff;border:0;border-radius:999px;padding:4px 10px;font-size:11px}.lp-float-note{width:270px;bottom:78px;left:18px;transform:rotate(-5deg)}.lp-float-review{background:linear-gradient(150deg,#ffffffc7,#e0d6ffbd 50%,#cfe2ffc7);width:268px;min-height:236px;top:53%;right:-2px;transform:rotate(5deg)}.lp-float.review .fq{text-align:center;border-bottom:1px solid #8291ae42;margin-bottom:10px;padding:40px 4px 42px;font-size:16px;font-weight:700;line-height:1.45}.lp-float.review .fanswer{color:#3367ff;text-align:center;margin:-4px 0 12px;font-size:12px}.lp-float.review .frate{grid-template-columns:repeat(3,1fr);gap:10px;margin-top:6px;display:grid}.lp-float.review .frate span{border:0;border-radius:999px;place-items:center;height:28px;font-size:11px;font-weight:700;display:grid}.lp-float.review .frate .again{color:#ef6f73;background:#ffe5e9d1}.lp-float.review .frate .good{color:#20a766;background:#e1fbeed1}.lp-float.review .frate .easy{color:#4773ff;background:#eef4ffe6}.lp-features{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.lp-feature{border:1px solid var(--border);border-radius:var(--r-md);background:linear-gradient(#ffffff06,#ffffff02);gap:12px;padding:22px;transition:border-color .15s,transform .15s;display:grid}.lp-feature:hover{border-color:var(--border-strong);transform:translateY(-2px)}[data-theme=light] .lp-feature{background:linear-gradient(#ffffffe6,#ffffffb3)}.lp-feature-icon{background:var(--brand-soft);width:40px;height:40px;color:var(--brand);border:1px solid var(--brand);border-radius:10px;place-items:center;display:grid}@supports (color:color-mix(in lab,red,red)){.lp-feature-icon{border:1px solid color-mix(in srgb,var(--brand) 22%,transparent)}}.lp-feature h3{letter-spacing:0;margin:0;font-size:1.0625rem;font-weight:600}.lp-feature p{color:var(--text-2);margin:0;font-size:.875rem;line-height:1.6}.lp-feature .fmeta{color:var(--text-3);border-top:1px solid var(--border-soft);align-items:center;gap:8px;margin-top:4px;padding-top:10px;font-size:11px;display:flex}.lp-how{border:1px solid var(--border);border-radius:var(--r-md);background:linear-gradient(#ffffff06,#ffffff02);padding:28px}[data-theme=light] .lp-how{background:linear-gradient(#ffffffe6,#ffffffb3)}.lp-how-head{gap:4px;margin-bottom:18px;display:grid}.lp-how-head h2{margin:0}.lp-heat-preview{border:1px solid var(--border);border-radius:var(--r-md);background:linear-gradient(#ffffff06,#ffffff02);padding:24px}[data-theme=light] .lp-heat-preview{background:linear-gradient(#ffffffe6,#ffffffb3)}.lp-cta{text-align:center;border-top:1px solid var(--border-soft);place-items:center;gap:14px;padding:56px 0 64px;display:grid}.lp-cta h2{letter-spacing:-.012em;margin:0;font-size:clamp(1.5rem,3vw,2rem);font-weight:700}.lp-cta p{color:var(--text-2);max-width:52ch;margin:0}@media (max-width:1080px){.landing-main{padding-inline:28px}.lp-hero{grid-template-columns:1fr;gap:36px;padding:48px 0 64px}.lp-headline{font-size:3.75rem}.lp-lead{max-width:44ch}.lp-stage{min-height:620px;padding:8px 0 24px}.lp-monitor{margin-inline:auto}.lp-float-note{bottom:28px;left:18px}.lp-float-review{top:44%;right:14px}}@media (max-width:880px){.lp-hero-tools{gap:18px}.lp-features{grid-template-columns:1fr}}@media (max-width:720px){.landing-shell .topbar{padding-inline:16px}.landing-shell .nav-link{display:none}.landing-main{padding-inline:16px}.lp-hero{padding:32px 0 48px}.lp-headline{font-size:3rem;line-height:1.14}.lp-lead{font-size:1.0625rem}.lp-hero-tools{grid-template-columns:1fr;max-width:none}.lp-hero-tool{grid-template-columns:48px 1fr;align-items:center;column-gap:12px}.lp-tool-icon{grid-row:span 2;width:48px;height:48px}.lp-float{display:none}.lp-stage{min-height:auto;padding-bottom:0}.lp-monitor{width:100%;transform:none}.lp-monitor-frame{border-radius:18px;padding:10px}.lp-monitor-screen{border-radius:12px}.lp-monitor-stand{width:46%;height:42px;margin-top:-3px}.lp-mock-body{grid-template-columns:1fr;min-height:auto}.lp-mock-side{display:none}.lp-mock-stats{grid-template-columns:repeat(2,1fr)}.lp-mock-main{padding:18px}.lp-mock-heatmap{gap:2px;height:74px}}[data-theme=light]{--bg:#f4f5f8;--bg-elev:#fff;--surface:#fff;--surface-2:#eef0f3;--surface-3:#e4e7ec;--surface-inv:#1a1d22;--border-soft:#e8eaee;--border:#d1d5dc;--border-strong:#a0a9b8;--text:#111318;--text-2:#3d4555;--text-3:#6b7585;--text-4:#9aa3b2;--accent-warm:#2d2620;--brand:#2563eb;--brand-2:#3b82f6;--brand-3:#1e40af;--brand-soft:#2563eb1a;--brand-soft-2:#2563eb2e;--success:#16a34a;--warning:#d97706;--danger:#dc2626;--cell-0:#e4e7ec;--shadow-1:0 1px 0 #0000000f;--shadow-2:0 8px 24px #0000001a}html[data-theme=light]{color-scheme:light}[data-theme=light] body{background:radial-gradient(1200px 600px at 20% -10%,#2563eb0a,transparent 60%),radial-gradient(900px 500px at 100% 0,#2d262005,transparent 60%),var(--bg)}[data-theme=light] ::-webkit-scrollbar-thumb{border:2px solid var(--bg);background:#c4c9d4}[data-theme=light] ::-webkit-scrollbar-thumb:hover{background:#a0a9b8}[data-theme=light] .topbar{background:#f4f5f8d9}[data-theme=light] .brand{box-shadow:none;background:0 0;padding:0}[data-theme=light] .sidebar{background:linear-gradient(180deg,#00000001,transparent 70%),var(--bg)}[data-theme=light] .nav-link:hover,[data-theme=light] .sidebar-item:hover{background:#0000000a}[data-theme=light] .btn.ghost:hover{background:#0000000d}[data-theme=light] .btn.primary{color:#fff}[data-theme=light] .btn.primary:hover{background:var(--brand-2);border-color:var(--brand-2)}[data-theme=light] .btn.danger{color:var(--danger);border-color:#dc262666}[data-theme=light] .btn.danger:hover{border-color:var(--danger);background:#dc262612}[data-theme=light] .panel{background:linear-gradient(#ffffffe6,#ffffffb3)}[data-theme=light] a.panel-link:hover,[data-theme=light] a.panel:hover{background:linear-gradient(#fff,#ffffffe6)}[data-theme=light] .chip:hover{background:var(--surface-2)}[data-theme=light] .cat-dot{box-shadow:0 0 0 3px var(--cat-color,#cedaf3)}@supports (color:color-mix(in lab,red,red)){[data-theme=light] .cat-dot{box-shadow:0 0 0 3px color-mix(in srgb,var(--cat-color,#cedaf3) 22%,#eaecf0)}}[data-theme=light] .heatmap{background:#00000005}[data-theme=light] .cell{outline:1px solid #0000000f}[data-theme=light] .cell.l1{background:var(--cat-color,#5b8def)}@supports (color:color-mix(in lab,red,red)){[data-theme=light] .cell.l1{background:color-mix(in srgb,var(--cat-color,#5b8def) 15%,var(--cell-0))}}[data-theme=light] .cell.l2{background:var(--cat-color,#5b8def)}@supports (color:color-mix(in lab,red,red)){[data-theme=light] .cell.l2{background:color-mix(in srgb,var(--cat-color,#5b8def) 32%,var(--cell-0))}}[data-theme=light] .cell.l3{background:var(--cat-color,#5b8def)}@supports (color:color-mix(in lab,red,red)){[data-theme=light] .cell.l3{background:color-mix(in srgb,var(--cat-color,#5b8def) 54%,var(--cell-0))}}[data-theme=light] .cell.l4{background:var(--cat-color,#5b8def)}@supports (color:color-mix(in lab,red,red)){[data-theme=light] .cell.l4{background:color-mix(in srgb,var(--cat-color,#5b8def) 75%,var(--cell-0))}}[data-theme=light] .cell.l5{background:var(--cat-color,#5b8def)}@supports (color:color-mix(in lab,red,red)){[data-theme=light] .cell.l5{background:color-mix(in srgb,var(--cat-color,#5b8def) 92%,var(--cell-0))}}[data-theme=light] .badge{background:var(--surface-3);color:var(--text-2)}[data-theme=light] .badge.success{color:#15803d;background:#16a34a1a}[data-theme=light] .badge.warning{color:#92400e;background:#d977061f}[data-theme=light] .badge.danger{color:#b91c1c;background:#dc26261a}[data-theme=light] .review-fullscreen{background:var(--bg)}[data-theme=light] .review-shell{background:radial-gradient(800px 400px at 50% -10%,#2563eb0d,transparent 60%),var(--bg)}[data-theme=light] .review-card{background:linear-gradient(#fffffff2,#ffffffd9)}[data-theme=light] .review-actions .show-answer{background:var(--surface-2);border-color:var(--border);color:var(--text)}[data-theme=light] .review-actions .show-answer:hover{border-color:var(--border-strong)}[data-theme=light] .rate-btn{background:var(--surface-2);border-color:var(--border);color:var(--text)}[data-theme=light] .rate-btn.again{color:#b91c1c;background:#dc26260d;border-color:#dc262673}[data-theme=light] .rate-btn.hard{color:#92400e;background:#d977060d;border-color:#d9770673}[data-theme=light] .rate-btn.good{color:#1e40af;background:#2563eb0d;border-color:#2563eb80}[data-theme=light] .rate-btn.easy{color:#15803d;background:#16a34a0d;border-color:#16a34a80}[data-theme=light] .today-card{background:linear-gradient(#ffffffe6,#ffffffb3)}[data-theme=light] .today-card:hover{background:linear-gradient(#fff,#ffffffd9)}[data-theme=light] .markdown pre{border-color:var(--border);background:#eef0f4}[data-theme=light] .markdown code{background:var(--surface-3);color:var(--brand-3)}[data-theme=light] .markdown a{color:var(--brand);text-decoration-color:#2563eb66}@media (max-width:760px){[data-theme=light] .bottom-tab{background:#f4f5f8eb}[data-theme=light] .more-sheet{background:var(--bg-elev)}[data-theme=light] .more-sheet-backdrop{background:#00000059}}[data-theme=light] .list-row{background:var(--surface)}[data-theme=light] .list-row:hover{background:var(--surface-2)}[data-theme=light] .blocknote-shell{background:var(--bg-elev)}[data-theme=light] .review-progress .pip{background:var(--surface-3)}[data-theme=light] .review-progress .pip.current{box-shadow:0 0 0 3px #2d262026}.study-fab{z-index:35;border:1px solid var(--border-strong);background:var(--bg-elev);width:48px;height:48px;color:var(--text-2);cursor:pointer;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:50%;place-items:center;transition:transform .15s,box-shadow .15s,color .15s,border-color .15s;display:grid;position:fixed;bottom:24px;right:20px;box-shadow:0 4px 18px #00000059}.study-fab:hover{color:var(--brand-3);border-color:var(--brand);transform:scale(1.1)}@supports (color:color-mix(in lab,red,red)){.study-fab:hover{border-color:color-mix(in srgb,var(--brand) 50%,var(--border-strong))}}.study-fab:hover{box-shadow:0 6px 28px #00000073,0 0 0 4px var(--brand)}@supports (color:color-mix(in lab,red,red)){.study-fab:hover{box-shadow:0 6px 28px #00000073,0 0 0 4px color-mix(in srgb,var(--brand) 14%,transparent)}}.study-fab:active{transform:scale(.96)}.study-dock{z-index:35;border:1px solid var(--border-strong);background:var(--bg-elev);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);white-space:nowrap;border-radius:999px;flex-direction:row;align-items:center;gap:10px;max-width:420px;padding:9px 10px 9px 14px;transition:border-color .18s,box-shadow .18s;display:flex;position:fixed;bottom:24px;right:20px;box-shadow:0 6px 28px #0006}.study-dock.is-running{border-color:var(--brand)}@supports (color:color-mix(in lab,red,red)){.study-dock.is-running{border-color:color-mix(in srgb,var(--brand) 55%,var(--border-strong))}}.study-dock.is-running{box-shadow:0 0 0 1px var(--brand),0 8px 32px #00000073}@supports (color:color-mix(in lab,red,red)){.study-dock.is-running{box-shadow:0 0 0 1px color-mix(in srgb,var(--brand) 20%,transparent),0 8px 32px #00000073}}.study-dock.is-paused{border-color:var(--warning)}@supports (color:color-mix(in lab,red,red)){.study-dock.is-paused{border-color:color-mix(in srgb,var(--warning) 45%,var(--border-strong))}}.study-dock-meta{flex:1;align-items:center;gap:7px;min-width:0;padding-left:2px;display:flex;overflow:hidden}.study-dock-cat{background:var(--cat-color,hsl(var(--cat,220) 70% 60%));border-radius:50%;flex:none;width:8px;height:8px;position:relative}.study-dock.is-running .study-dock-cat{box-shadow:0 0 0 3px var(--cat-color,hsl(var(--cat,220) 70% 60%))}@supports (color:color-mix(in lab,red,red)){.study-dock.is-running .study-dock-cat{box-shadow:0 0 0 3px color-mix(in srgb,var(--cat-color,hsl(var(--cat,220) 70% 60%)) 30%,transparent)}}.study-dock-cat-name{color:var(--text);text-overflow:ellipsis;max-width:100px;font-size:13px;font-weight:600;overflow:hidden}.study-dock-status{letter-spacing:.04em;text-transform:uppercase;border-radius:999px;flex:none;padding:2px 7px;font-size:10px;font-weight:700}.study-dock-status.running{background:var(--brand)}@supports (color:color-mix(in lab,red,red)){.study-dock-status.running{background:color-mix(in srgb,var(--brand) 18%,transparent)}}.study-dock-status.running{color:var(--brand-3)}.study-dock-status.paused{background:var(--warning)}@supports (color:color-mix(in lab,red,red)){.study-dock-status.paused{background:color-mix(in srgb,var(--warning) 22%,transparent)}}.study-dock-status.paused{color:var(--text-1)}.study-dock-time{font-family:var(--font-mono);font-feature-settings:"tnum" 1;letter-spacing:-.01em;color:var(--text-2);flex:none;font-size:16px;font-weight:700}.study-dock.is-running .study-dock-time{color:var(--brand-3)}.study-dock-actions{flex:none;gap:4px;display:flex}.study-dock-btn{border:1px solid var(--border);background:var(--surface-2);color:var(--text-2);cursor:pointer;white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:6px 10px;font-size:12px;font-weight:600;transition:background .15s,color .15s,border-color .15s;display:flex}.study-dock-btn:hover{background:var(--surface-3);color:var(--text);border-color:var(--border-strong)}.study-dock-btn.resume{background:var(--brand)}@supports (color:color-mix(in lab,red,red)){.study-dock-btn.resume{background:color-mix(in srgb,var(--brand) 15%,var(--surface-2))}}.study-dock-btn.resume{color:var(--brand-3);border-color:var(--brand)}@supports (color:color-mix(in lab,red,red)){.study-dock-btn.resume{border-color:color-mix(in srgb,var(--brand) 30%,var(--border))}}.study-dock-btn.resume:hover{background:var(--brand)}@supports (color:color-mix(in lab,red,red)){.study-dock-btn.resume:hover{background:color-mix(in srgb,var(--brand) 25%,var(--surface-2))}}.study-dock-btn.stop{background:var(--danger)}@supports (color:color-mix(in lab,red,red)){.study-dock-btn.stop{background:color-mix(in srgb,var(--danger) 12%,var(--surface-2))}}.study-dock-btn.stop{color:var(--danger);border-color:var(--danger)}@supports (color:color-mix(in lab,red,red)){.study-dock-btn.stop{border-color:color-mix(in srgb,var(--danger) 25%,var(--border))}}.study-dock-btn.stop:hover{background:var(--danger)}@supports (color:color-mix(in lab,red,red)){.study-dock-btn.stop:hover{background:color-mix(in srgb,var(--danger) 22%,var(--surface-2))}}.study-dock-btn:disabled{opacity:.5;cursor:not-allowed}@media (max-width:760px){.study-fab{right:16px;bottom:calc(var(--mobile-tab-height) + 10px)}.study-dock{right:12px;bottom:calc(var(--mobile-tab-height) + 6px);border-radius:14px;max-width:none;padding:10px 10px 10px 14px;left:12px}.study-dock-cat-name{max-width:80px}.study-dock-btn-label{display:none}.study-dock-btn{justify-content:center;width:34px;height:34px;padding:0}}.study-modal{max-width:480px}.study-cat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px;display:grid}@media (min-width:520px){.study-cat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.study-cat-chip{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;text-align:left;border-radius:10px;align-items:center;gap:8px;min-width:0;padding:10px 12px;font-size:13px;font-weight:500;transition:border-color .15s,background .15s;display:flex}.study-cat-chip:hover{border-color:var(--border-strong);background:var(--surface-2)}.study-cat-chip.is-selected{border-color:var(--brand);background:var(--brand)}@supports (color:color-mix(in lab,red,red)){.study-cat-chip.is-selected{background:color-mix(in srgb,var(--brand) 14%,var(--surface))}}.study-cat-chip.is-selected{color:var(--text);box-shadow:0 0 0 3px var(--brand)}@supports (color:color-mix(in lab,red,red)){.study-cat-chip.is-selected{box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 16%,transparent)}}.study-cat-chip>span:nth-child(2){text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.study-cat-chip-dot{border:1px dashed var(--border-strong);width:18px;height:18px;color:var(--text-3);border-radius:50%;place-items:center;font-size:11px;display:grid}.study-stop-summary{border:1px solid var(--border);text-align:center;background:linear-gradient(#ffffff0a,#ffffff03);border-radius:12px;gap:4px;margin:10px 0 16px;padding:16px;display:grid}.study-stop-time{font-family:var(--font-mono);font-feature-settings:"tnum" 1;letter-spacing:-.01em;color:var(--brand-3);font-size:clamp(32px,5vw,44px);font-weight:700}.study-min-edit{gap:6px;display:grid}.study-min-edit input[type=number]{border-radius:var(--r-md);border:1px solid var(--border);background:var(--surface);height:40px;color:var(--text);font-family:var(--font-mono);padding:0 12px;font-size:18px}.study-min-edit input[type=number]:focus-visible{outline:2px solid var(--brand);outline-offset:0}.study-calendar{gap:16px;display:grid}.study-cal-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.study-cal-title{letter-spacing:-.005em;font-size:1.25rem;font-weight:700}.study-cal-summary{color:var(--text-2);flex-wrap:wrap;gap:16px;font-size:13px;display:flex}.study-cal-summary strong{color:var(--brand-3);font-weight:700;font-family:var(--font-mono);font-feature-settings:"tnum" 1}.study-cal-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;display:grid}.study-cal-weekday{letter-spacing:.04em;text-transform:uppercase;color:var(--text-3);padding:4px 6px;font-size:11px;font-weight:600}.study-cal-cell{border:1px solid var(--border-soft);background:var(--surface);min-height:92px;color:inherit;text-align:left;cursor:pointer;border-radius:10px;flex-direction:column;gap:4px;padding:8px 8px 6px;transition:border-color .15s,background .15s,transform .1s;display:flex;position:relative}.study-cal-cell:hover{border-color:var(--border-strong);background:var(--surface-2)}.study-cal-cell.is-out{opacity:.35;cursor:default;pointer-events:none}.study-cal-cell.is-today{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand)}@supports (color:color-mix(in lab,red,red)){.study-cal-cell.is-today{box-shadow:0 0 0 1px color-mix(in srgb,var(--brand) 22%,transparent)}}.study-cal-cell.is-selected{border-color:var(--brand);background:var(--brand)}@supports (color:color-mix(in lab,red,red)){.study-cal-cell.is-selected{background:color-mix(in srgb,var(--brand) 12%,var(--surface))}}.study-cal-cell.has-data{background:var(--surface)}.study-cal-day{color:var(--text-2);z-index:1;justify-content:space-between;align-items:center;font-size:12px;display:flex;position:relative}.study-cal-day strong{color:var(--text);font-size:13px;font-weight:600}.study-cal-mins{font-family:var(--font-mono);font-feature-settings:"tnum" 1;color:var(--brand-3);white-space:nowrap;font-size:11px;font-weight:700}.study-cal-stamp{object-fit:contain;opacity:.28;pointer-events:none;-webkit-user-select:none;user-select:none;mix-blend-mode:multiply;width:52px;height:52px;transition:opacity .2s;position:absolute;bottom:16px;left:50%;transform:translate(-50%)rotate(-6deg)}.study-cal-cell.is-selected .study-cal-stamp,.study-cal-cell:hover .study-cal-stamp{opacity:.45}.study-cal-bars{border-radius:2px;gap:2px;height:4px;margin-top:auto;display:flex;overflow:hidden}.study-cal-bar{background:var(--cat-color,hsl(var(--cat,220) 70% 56%));flex:var(--w,1) 0 0;height:100%}.study-day-detail{gap:12px;display:grid}.study-day-detail header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.study-day-detail h3{margin:0;font-size:1.05rem}.study-session-list{gap:6px;display:grid}.study-session-row{border:1px solid var(--border-soft);background:var(--surface);border-radius:10px;grid-template-columns:auto 1fr auto auto;align-items:center;gap:10px;padding:10px 12px;display:grid}.study-session-row .study-session-when{font-family:var(--font-mono);font-feature-settings:"tnum" 1;color:var(--text-2);font-size:13px}.study-session-row .study-session-cat{color:var(--text);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:6px;min-width:0;padding-left:2px;font-size:13px;display:flex;overflow:hidden}.study-session-row .study-session-mins{font-family:var(--font-mono);font-feature-settings:"tnum" 1;color:var(--brand-3);font-size:13px;font-weight:700}.study-session-row .study-session-actions{gap:4px;display:flex}.study-session-row .study-session-edited{color:var(--text-3);background:var(--surface-3);margin-left:6px}.study-session-row .study-session-cont,.study-session-row .study-session-edited{letter-spacing:.04em;text-transform:uppercase;border-radius:999px;padding:2px 6px;font-size:10px;font-weight:700}.study-session-row .study-session-cont{color:var(--warning);background:var(--warning)}@supports (color:color-mix(in lab,red,red)){.study-session-row .study-session-cont{background:color-mix(in srgb,var(--warning) 14%,transparent)}}.study-edit-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}@media (max-width:600px){.study-cal-cell{min-height:60px;padding:5px 5px 4px}.study-cal-day strong{font-size:12px}.study-cal-mins{display:none}.study-cal-stamp{width:34px;height:34px;bottom:12px}.study-cal-bars{height:3px}.study-cal-grid{gap:3px}}@media (max-width:520px){.study-edit-grid{grid-template-columns:1fr}.study-session-row{grid-template-columns:1fr auto;grid-template-areas:"when actions""cat mins";gap:4px 10px}.study-session-when{grid-area:when}.study-session-cat{grid-area:cat}.study-session-mins{text-align:right;grid-area:mins}.study-session-actions{grid-area:actions}}.study-edit-grid label{color:var(--text-3);gap:4px;font-size:12px;display:grid}.study-edit-grid input,.study-edit-grid select{border-radius:var(--r-md);border:1px solid var(--border);background:var(--surface);height:38px;color:var(--text);font:inherit;padding:0 10px}[data-theme=dark] .study-cal-stamp{mix-blend-mode:normal;opacity:.18;filter:brightness(1.15)saturate(1.2)}[data-theme=dark] .study-cal-cell.is-selected .study-cal-stamp,[data-theme=dark] .study-cal-cell:hover .study-cal-stamp{opacity:.32}[data-theme=light] .study-dock,[data-theme=light] .study-fab{background:var(--bg-elev);box-shadow:0 4px 20px #0000001f,0 1px 4px #00000014}[data-theme=light] .study-dock.is-running{box-shadow:0 0 0 1px var(--brand),0 4px 20px #0000001f}@supports (color:color-mix(in lab,red,red)){[data-theme=light] .study-dock.is-running{box-shadow:0 0 0 1px color-mix(in srgb,var(--brand) 20%,transparent),0 4px 20px #0000001f}}.hover-underline:hover{text-underline-offset:2px;text-decoration:underline}.legal-list ul{flex-direction:column;gap:4px;padding-left:20px;list-style:outside;display:flex}@media (max-width:768px){.blocknote-shell .bn-block-content,.blocknote-shell .bn-editor,[contenteditable=true],input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea{font-size:16px}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}