*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.\!container{width:100%!important}.container{width:100%}@media(min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media(min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media(min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media(min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media(min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.collapse{visibility:collapse}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.inset-\[24\%\]{top:24%;right:24%;bottom:24%;left:24%}.-right-1{right:-.25rem}.-top-1{top:-.25rem}.-top-2{top:-.5rem}.-top-3{top:-.75rem}.bottom-4{bottom:1rem}.bottom-\[64px\]{bottom:64px}.left-0{left:0}.left-1\/2{left:50%}.left-3{left:.75rem}.right-0{right:0}.right-2{right:.5rem}.right-3{right:.75rem}.right-4{right:1rem}.top-0{top:0}.top-0\.5{top:.125rem}.top-1\/2{top:50%}.top-4{top:1rem}.top-\[calc\(100\%\+8px\)\]{top:calc(100% + 8px)}.top-full{top:100%}.z-10{z-index:10}.z-20{z-index:20}.z-40{z-index:40}.z-50{z-index:50}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-3{margin-left:.75rem;margin-right:.75rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-8{margin-left:2rem;margin-right:2rem}.mx-auto{margin-left:auto;margin-right:auto}.-mt-0\.5{margin-top:-.125rem}.-mt-2{margin-top:-.5rem}.mb-1{margin-bottom:.25rem}.mb-10{margin-bottom:2.5rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-6{margin-left:1.5rem}.ml-auto{margin-left:auto}.mr-2{margin-right:.5rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-16{margin-top:4rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.aspect-\[16\/10\]{aspect-ratio:16/10}.aspect-\[3\/2\]{aspect-ratio:3/2}.h-0{height:0px}.h-1\.5{height:.375rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-24{height:6rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-\[320px\]{height:320px}.h-full{height:100%}.h-screen{height:100vh}.max-h-\[200px\]{max-height:200px}.max-h-\[300px\]{max-height:300px}.max-h-\[80vh\]{max-height:80vh}.max-h-\[88vh\]{max-height:88vh}.min-h-0{min-height:0px}.min-h-\[42px\]{min-height:42px}.min-h-\[44px\]{min-height:44px}.w-0{width:0px}.w-10{width:2.5rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2\/3{width:66.666667%}.w-20{width:5rem}.w-24{width:6rem}.w-28{width:7rem}.w-3\.5{width:.875rem}.w-32{width:8rem}.w-4{width:1rem}.w-4\/5{width:80%}.w-40{width:10rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-\[320px\]{width:320px}.w-full{width:100%}.w-px{width:1px}.min-w-0{min-width:0px}.min-w-\[120px\]{min-width:120px}.min-w-\[130px\]{min-width:130px}.min-w-\[140px\]{min-width:140px}.min-w-\[160px\]{min-width:160px}.min-w-\[200px\]{min-width:200px}.min-w-\[44px\]{min-width:44px}.min-w-\[80px\]{min-width:80px}.min-w-full{min-width:100%}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-\[120px\]{max-width:120px}.max-w-\[200px\]{max-width:200px}.max-w-\[220px\]{max-width:220px}.max-w-\[260px\]{max-width:260px}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-full{--tw-translate-y: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0\.5{--tw-translate-x: .125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-5{--tw-translate-x: 1.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-0{--tw-translate-y: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-2{--tw-translate-y: .5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-\[2deg\]{--tw-rotate: 2deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-105{--tw-scale-x: 1.05;--tw-scale-y: 1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-125{--tw-scale-x: 1.25;--tw-scale-y: 1.25;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-90{--tw-scale-x: .9;--tw-scale-y: .9;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-95{--tw-scale-x: .95;--tw-scale-y: .95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes bounce{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;animation-timing-function:cubic-bezier(0,0,.2,1)}}.animate-bounce{animation:bounce 1s infinite}@keyframes fab-expand{0%{transform:scale(0) rotate(-180deg);opacity:0}to{transform:scale(1) rotate(0);opacity:1}}.animate-fab-expand{animation:fab-expand .2s ease-out}@keyframes notification-timer{0%{width:100%}to{width:0%}}.animate-notification-timer{animation:notification-timer 3s linear forwards}@keyframes pop-in{0%{transform:scale(.8);opacity:0}70%{transform:scale(1.05);opacity:1}to{transform:scale(1);opacity:1}}.animate-pop-in{animation:pop-in .2s ease-out}@keyframes slide-in-right{0%{transform:translate(16px);opacity:0}to{transform:translate(0);opacity:1}}.animate-slide-in-right{animation:slide-in-right .18s ease-out}@keyframes slide-in-up{0%{transform:translateY(8px);opacity:0}to{transform:translateY(0);opacity:1}}.animate-slide-in-up{animation:slide-in-up .18s ease-out}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-grab{cursor:grab}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize-none{resize:none}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-\[1fr_1fr_auto\]{grid-template-columns:1fr 1fr auto}.grid-cols-\[1fr_1fr_auto_auto\]{grid-template-columns:1fr 1fr auto auto}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.rounded-\[18px\]{border-radius:18px}.rounded-\[22px\]{border-radius:22px}.rounded-\[24px\]{border-radius:24px}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.border{border-width:1px}.border-2,.border-\[2px\]{border-width:2px}.border-\[3px\]{border-width:3px}.border-\[6px\]{border-width:6px}.border-x-\[16px\]{border-left-width:16px;border-right-width:16px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-b-\[24px\]{border-bottom-width:24px}.border-l-2{border-left-width:2px}.border-r-2{border-right-width:2px}.border-t{border-top-width:1px}.border-t-2{border-top-width:2px}.border-dashed{border-style:dashed}.border-none{border-style:none}.border-green-300{--tw-border-opacity: 1;border-color:rgb(134 239 172 / var(--tw-border-opacity, 1))}.border-green-500{--tw-border-opacity: 1;border-color:rgb(34 197 94 / var(--tw-border-opacity, 1))}.border-green-600\/30{border-color:#16a34a4d}.border-marker{--tw-border-opacity: 1;border-color:rgb(255 77 77 / var(--tw-border-opacity, 1))}.border-marker\/20{border-color:#ff4d4d33}.border-marker\/30{border-color:#ff4d4d4d}.border-orange-300{--tw-border-opacity: 1;border-color:rgb(253 186 116 / var(--tw-border-opacity, 1))}.border-orange-300\/50{border-color:#fdba7480}.border-pen{--tw-border-opacity: 1;border-color:rgb(45 93 161 / var(--tw-border-opacity, 1))}.border-pen\/20{border-color:#2d5da133}.border-pen\/25{border-color:#2d5da140}.border-pen\/30{border-color:#2d5da14d}.border-pen\/50{border-color:#2d5da180}.border-pencil{--tw-border-opacity: 1;border-color:rgb(45 45 45 / var(--tw-border-opacity, 1))}.border-pencil\/10{border-color:#2d2d2d1a}.border-pencil\/15{border-color:#2d2d2d26}.border-pencil\/20{border-color:#2d2d2d33}.border-pencil\/25{border-color:#2d2d2d40}.border-pencil\/30{border-color:#2d2d2d4d}.border-pencil\/40{border-color:#2d2d2d66}.border-pencil\/5{border-color:#2d2d2d0d}.border-transparent{border-color:transparent}.border-yellow-300{--tw-border-opacity: 1;border-color:rgb(253 224 71 / var(--tw-border-opacity, 1))}.border-x-transparent{border-left-color:transparent;border-right-color:transparent}.border-b-marker{--tw-border-opacity: 1;border-bottom-color:rgb(255 77 77 / var(--tw-border-opacity, 1))}.bg-blue-50\/50{background-color:#eff6ff80}.bg-erased{--tw-bg-opacity: 1;background-color:rgb(229 224 216 / var(--tw-bg-opacity, 1))}.bg-erased\/30{background-color:#e5e0d84d}.bg-erased\/40{background-color:#e5e0d866}.bg-erased\/50{background-color:#e5e0d880}.bg-erased\/60{background-color:#e5e0d899}.bg-green-100{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity, 1))}.bg-green-400{--tw-bg-opacity: 1;background-color:rgb(74 222 128 / var(--tw-bg-opacity, 1))}.bg-green-50{--tw-bg-opacity: 1;background-color:rgb(240 253 244 / var(--tw-bg-opacity, 1))}.bg-green-500{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.bg-marker{--tw-bg-opacity: 1;background-color:rgb(255 77 77 / var(--tw-bg-opacity, 1))}.bg-marker\/10{background-color:#ff4d4d1a}.bg-orange-100{--tw-bg-opacity: 1;background-color:rgb(255 237 213 / var(--tw-bg-opacity, 1))}.bg-paper{--tw-bg-opacity: 1;background-color:rgb(253 251 247 / var(--tw-bg-opacity, 1))}.bg-paper\/50{background-color:#fdfbf780}.bg-paper\/70{background-color:#fdfbf7b3}.bg-paper\/90{background-color:#fdfbf7e6}.bg-paper\/95{background-color:#fdfbf7f2}.bg-pen{--tw-bg-opacity: 1;background-color:rgb(45 93 161 / var(--tw-bg-opacity, 1))}.bg-pen\/10{background-color:#2d5da11a}.bg-pen\/15{background-color:#2d5da126}.bg-pen\/70{background-color:#2d5da1b3}.bg-pencil{--tw-bg-opacity: 1;background-color:rgb(45 45 45 / var(--tw-bg-opacity, 1))}.bg-pencil\/10{background-color:#2d2d2d1a}.bg-pencil\/20{background-color:#2d2d2d33}.bg-postit{--tw-bg-opacity: 1;background-color:rgb(255 249 196 / var(--tw-bg-opacity, 1))}.bg-postit\/50{background-color:#fff9c480}.bg-postit\/60{background-color:#fff9c499}.bg-postit\/70{background-color:#fff9c4b3}.bg-red-100{--tw-bg-opacity: 1;background-color:rgb(254 226 226 / var(--tw-bg-opacity, 1))}.bg-red-400{--tw-bg-opacity: 1;background-color:rgb(248 113 113 / var(--tw-bg-opacity, 1))}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\/70{background-color:#ffffffb3}.bg-white\/80{background-color:#fffc}.bg-white\/95{background-color:#fffffff2}.bg-yellow-100{--tw-bg-opacity: 1;background-color:rgb(254 249 195 / var(--tw-bg-opacity, 1))}.bg-yellow-300{--tw-bg-opacity: 1;background-color:rgb(253 224 71 / var(--tw-bg-opacity, 1))}.bg-yellow-400{--tw-bg-opacity: 1;background-color:rgb(250 204 21 / var(--tw-bg-opacity, 1))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-orange-50{--tw-gradient-from: #fff7ed var(--tw-gradient-from-position);--tw-gradient-to: rgb(255 247 237 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.to-red-50{--tw-gradient-to: #fef2f2 var(--tw-gradient-to-position)}.fill-yellow-500{fill:#eab308}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-7{padding-left:1.75rem;padding-right:1.75rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-1{padding-bottom:.25rem}.pb-2{padding-bottom:.5rem}.pb-3{padding-bottom:.75rem}.pl-2{padding-left:.5rem}.pl-3{padding-left:.75rem}.pl-9{padding-left:2.25rem}.pr-3{padding-right:.75rem}.pt-1{padding-top:.25rem}.pt-2{padding-top:.5rem}.pt-4{padding-top:1rem}.pt-\[15vh\]{padding-top:15vh}.text-left{text-align:left}.text-center{text-align:center}.font-body{font-family:Patrick Hand,cursive}.font-heading{font-family:Kalam,cursive}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-5xl{font-size:3rem;line-height:1}.text-6xl{font-size:3.75rem;line-height:1}.text-\[10px\]{font-size:10px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.italic{font-style:italic}.not-italic{font-style:normal}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-relaxed{line-height:1.625}.leading-tight{line-height:1.25}.tracking-\[0\.18em\]{letter-spacing:.18em}.tracking-wide{letter-spacing:.025em}.text-current{color:currentColor}.text-green-500{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity, 1))}.text-green-600{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity, 1))}.text-green-700{--tw-text-opacity: 1;color:rgb(21 128 61 / var(--tw-text-opacity, 1))}.text-green-800{--tw-text-opacity: 1;color:rgb(22 101 52 / var(--tw-text-opacity, 1))}.text-marker{--tw-text-opacity: 1;color:rgb(255 77 77 / var(--tw-text-opacity, 1))}.text-orange-400{--tw-text-opacity: 1;color:rgb(251 146 60 / var(--tw-text-opacity, 1))}.text-orange-500{--tw-text-opacity: 1;color:rgb(249 115 22 / var(--tw-text-opacity, 1))}.text-orange-600{--tw-text-opacity: 1;color:rgb(234 88 12 / var(--tw-text-opacity, 1))}.text-orange-700{--tw-text-opacity: 1;color:rgb(194 65 12 / var(--tw-text-opacity, 1))}.text-pen{--tw-text-opacity: 1;color:rgb(45 93 161 / var(--tw-text-opacity, 1))}.text-pencil{--tw-text-opacity: 1;color:rgb(45 45 45 / var(--tw-text-opacity, 1))}.text-pencil\/20{color:#2d2d2d33}.text-pencil\/25{color:#2d2d2d40}.text-pencil\/30{color:#2d2d2d4d}.text-pencil\/35{color:#2d2d2d59}.text-pencil\/40{color:#2d2d2d66}.text-pencil\/45{color:#2d2d2d73}.text-pencil\/50{color:#2d2d2d80}.text-pencil\/55{color:#2d2d2d8c}.text-pencil\/60{color:#2d2d2d99}.text-pencil\/70{color:#2d2d2db3}.text-red-700{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.text-red-800{--tw-text-opacity: 1;color:rgb(153 27 27 / var(--tw-text-opacity, 1))}.text-transparent{color:transparent}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-yellow-500{--tw-text-opacity: 1;color:rgb(234 179 8 / var(--tw-text-opacity, 1))}.text-yellow-700{--tw-text-opacity: 1;color:rgb(161 98 7 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.decoration-pen\/20{text-decoration-color:#2d5da133}.decoration-pen\/40{text-decoration-color:#2d5da166}.decoration-pencil\/20{text-decoration-color:#2d2d2d33}.decoration-dashed{text-decoration-style:dashed}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-30{opacity:.3}.opacity-70{opacity:.7}.shadow-hard{--tw-shadow: 4px 4px 0px 0px #2d2d2d;--tw-shadow-colored: 4px 4px 0px 0px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-hard-lg{--tw-shadow: 8px 8px 0px 0px #2d2d2d;--tw-shadow-colored: 8px 8px 0px 0px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-hard-sm{--tw-shadow: 2px 2px 0px 0px #2d2d2d;--tw-shadow-colored: 2px 2px 0px 0px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.ring-2{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-pen\/30{--tw-ring-color: rgb(45 93 161 / .3)}.ring-pen\/60{--tw-ring-color: rgb(45 93 161 / .6)}.ring-offset-1{--tw-ring-offset-width: 1px}.ring-offset-white{--tw-ring-offset-color: #fff}.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)}.backdrop-blur{--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-100{transition-duration:.1s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}:root{--editor-font-size: 18px}body{font-family:Patrick Hand,cursive;background-color:#fdfbf7;color:#2d2d2d;background-image:radial-gradient(#e5e0d8 1px,transparent 1px);background-size:24px 24px}html.dark body{background-color:#1e1e1e;color:#e0ddd5;background-image:radial-gradient(#333333 1px,transparent 1px)}html.neutral body{background-color:#f0f0f0;color:#3a3a3a;background-image:radial-gradient(#d8d8d8 1px,transparent 1px)}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background-color:#e5e0d8;border-radius:255px 15px 225px/15px 225px 15px 255px;border:2px solid transparent}html.dark ::-webkit-scrollbar-thumb{background-color:#444}.ProseMirror{outline:none;min-height:300px;font-family:Patrick Hand,cursive;font-size:var(--editor-font-size);line-height:1.8;padding:1rem}.ProseMirror p.is-editor-empty:first-child:before{content:attr(data-placeholder);float:left;color:#2d2d2d59;pointer-events:none;height:0;font-style:italic}html.dark .ProseMirror p.is-editor-empty:first-child:before{color:#e0ddd559}.ProseMirror h1{font-family:Kalam,cursive;font-weight:700;font-size:2em;margin-bottom:.5rem}.ProseMirror h2{font-family:Kalam,cursive;font-weight:700;font-size:1.5em;margin-bottom:.4rem}.ProseMirror h3{font-family:Kalam,cursive;font-weight:700;font-size:1.25em}.ProseMirror mark{padding:1px 4px;border-radius:4px}html.dark .ProseMirror mark{color:#e0ddd5}.ProseMirror ul{list-style-type:disc;padding-left:1.5rem}.ProseMirror ol{list-style-type:decimal;padding-left:1.5rem}.ProseMirror ul ul{list-style-type:circle}.ProseMirror ul ul ul{list-style-type:square}.ProseMirror ol ol{list-style-type:lower-alpha}.ProseMirror li{margin-bottom:.15em}.ProseMirror li>p{margin:0}.ProseMirror blockquote{border-left:4px solid rgba(45,93,161,.4);padding-left:1rem;margin:.75rem 0;color:#2d2d2db3;font-style:italic;background:#2d5da10a;padding:.5rem 1rem;border-radius:0 6px 6px 0}html.dark .ProseMirror blockquote{border-left-color:#a8d8ea66;color:#e0ddd5b3;background:#a8d8ea0f}.ProseMirror pre{font-family:Courier New,Courier,monospace;background:#2d2d2d0f;padding:.75rem 1rem;border-radius:6px;overflow-x:auto;margin:.75rem 0;line-height:1.5;font-size:.9em;border:1px solid rgba(45,45,45,.1)}html.dark .ProseMirror pre{background:#ffffff0f;border-color:#ffffff1a}.ProseMirror pre code{background:none;padding:0;border-radius:0;font-size:inherit}.ProseMirror code{font-family:Courier New,Courier,monospace;background:#2d2d2d14;padding:2px 5px;border-radius:3px;font-size:.88em}html.dark .ProseMirror code{background:#ffffff1a}.ProseMirror hr{border:none;border-top:2px dashed rgba(45,45,45,.25);margin:1.25rem 0}html.dark .ProseMirror hr{border-top-color:#e0ddd533}.ProseMirror a{color:#2d5da1;text-decoration:underline;text-decoration-color:#2d5da166;cursor:pointer;transition:text-decoration-color .15s}.ProseMirror a:hover{text-decoration-color:#2d5da1}html.dark .ProseMirror a{color:#7bb8e0;text-decoration-color:#7bb8e066}html.dark .ProseMirror a:hover{text-decoration-color:#7bb8e0}.ProseMirror sub{font-size:.75em;vertical-align:sub}.ProseMirror sup{font-size:.75em;vertical-align:super}.ProseMirror img{max-width:100%;height:auto;border:2px dashed rgba(45,45,45,.2);border-radius:8px;margin:.5rem 0}.ProseMirror img.ProseMirror-selectednode{outline:3px solid #2d5da1}.resize-handle{width:6px;cursor:col-resize;position:relative;flex-shrink:0;transition:background-color .15s;z-index:10}.resize-handle:hover,.resize-handle:active{background-color:#2d5da14d}.resize-handle:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:2px;height:32px;background:#2d2d2d26;border-radius:2px}.resize-handle:hover:after{background:#2d5da180}.folder-drop-target{outline:3px dashed #2d5da1;outline-offset:-2px;background-color:#2d5da114!important}.btn-press:active{transform:translate(4px,4px);box-shadow:none!important}.panel-slide-left{animation:slide-from-left .2s ease-out}.panel-slide-right{animation:slide-from-right .2s ease-out}@keyframes slide-from-left{0%{transform:translate(-100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slide-from-right{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.transition-panel{transition:width .2s ease,opacity .2s ease}@keyframes flash-highlight{0%{background-color:#2d5da159}to{background-color:transparent}}.flash-highlight{animation:flash-highlight 1.5s ease-out}@media print{.no-print{display:none!important}body{background-image:none!important;background-color:#fff!important}.ProseMirror{border:none!important;box-shadow:none!important}}@media(max-width:768px){.ProseMirror{padding:.75rem;font-size:16px}.mobile-sidebar-overlay{position:fixed;top:0;left:0;right:0;bottom:0;z-index:40;background:#0006}.mobile-sidebar-panel{position:fixed;top:0;bottom:0;width:85vw;max-width:360px;z-index:50;overflow-y:auto}.mobile-sidebar-panel.left{left:0;animation:slide-from-left .25s ease-out}.mobile-sidebar-panel.right{right:0;animation:slide-from-right .25s ease-out}.resize-handle{display:none}}.tooltip-arrow:after{content:"";position:absolute;bottom:-6px;left:50%;transform:translate(-50%);width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid #2d2d2d}body,body *,body *:before,body *:after{transition-property:background-color,border-color,color,fill,stroke,box-shadow;transition-duration:0ms}html.theme-transitioning body,html.theme-transitioning body *,html.theme-transitioning body *:before,html.theme-transitioning body *:after{transition-duration:.3s!important;transition-timing-function:ease-in-out!important}.ripple-container{position:relative;overflow:hidden}.ripple{position:absolute;border-radius:50%;background:currentColor;opacity:.18;transform:scale(0);animation:ripple-expand .5s ease-out forwards;pointer-events:none}@keyframes ripple-expand{to{transform:scale(2.5);opacity:0}}.skeleton{background:linear-gradient(90deg,#2d2d2d0f 25%,#2d2d2d1f,#2d2d2d0f 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s ease-in-out infinite;border-radius:6px}html.dark .skeleton{background:linear-gradient(90deg,#ffffff0a 25%,#ffffff14,#ffffff0a 75%);background-size:200% 100%}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.mobile-bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:45;display:flex;align-items:center;justify-content:space-around;height:60px;border-top:2px dashed rgba(45,45,45,.2);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);animation:slide-up-in .3s ease-out}html.dark .mobile-bottom-nav{border-top-color:#e0ddd533}.mobile-bottom-nav button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;flex:1;height:100%;font-family:Patrick Hand,cursive;font-size:11px;color:#2d2d2d80;transition:color .15s,transform .15s;position:relative}html.dark .mobile-bottom-nav button{color:#e0ddd580}.mobile-bottom-nav button.active{color:#ff4d4d;transform:translateY(-2px)}.mobile-bottom-nav .nav-badge{position:absolute;top:6px;right:50%;transform:translate(14px);min-width:16px;height:16px;border-radius:8px;background:#ff4d4d;color:#fff;font-size:10px;display:flex;align-items:center;justify-content:center;padding:0 4px;font-family:Patrick Hand,cursive}.bottom-sheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:55;background:#0006;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fade-in .2s ease-out}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.bottom-sheet{position:fixed;bottom:0;left:0;right:0;z-index:56;max-height:90vh;overflow-y:auto;border-top-left-radius:20px;border-top-right-radius:20px;animation:sheet-up .3s cubic-bezier(.32,.72,0,1)}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.bottom-sheet .drag-handle{width:36px;height:4px;border-radius:2px;background:#2d2d2d33;margin:10px auto 6px}html.dark .bottom-sheet .drag-handle{background:#e0ddd54d}.fab-button{position:fixed;z-index:44;width:56px;height:56px;border-radius:50%;border:3px solid rgba(45,45,45,.7);background:#ff4d4d;color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:4px 4px #2d2d2d26;cursor:pointer;transition:transform .2s,box-shadow .2s}.fab-button:active{transform:scale(.92)!important;box-shadow:2px 2px #2d2d2d26}.fab-actions{position:fixed;z-index:43;display:flex;flex-direction:column;gap:12px;align-items:center}.fab-actions button{width:44px;height:44px;border-radius:50%;border:2px solid rgba(45,45,45,.5);display:flex;align-items:center;justify-content:center;box-shadow:2px 2px #2d2d2d1a;cursor:pointer}.reading-progress{position:sticky;top:0;left:0;right:0;height:3px;z-index:20;background:#2d2d2d0f}.reading-progress-fill{height:100%;transition:width .1s linear;background:linear-gradient(90deg,#2d5da1,#ff4d4d);border-radius:0 2px 2px 0}html.dark .reading-progress{background:#ffffff0f}.flashcard-3d{perspective:1000px}.flashcard-inner{position:relative;width:100%;height:100%;transition:transform .6s cubic-bezier(.4,0,.2,1);transform-style:preserve-3d}.flashcard-inner.flipped{transform:rotateY(180deg)}.flashcard-front,.flashcard-back{position:absolute;top:0;right:0;bottom:0;left:0;backface-visibility:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center}.flashcard-back{transform:rotateY(180deg)}.confetti-container{position:fixed;top:0;left:0;right:0;height:0;z-index:100;pointer-events:none;overflow:visible}.confetti-piece{position:absolute;top:-10px;width:10px;height:10px;opacity:0;animation:confetti-fall 1.8s ease-out forwards}@keyframes confetti-fall{0%{transform:translateY(0) rotate(0);opacity:1}to{transform:translateY(100vh) rotate(720deg);opacity:0}}*:focus-visible{outline:2px dashed #2d5da1;outline-offset:2px}html.dark *:focus-visible{outline-color:#7bb8e0}.skip-link{position:fixed;top:-100%;left:4px;z-index:999;padding:8px 16px;background:#2d5da1;color:#fff;font-family:Patrick Hand,cursive;border-radius:0 0 8px 8px;transition:top .2s}.skip-link:focus{top:0}.notification-progress{position:absolute;bottom:0;left:0;height:3px;background:currentColor;opacity:.25;border-radius:0 0 0 8px}.toolbar-collapsible{transition:transform .25s ease,opacity .25s ease}.toolbar-hidden{transform:translateY(-100%);opacity:0;pointer-events:none}.glow-pulse-word{animation:glow-pulse-anim 1s ease-in-out 3;border-radius:3px}@keyframes glow-pulse-anim{0%,to{box-shadow:0 0 4px 2px #2d5da14d;background-color:#2d5da11a}50%{box-shadow:0 0 14px 6px #2d5da180;background-color:#2d5da133}}.swipe-hint-left,.swipe-hint-right{position:fixed;top:50%;transform:translateY(-50%);width:4px;height:60px;border-radius:0 4px 4px 0;background:#2d5da126;z-index:30;transition:opacity .3s,width .3s;pointer-events:none}.swipe-hint-left{left:0}.swipe-hint-right{right:0;border-radius:4px 0 0 4px}.swipe-hint-left.active,.swipe-hint-right.active{width:6px;background:#2d5da166}.drag-ghost-enhanced{transform:rotate(2deg) scale(1.04);box-shadow:8px 8px #2d2d2d1f;opacity:.95}.drop-zone-pulse{animation:drop-zone-pulse 1s ease-in-out infinite}@keyframes drop-zone-pulse{0%,to{border-color:#2d5da14d}50%{border-color:#2d5da1b3}}.drag-source-dim{opacity:.35;background:repeating-linear-gradient(45deg,transparent,transparent 4px,rgba(45,93,161,.05) 4px,rgba(45,93,161,.05) 8px)}.star-burst{animation:star-burst-anim .4s ease-out}@keyframes star-burst-anim{0%{transform:scale(1)}30%{transform:scale(1.5);filter:brightness(1.3)}60%{transform:scale(.9)}to{transform:scale(1)}}@media(max-width:768px){.has-bottom-nav{padding-bottom:64px}.touch-target{min-height:48px;min-width:48px}.exercise-option-mobile{width:100%!important;min-height:52px;font-size:18px}.header-compact{transition:transform .25s ease,height .25s ease}.header-compact.collapsed{transform:translateY(-100%);height:0;overflow:hidden}}.vocab-section-header{position:sticky;top:0;z-index:5;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.search-highlight{background:#ff4d4d33;border-radius:2px;padding:0 1px}.wotd-card{position:relative;overflow:hidden}.wotd-card:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:conic-gradient(from 0deg,transparent,rgba(45,93,161,.04),transparent,rgba(255,77,77,.04),transparent);animation:wotd-rotate 8s linear infinite}@keyframes wotd-rotate{to{transform:rotate(360deg)}}.chart-bar{transition:height .5s cubic-bezier(.4,0,.2,1)}.mastery-bar{transition:width .6s cubic-bezier(.4,0,.2,1)}.placeholder\:text-pencil\/30::-moz-placeholder{color:#2d2d2d4d}.placeholder\:text-pencil\/30::placeholder{color:#2d2d2d4d}.placeholder\:text-pencil\/40::-moz-placeholder{color:#2d2d2d66}.placeholder\:text-pencil\/40::placeholder{color:#2d2d2d66}.hover\:-translate-y-0\.5:hover{--tw-translate-y: -.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:-translate-y-1:hover{--tw-translate-y: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:translate-x-\[1px\]:hover{--tw-translate-x: 1px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:translate-x-\[2px\]:hover{--tw-translate-x: 2px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:translate-y-\[1px\]:hover{--tw-translate-y: 1px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:translate-y-\[2px\]:hover{--tw-translate-y: 2px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:rotate-1:hover{--tw-rotate: 1deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:rotate-\[0\.5deg\]:hover{--tw-rotate: .5deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:rotate-\[15deg\]:hover{--tw-rotate: 15deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-110:hover{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:bg-erased:hover{--tw-bg-opacity: 1;background-color:rgb(229 224 216 / var(--tw-bg-opacity, 1))}.hover\:bg-erased\/30:hover{background-color:#e5e0d84d}.hover\:bg-erased\/40:hover{background-color:#e5e0d866}.hover\:bg-erased\/50:hover{background-color:#e5e0d880}.hover\:bg-marker:hover{--tw-bg-opacity: 1;background-color:rgb(255 77 77 / var(--tw-bg-opacity, 1))}.hover\:bg-pen:hover{--tw-bg-opacity: 1;background-color:rgb(45 93 161 / var(--tw-bg-opacity, 1))}.hover\:bg-pen\/15:hover{background-color:#2d5da126}.hover\:bg-postit:hover{--tw-bg-opacity: 1;background-color:rgb(255 249 196 / var(--tw-bg-opacity, 1))}.hover\:text-green-700:hover{--tw-text-opacity: 1;color:rgb(21 128 61 / var(--tw-text-opacity, 1))}.hover\:text-marker:hover{--tw-text-opacity: 1;color:rgb(255 77 77 / var(--tw-text-opacity, 1))}.hover\:text-pen:hover{--tw-text-opacity: 1;color:rgb(45 93 161 / var(--tw-text-opacity, 1))}.hover\:text-pencil:hover{--tw-text-opacity: 1;color:rgb(45 45 45 / var(--tw-text-opacity, 1))}.hover\:text-red-700:hover{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.hover\:text-white:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.hover\:text-yellow-400:hover{--tw-text-opacity: 1;color:rgb(250 204 21 / var(--tw-text-opacity, 1))}.hover\:text-yellow-500:hover{--tw-text-opacity: 1;color:rgb(234 179 8 / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:decoration-pen:hover{text-decoration-color:#2d5da1}.hover\:shadow-hard:hover{--tw-shadow: 4px 4px 0px 0px #2d2d2d;--tw-shadow-colored: 4px 4px 0px 0px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-hard-sm:hover{--tw-shadow: 2px 2px 0px 0px #2d2d2d;--tw-shadow-colored: 2px 2px 0px 0px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.focus\:border-pen:focus{--tw-border-opacity: 1;border-color:rgb(45 93 161 / var(--tw-border-opacity, 1))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-pen\/20:focus{--tw-ring-color: rgb(45 93 161 / .2)}.active\:scale-95:active{--tw-scale-x: .95;--tw-scale-y: .95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.active\:scale-\[0\.96\]:active{--tw-scale-x: .96;--tw-scale-y: .96;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.active\:scale-\[0\.97\]:active{--tw-scale-x: .97;--tw-scale-y: .97;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.active\:scale-\[0\.98\]:active{--tw-scale-x: .98;--tw-scale-y: .98;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.active\:scale-\[0\.9\]:active{--tw-scale-x: .9;--tw-scale-y: .9;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.active\:cursor-grabbing:active{cursor:grabbing}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:hover\:rotate-0:hover:disabled{--tw-rotate: 0deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:block{display:block}.group:hover .group-hover\:flex{display:flex}.group:hover .group-hover\:text-pen{--tw-text-opacity: 1;color:rgb(45 93 161 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:opacity-100{opacity:1}.dark\:border-blue-300\/30:is(.dark *){border-color:#93c5fd4d}.dark\:border-orange-600\/30:is(.dark *){border-color:#ea580c4d}.dark\:border-pencil-dark:is(.dark *){--tw-border-opacity: 1;border-color:rgb(224 221 213 / var(--tw-border-opacity, 1))}.dark\:border-pencil-dark\/10:is(.dark *){border-color:#e0ddd51a}.dark\:border-pencil-dark\/15:is(.dark *){border-color:#e0ddd526}.dark\:border-pencil-dark\/20:is(.dark *){border-color:#e0ddd533}.dark\:border-pencil-dark\/30:is(.dark *){border-color:#e0ddd54d}.dark\:border-pencil-dark\/5:is(.dark *){border-color:#e0ddd50d}.dark\:bg-black\/40:is(.dark *){background-color:#0006}.dark\:bg-blue-300:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(147 197 253 / var(--tw-bg-opacity, 1))}.dark\:bg-blue-900\/10:is(.dark *){background-color:#1e3a8a1a}.dark\:bg-blue-900\/20:is(.dark *){background-color:#1e3a8a33}.dark\:bg-blue-900\/30:is(.dark *){background-color:#1e3a8a4d}.dark\:bg-erased-dark:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(51 51 51 / var(--tw-bg-opacity, 1))}.dark\:bg-erased-dark\/30:is(.dark *){background-color:#3333334d}.dark\:bg-erased-dark\/40:is(.dark *){background-color:#3336}.dark\:bg-erased-dark\/50:is(.dark *){background-color:#33333380}.dark\:bg-erased-dark\/60:is(.dark *){background-color:#3339}.dark\:bg-erased-dark\/80:is(.dark *){background-color:#333c}.dark\:bg-green-900\/20:is(.dark *){background-color:#14532d33}.dark\:bg-green-900\/30:is(.dark *){background-color:#14532d4d}.dark\:bg-orange-900\/30:is(.dark *){background-color:#7c2d124d}.dark\:bg-paper-dark:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 30 30 / var(--tw-bg-opacity, 1))}.dark\:bg-paper-dark\/50:is(.dark *){background-color:#1e1e1e80}.dark\:bg-paper-dark\/70:is(.dark *){background-color:#1e1e1eb3}.dark\:bg-paper-dark\/80:is(.dark *){background-color:#1e1e1ecc}.dark\:bg-paper-dark\/90:is(.dark *){background-color:#1e1e1ee6}.dark\:bg-paper-dark\/95:is(.dark *){background-color:#1e1e1ef2}.dark\:bg-pen\/20:is(.dark *){background-color:#2d5da133}.dark\:bg-pen\/50:is(.dark *){background-color:#2d5da180}.dark\:bg-pencil-dark:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(224 221 213 / var(--tw-bg-opacity, 1))}.dark\:bg-pencil-dark\/10:is(.dark *){background-color:#e0ddd51a}.dark\:bg-red-900\/20:is(.dark *){background-color:#7f1d1d33}.dark\:bg-red-900\/30:is(.dark *){background-color:#7f1d1d4d}.dark\:bg-yellow-900\/30:is(.dark *){background-color:#713f124d}.dark\:from-orange-900\/20:is(.dark *){--tw-gradient-from: rgb(124 45 18 / .2) var(--tw-gradient-from-position);--tw-gradient-to: rgb(124 45 18 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:to-red-900\/20:is(.dark *){--tw-gradient-to: rgb(127 29 29 / .2) var(--tw-gradient-to-position)}.dark\:text-blue-300:is(.dark *){--tw-text-opacity: 1;color:rgb(147 197 253 / var(--tw-text-opacity, 1))}.dark\:text-green-300:is(.dark *){--tw-text-opacity: 1;color:rgb(134 239 172 / var(--tw-text-opacity, 1))}.dark\:text-green-400:is(.dark *){--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.dark\:text-orange-400:is(.dark *){--tw-text-opacity: 1;color:rgb(251 146 60 / var(--tw-text-opacity, 1))}.dark\:text-paper-dark:is(.dark *){--tw-text-opacity: 1;color:rgb(30 30 30 / var(--tw-text-opacity, 1))}.dark\:text-pencil:is(.dark *){--tw-text-opacity: 1;color:rgb(45 45 45 / var(--tw-text-opacity, 1))}.dark\:text-pencil-dark:is(.dark *){--tw-text-opacity: 1;color:rgb(224 221 213 / var(--tw-text-opacity, 1))}.dark\:text-pencil-dark\/20:is(.dark *){color:#e0ddd533}.dark\:text-pencil-dark\/25:is(.dark *){color:#e0ddd540}.dark\:text-pencil-dark\/30:is(.dark *){color:#e0ddd54d}.dark\:text-pencil-dark\/35:is(.dark *){color:#e0ddd559}.dark\:text-pencil-dark\/40:is(.dark *){color:#e0ddd566}.dark\:text-pencil-dark\/45:is(.dark *){color:#e0ddd573}.dark\:text-pencil-dark\/50:is(.dark *){color:#e0ddd580}.dark\:text-pencil-dark\/55:is(.dark *){color:#e0ddd58c}.dark\:text-pencil-dark\/60:is(.dark *){color:#e0ddd599}.dark\:text-pencil-dark\/70:is(.dark *){color:#e0ddd5b3}.dark\:text-red-300:is(.dark *){--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.dark\:text-red-400:is(.dark *){--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.dark\:text-yellow-400:is(.dark *){--tw-text-opacity: 1;color:rgb(250 204 21 / var(--tw-text-opacity, 1))}.dark\:shadow-hard-dark:is(.dark *){--tw-shadow: 4px 4px 0px 0px #e0ddd5;--tw-shadow-colored: 4px 4px 0px 0px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.dark\:shadow-hard-lg-dark:is(.dark *){--tw-shadow: 8px 8px 0px 0px #e0ddd5;--tw-shadow-colored: 8px 8px 0px 0px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.dark\:shadow-hard-sm-dark:is(.dark *){--tw-shadow: 2px 2px 0px 0px #e0ddd5;--tw-shadow-colored: 2px 2px 0px 0px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.dark\:ring-blue-300\/70:is(.dark *){--tw-ring-color: rgb(147 197 253 / .7)}.dark\:ring-offset-paper-dark:is(.dark *){--tw-ring-offset-color: #1e1e1e}.dark\:placeholder\:text-pencil-dark\/30:is(.dark *)::-moz-placeholder{color:#e0ddd54d}.dark\:placeholder\:text-pencil-dark\/30:is(.dark *)::placeholder{color:#e0ddd54d}.dark\:placeholder\:text-pencil-dark\/40:is(.dark *)::-moz-placeholder{color:#e0ddd566}.dark\:placeholder\:text-pencil-dark\/40:is(.dark *)::placeholder{color:#e0ddd566}.dark\:hover\:bg-blue-900\/30:hover:is(.dark *){background-color:#1e3a8a4d}.dark\:hover\:bg-erased-dark:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(51 51 51 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-erased-dark\/30:hover:is(.dark *){background-color:#3333334d}.dark\:hover\:bg-erased-dark\/40:hover:is(.dark *){background-color:#3336}.dark\:hover\:bg-erased-dark\/50:hover:is(.dark *){background-color:#33333380}.dark\:hover\:text-pencil-dark:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(224 221 213 / var(--tw-text-opacity, 1))}.dark\:hover\:shadow-hard-dark:hover:is(.dark *){--tw-shadow: 4px 4px 0px 0px #e0ddd5;--tw-shadow-colored: 4px 4px 0px 0px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}@media(min-width:768px){.md\:mx-8{margin-left:2rem;margin-right:2rem}.md\:inline{display:inline}.md\:w-56{width:14rem}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:p-8{padding:2rem}.md\:text-3xl{font-size:1.875rem;line-height:2.25rem}.md\:text-4xl{font-size:2.25rem;line-height:2.5rem}.md\:text-5xl{font-size:3rem;line-height:1}.md\:text-6xl{font-size:3.75rem;line-height:1}}@media(min-width:1024px){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-\[minmax\(0\,1\.1fr\)_minmax\(280px\,0\.9fr\)\]{grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr)}.lg\:items-start{align-items:flex-start}}@media(min-width:1280px){.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}
