*,: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;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]){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::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}.pointer-events-none{pointer-events:none}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{top:0;right:0;bottom:0;left:0}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.z-\[100\]{z-index:100}.z-\[80\]{z-index:80}.mx-2{margin-left:.5rem;margin-right:.5rem}.-mt-1{margin-top:-.25rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.mt-1{margin-top:.25rem}.mt-12{margin-top:3rem}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.table{display:table}.hidden{display:none}.h-3{height:.75rem}.h-\[30\%\]{height:30%}.h-full{height:100%}.h-screen{height:100vh}.max-h-\[160px\]{max-height:160px}.min-h-\[120px\]{min-height:120px}.min-h-\[4rem\]{min-height:4rem}.w-full{width:100%}.w-screen{width:100vw}.min-w-0{min-width:0px}.min-w-\[100px\]{min-width:100px}.min-w-\[4rem\]{min-width:4rem}.max-w-2xl{max-width:42rem}.max-w-4xl{max-width:56rem}.max-w-\[90\%\]{max-width:90%}.max-w-lg{max-width:32rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.scale-110{--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))}@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 pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;user-select:none}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.content-center{align-content:center}.content-start{align-content:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-\[2\.5rem\]{border-radius:2.5rem}.rounded-full{border-radius:9999px}.rounded-xl{border-radius:.75rem}.rounded-t-\[2rem\]{border-top-left-radius:2rem;border-top-right-radius:2rem}.rounded-tl-none{border-top-left-radius:0}.border{border-width:1px}.border-2{border-width:2px}.border-4{border-width:4px}.border-b-4{border-bottom-width:4px}.border-t-4{border-top-width:4px}.border-dashed{border-style:dashed}.border-blue-200{--tw-border-opacity: 1;border-color:rgb(191 219 254 / var(--tw-border-opacity, 1))}.border-blue-500{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.border-blue-500\/30{border-color:#3b82f64d}.border-green-300{--tw-border-opacity: 1;border-color:rgb(134 239 172 / var(--tw-border-opacity, 1))}.border-green-600{--tw-border-opacity: 1;border-color:rgb(22 163 74 / var(--tw-border-opacity, 1))}.border-purple-200{--tw-border-opacity: 1;border-color:rgb(233 213 255 / var(--tw-border-opacity, 1))}.border-purple-500{--tw-border-opacity: 1;border-color:rgb(168 85 247 / var(--tw-border-opacity, 1))}.border-purple-500\/30{border-color:#a855f74d}.border-red-300{--tw-border-opacity: 1;border-color:rgb(252 165 165 / var(--tw-border-opacity, 1))}.border-slate-100{--tw-border-opacity: 1;border-color:rgb(241 245 249 / var(--tw-border-opacity, 1))}.border-slate-200{--tw-border-opacity: 1;border-color:rgb(226 232 240 / var(--tw-border-opacity, 1))}.border-slate-300{--tw-border-opacity: 1;border-color:rgb(203 213 225 / var(--tw-border-opacity, 1))}.border-slate-600{--tw-border-opacity: 1;border-color:rgb(71 85 105 / var(--tw-border-opacity, 1))}.border-slate-700{--tw-border-opacity: 1;border-color:rgb(51 65 85 / var(--tw-border-opacity, 1))}.border-white\/20{border-color:#fff3}.border-white\/50{border-color:#ffffff80}.border-white\/60{border-color:#fff9}.border-white\/80{border-color:#fffc}.border-yellow-100{--tw-border-opacity: 1;border-color:rgb(254 249 195 / var(--tw-border-opacity, 1))}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.bg-blue-600{--tw-bg-opacity: 1;background-color:rgb(37 99 235 / var(--tw-bg-opacity, 1))}.bg-blue-900\/50{background-color:#1e3a8a80}.bg-green-100{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity, 1))}.bg-green-500{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.bg-purple-500{--tw-bg-opacity: 1;background-color:rgb(168 85 247 / var(--tw-bg-opacity, 1))}.bg-purple-600{--tw-bg-opacity: 1;background-color:rgb(147 51 234 / var(--tw-bg-opacity, 1))}.bg-purple-900\/50{background-color:#581c8780}.bg-red-100{--tw-bg-opacity: 1;background-color:rgb(254 226 226 / var(--tw-bg-opacity, 1))}.bg-slate-100{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.bg-slate-200{--tw-bg-opacity: 1;background-color:rgb(226 232 240 / var(--tw-bg-opacity, 1))}.bg-slate-50{--tw-bg-opacity: 1;background-color:rgb(248 250 252 / var(--tw-bg-opacity, 1))}.bg-slate-700{--tw-bg-opacity: 1;background-color:rgb(51 65 85 / var(--tw-bg-opacity, 1))}.bg-slate-800{--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity, 1))}.bg-slate-900{--tw-bg-opacity: 1;background-color:rgb(15 23 42 / var(--tw-bg-opacity, 1))}.bg-slate-900\/80{background-color:#0f172acc}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\/10{background-color:#ffffff1a}.bg-white\/40{background-color:#fff6}.bg-white\/50{background-color:#ffffff80}.bg-white\/60{background-color:#fff9}.bg-white\/80{background-color:#fffc}.bg-yellow-50{--tw-bg-opacity: 1;background-color:rgb(254 252 232 / var(--tw-bg-opacity, 1))}.bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.from-blue-500\/20{--tw-gradient-from: rgb(59 130 246 / .2) var(--tw-gradient-from-position);--tw-gradient-to: rgb(59 130 246 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-cyan-50{--tw-gradient-from: #ecfeff var(--tw-gradient-from-position);--tw-gradient-to: rgb(236 254 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-fuchsia-50{--tw-gradient-from: #fdf4ff var(--tw-gradient-from-position);--tw-gradient-to: rgb(253 244 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-purple-500\/20{--tw-gradient-from: rgb(168 85 247 / .2) var(--tw-gradient-from-position);--tw-gradient-to: rgb(168 85 247 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-slate-700\/50{--tw-gradient-from: rgb(51 65 85 / .5) var(--tw-gradient-from-position);--tw-gradient-to: rgb(51 65 85 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-white\/5{--tw-gradient-from: rgb(255 255 255 / .05) var(--tw-gradient-from-position);--tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-slate-900{--tw-gradient-to: rgb(15 23 42 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #0f172a var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-blue-100{--tw-gradient-to: #dbeafe var(--tw-gradient-to-position)}.to-purple-100{--tw-gradient-to: #f3e8ff var(--tw-gradient-to-position)}.to-slate-900{--tw-gradient-to: #0f172a var(--tw-gradient-to-position)}.to-transparent{--tw-gradient-to: transparent var(--tw-gradient-to-position)}.p-1{padding:.25rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-10{padding-left:2.5rem;padding-right:2.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.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}.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-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.pb-6{padding-bottom:1.5rem}.text-center{text-align:center}.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-black{font-weight:900}.font-bold{font-weight:700}.font-medium{font-weight:500}.uppercase{text-transform:uppercase}.italic{font-style:italic}.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-none{line-height:1}.leading-tight{line-height:1.25}.tracking-tight{letter-spacing:-.025em}.tracking-tighter{letter-spacing:-.05em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.text-blue-400{--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.text-green-600{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity, 1))}.text-purple-400{--tw-text-opacity: 1;color:rgb(192 132 252 / var(--tw-text-opacity, 1))}.text-purple-500{--tw-text-opacity: 1;color:rgb(168 85 247 / var(--tw-text-opacity, 1))}.text-purple-600{--tw-text-opacity: 1;color:rgb(147 51 234 / var(--tw-text-opacity, 1))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-red-700{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.text-slate-300{--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.text-slate-400{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.text-slate-500{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity, 1))}.text-slate-600{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.text-slate-700{--tw-text-opacity: 1;color:rgb(51 65 85 / var(--tw-text-opacity, 1))}.text-slate-800{--tw-text-opacity: 1;color:rgb(30 41 59 / var(--tw-text-opacity, 1))}.text-slate-900{--tw-text-opacity: 1;color:rgb(15 23 42 / 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-400{--tw-text-opacity: 1;color:rgb(250 204 21 / var(--tw-text-opacity, 1))}.text-yellow-500{--tw-text-opacity: 1;color:rgb(234 179 8 / var(--tw-text-opacity, 1))}.text-yellow-600{--tw-text-opacity: 1;color:rgb(202 138 4 / var(--tw-text-opacity, 1))}.opacity-100{opacity:1}.opacity-50{opacity:.5}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px 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-\[0_-10px_40px_rgba\(0\,0\,0\,0\.05\)\]{--tw-shadow: 0 -10px 40px rgba(0,0,0,.05);--tw-shadow-colored: 0 -10px 40px 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-\[0_0_10px_rgba\(0\,0\,0\,0\.1\)\]{--tw-shadow: 0 0 10px rgba(0,0,0,.1);--tw-shadow-colored: 0 0 10px 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-\[0_4px_0_0_\#15803d\]{--tw-shadow: 0 4px 0 0 #15803d;--tw-shadow-colored: 0 4px 0 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)}.shadow-\[0_4px_0_0_rgba\(0\,0\,0\,0\.2\)\]{--tw-shadow: 0 4px 0 0 rgba(0,0,0,.2);--tw-shadow-colored: 0 4px 0 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)}.shadow-inner{--tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / .05);--tw-shadow-colored: inset 0 2px 4px 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)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px 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-none{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;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)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px 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-green-300{--tw-shadow-color: #86efac;--tw-shadow: var(--tw-shadow-colored)}.ring-4{--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(4px + 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-green-100{--tw-ring-opacity: 1;--tw-ring-color: rgb(220 252 231 / var(--tw-ring-opacity, 1))}.drop-shadow-\[0_2px_0_rgba\(168\,85\,247\,0\.5\)\]{--tw-drop-shadow: drop-shadow(0 2px 0 rgba(168,85,247,.5));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)}.drop-shadow-\[0_2px_0_rgba\(59\,130\,246\,0\.5\)\]{--tw-drop-shadow: drop-shadow(0 2px 0 rgba(59,130,246,.5));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)}.drop-shadow-\[0_4px_0_\#ffffff40\]{--tw-drop-shadow: drop-shadow(0 4px 0 #ffffff40);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)}.drop-shadow-\[0_4px_0_rgba\(0\,0\,0\,0\.5\)\]{--tw-drop-shadow: drop-shadow(0 4px 0 rgba(0,0,0,.5));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)}.drop-shadow-lg{--tw-drop-shadow: drop-shadow(0 10px 8px rgb(0 0 0 / .04)) drop-shadow(0 4px 3px rgb(0 0 0 / .1));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)}.drop-shadow-md{--tw-drop-shadow: drop-shadow(0 4px 3px rgb(0 0 0 / .07)) drop-shadow(0 2px 2px rgb(0 0 0 / .06));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)}.drop-shadow-sm{--tw-drop-shadow: drop-shadow(0 1px 1px rgb(0 0 0 / .05));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)}.grayscale{--tw-grayscale: grayscale(100%);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)}.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-md{--tw-backdrop-blur: blur(12px);-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)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-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)}.backdrop-blur-xl{--tw-backdrop-blur: blur(24px);-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-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.hover\:scale-105:hover{--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))}.hover\:scale-\[1\.02\]:hover{--tw-scale-x: 1.02;--tw-scale-y: 1.02;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-green-600:hover{--tw-bg-opacity: 1;background-color:rgb(22 163 74 / var(--tw-bg-opacity, 1))}.hover\:bg-red-500\/90:hover{background-color:#ef4444e6}.hover\:bg-slate-100:hover{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.hover\:bg-slate-200:hover{--tw-bg-opacity: 1;background-color:rgb(226 232 240 / var(--tw-bg-opacity, 1))}.hover\:bg-slate-50:hover{--tw-bg-opacity: 1;background-color:rgb(248 250 252 / var(--tw-bg-opacity, 1))}.hover\:bg-slate-700:hover{--tw-bg-opacity: 1;background-color:rgb(51 65 85 / var(--tw-bg-opacity, 1))}.hover\:text-white:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.active\:translate-y-\[4px\]:active{--tw-translate-y: 4px;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-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\.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\:shadow-none:active{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.group:hover .group-hover\:-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))}.group:hover .group-hover\:translate-x-1{--tw-translate-x: .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))}@media(min-width:640px){.sm\:min-h-\[4\.5rem\]{min-height:4.5rem}.sm\:min-w-\[4\.5rem\]{min-width:4.5rem}}@media(min-width:768px){.md\:block{display:block}.md\:hidden{display:none}.md\:flex-row{flex-direction:row}.md\:gap-4{gap:1rem}.md\:border-b-0{border-bottom-width:0px}.md\:border-r-4{border-right-width:4px}.md\:p-2{padding:.5rem}.md\:px-6{padding-left:1.5rem;padding-right:1.5rem}.md\:text-2xl{font-size:1.5rem;line-height:2rem}.md\:text-4xl{font-size:2.25rem;line-height:2.5rem}.md\:text-7xl{font-size:4.5rem;line-height:1}.md\:text-8xl{font-size:6rem;line-height:1}.md\:text-sm{font-size:.875rem;line-height:1.25rem}}.portal{min-height:100dvh;background:#f8fafc;color:#24364b;font-family:Microsoft YaHei,PingFang SC,sans-serif;padding:24px;line-height:1.6;font-variant-numeric:tabular-nums}.portal *{box-sizing:border-box}.portal h1{font-size:clamp(1.5rem,3vw,2.5rem);font-weight:800;margin:0 0 18px}.portal h2{font-size:1.3rem;font-weight:700;margin:0 0 12px}.portal h3{font-weight:700}.portal button{border:1px solid #dce4ed;border-radius:10px;background:#fff;padding:9px 16px;cursor:pointer;transition:background .18s,transform .18s;color:inherit;line-height:1.4}.portal button:hover:enabled{background:#eef5fd}.portal button:active:enabled{transform:translateY(1px)}.portal button:disabled{opacity:.5;cursor:not-allowed}.portal button.primary{background:#10b981;color:#fff;border-color:#10b981}.portal button.danger{color:#e65464;background:#fff1f2;border-color:#ffd8df}.portal button.selected{background:#e1eefc;color:#2367ad;border-color:#8db7e5}.portal :focus-visible{outline:3px solid #75b6f0;outline-offset:3px}.portal input:not([type=checkbox]):not([type=file]),.portal select,.portal textarea{max-width:100%;border:1px solid #dce4ed;border-radius:8px;background:#f8fafc;padding:8px 10px;color:inherit;min-height:40px}.portal input[type=number]{width:90px}.portal input[type=checkbox]{width:18px;height:18px;accent-color:#11b981;flex-shrink:0;cursor:pointer}.portal label{display:flex;gap:8px;align-items:center}.portal textarea{width:100%;font-family:monospace}.portal-admin,.portal-card,.practice-play{max-width:1100px;margin:0 auto 20px}.portal-card{background:#fff;border-radius:20px;padding:24px;box-shadow:0 8px 25px #243b5308}.portal-row{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:12px 0}.portal-row h1,.portal-row h2{margin:0}.portal-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 20px}.portal-muted{color:#738399;font-size:.88rem}.portal-loading{padding:24px;text-align:center;background:#edf2f8;border-radius:12px}.portal-error{color:#b73546;background:#fff1f2;border-radius:12px;padding:16px;display:flex;gap:16px;align-items:center}.portal-error-text{color:#c43d54}.portal-success{color:#078c62}.portal-table{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left}th,td{padding:12px;border-bottom:1px solid #edf2f7}td small{display:block;color:#7b8796}.record-row{padding:18px 0;border-bottom:1px solid #edf2f7}.record-error{border-left:3px solid #ec8d9e;padding:8px 14px;margin:10px 0;background:#fff7f9}.record-row small{color:#78879a}.record-row p{margin:6px 0}.portal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#12213680;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:24px}.portal-dialog{background:#fff;border-radius:24px;width:min(600px,100%);max-height:90dvh;overflow:auto;padding:28px;box-shadow:0 20px 80px #14253630}.portal-home{max-width:840px;margin:auto;text-align:center;background-image:radial-gradient(#dce4ee 1px,transparent 1px);background-size:22px 22px;padding:10px 28px 36px}.portal-mascot{position:relative;border:0!important;background:transparent!important;display:block;margin:auto;padding:0!important;opacity:1!important}.portal-mascot img{height:clamp(210px,38vh,410px);max-width:100%;object-fit:contain}.portal-mascot span{display:block;font-size:12px;color:#8293a6}.portal-home h1{font-size:clamp(28px,4vw,49px);margin:12px 0 0;letter-spacing:-1px}.portal-home h1 em{color:#5a7ebe;font-style:normal}.portal-home-cards{display:grid;gap:14px;margin:24px 0}.portal-home-cards button{display:flex;align-items:center;gap:20px;text-align:left;border:0;padding:15px 22px;box-shadow:0 8px 24px #2638500a;border-radius:20px}.portal-home-cards img{width:62px;height:62px;object-fit:contain}.portal-home-cards span:nth-child(2){flex:1}.portal-home-cards strong{display:block;font-size:20px}.portal-home-cards small{display:block;color:#8493a7;margin-top:3px}.portal-home footer{color:#a3afbd;font-size:12px;margin-top:28px}.unit-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;margin:20px 0}.unit-list label{border:1px solid #edf2f7;border-radius:10px;padding:10px}.practice-play>div:last-child{min-height:65dvh}.word-question{text-align:center;background:#fff;border-radius:24px;padding:clamp(24px,5vw,70px)}.word-question h2{font-size:clamp(26px,4vw,42px)}.word-question .portal-row{justify-content:center}.word-question form{display:flex;justify-content:center;gap:12px;margin-top:30px}.word-choices{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:30px auto;max-width:800px}.word-choices button{font-size:24px;padding:24px}.practice-result{text-align:center}.practice-result article{text-align:left;padding:18px;margin-top:14px;background:#f8fafc;border-radius:12px}.match-board,.pvp-board{display:grid;grid-template-columns:1fr 1fr;gap:24px}.match-board>div{display:grid;gap:12px}.match-board button{min-height:54px}.pvp-board>article{min-width:0;border:2px solid #87b9e5;border-radius:18px;overflow:hidden;padding:12px}.pvp-board>article:nth-child(2){border-color:#e9a3bb}.pvp-board form{padding:30px 12px;display:grid;gap:20px}.pvp-board h2{text-align:center}.pvp-board .h-full{min-height:420px}.prize-admin-row{display:grid;grid-template-columns:22px 88px 1fr auto;align-items:center;gap:16px;padding:18px 24px}.prize-upload{position:relative;display:flex!important;flex-direction:column;gap:2px!important;cursor:pointer;width:88px}.prize-upload img{width:88px;height:70px;object-fit:contain}.prize-upload small{font-size:10px;color:#8b94a3}.prize-upload input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;width:100%;cursor:pointer}.prize-details>input{font-weight:700;width:240px;background:transparent!important;border-color:transparent!important}.prize-details .portal-row{margin:6px 0;gap:10px}.prize-details input[type=number]{width:70px;min-height:30px;padding:3px 8px!important}.prize-details label{font-size:12px;color:#929dac}.prize-switches{display:flex;gap:18px;margin:12px 0;align-items:center}.prize-switches label{display:grid;grid-template-columns:56px 40px;gap:6px;align-items:center;font-size:12px;color:#8995a4}.prize-switches input{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:36px!important;height:21px!important;border-radius:20px;background:#e0e5eb;position:relative;transition:background .18s}.prize-switches input:before{content:"";position:absolute;background:#fff;width:17px;height:17px;top:2px;left:2px;border-radius:50%;box-shadow:0 1px 3px #0002;transition:transform .18s}.prize-switches input:checked{background:#4ab64e}.prize-switches input:checked:before{transform:translate(15px)}.text-button{align-self:start;padding:4px 8px!important}.magic-house{margin:-24px}.magic-scene{position:relative;min-height:calc(100dvh - 70px);background-size:cover;background-position:center;overflow:hidden}.magic-controls{position:relative;z-index:5;display:flex;justify-content:center;flex-wrap:wrap;align-items:center;gap:14px;padding:12px;background:#ffffffe0}.magic-logo{display:block;width:34%;max-height:44vh;object-fit:contain;margin:26px auto}.magic-character{position:absolute;height:43%;width:auto;max-width:28%;object-fit:contain;object-position:bottom;bottom:-4%;left:50%;transform:translate(-50%)}.magic-entry{position:absolute;top:25%;width:24%;background:transparent!important;border:0!important;padding:0!important}.magic-entry img{width:100%;max-height:60vh;object-fit:contain}.gacha-entry{left:2%}.shop-entry{right:2%}.gacha-content{display:flex;flex-direction:column;align-items:center;padding:24px}.gacha-content h1{color:#a74373;text-shadow:0 2px white}.gacha-machine{height:60vh;max-width:90%;object-fit:contain}.rolling{animation:roll .2s infinite alternate}@keyframes roll{0%{transform:rotate(-2deg)}to{transform:rotate(2deg)}}.shop-content{padding:24px;max-width:1200px;margin:auto}.shop-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:20px}.shop-grid article{text-align:center;margin:0;background:#ffffffe8}.prize-image{width:100%;height:160px;padding:4px!important;border:0!important;background:transparent!important}.prize-image img{width:100%;height:100%;object-fit:contain}.prize-symbol{display:flex;align-items:center;justify-content:center;height:100%;font-size:24px}.prize-result{width:min(1040px,95vw);height:min(830px,90dvh);padding:28px;display:flex;flex-direction:column;background:#ffffffdf}.result-image{flex:1;min-height:0;display:flex;align-items:flex-start;justify-content:center}.result-image img{width:100%;height:100%;object-fit:contain;border-radius:22px}.result-footer{text-align:center;flex-shrink:0;padding-top:36px}.result-footer h2{color:#ed6bae}.result-footer p{margin:8px 0 24px}.result-footer button{width:100%;background:#ffb6c1!important;border-color:#ffb6c1!important;font-size:20px}.prize-zoom{width:min(1000px,92vw);height:min(800px,88dvh);background:#fff!important;padding:24px!important;display:flex;flex-direction:column}.prize-zoom img{width:100%;height:90%;object-fit:contain}.prize-zoom span{font-size:14px;color:#8190a0;margin-top:12px}@media(max-width:640px){.portal{padding:14px}.portal-card{padding:18px}.portal-home{padding:8px 0 24px}.portal-home-cards strong{font-size:18px}.portal-home-cards img{width:48px;height:48px}.portal-home-cards button{padding:14px;gap:14px}.portal-row{gap:8px}.prize-admin-row{grid-template-columns:18px 64px minmax(0,1fr);gap:10px;position:relative;padding:16px 12px}.prize-upload,.prize-upload img{width:64px}.prize-admin-row>.text-button{position:absolute;right:8px;top:8px}.prize-details>input{width:calc(100% - 35px);font-size:14px;padding-left:0!important}.prize-details label{gap:3px}.prize-details input[type=number]{width:48px}.prize-details .portal-row{gap:7px}.prize-switches{flex-direction:column;align-items:flex-start;gap:8px;margin:8px 0 0}.prize-switches label{grid-template-columns:56px 40px}.portal-overlay{padding:12px}.portal-dialog{padding:22px}.pvp-board{grid-template-columns:1fr}.word-choices{gap:10px}.word-choices button{font-size:18px;padding:16px}.magic-house{margin:-14px}.magic-logo{width:60%;margin-top:60px}.magic-entry{width:40%;top:45%}.magic-character{height:26%;max-width:40%}.shop-grid{grid-template-columns:1fr 1fr;gap:10px}.shop-grid .portal-card{padding:12px}.prize-image{height:120px}.result-footer{padding-top:24px}.magic-controls{gap:6px;font-size:12px}.magic-controls select{max-width:120px}}.letter-game{max-width:480px;margin:auto;text-align:center}.letter-targets{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:16px 0}.letter-targets .cleared{text-decoration:line-through;color:#07936e}.letter-board{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;touch-action:none;-webkit-user-select:none;user-select:none}.letter-board button{aspect-ratio:1;font-size:clamp(18px,3vw,26px);font-weight:700;padding:4px;background:#f2f7fa;border-color:#deebf0}.letter-board button:disabled{visibility:hidden}.letter-board .selected{background:#b5e5ed!important;border-color:#54b7c7!important}.pvp-board .word-question{padding:18px}.pvp-board .word-choices{gap:8px}.pvp-board .word-choices button{font-size:18px;padding:12px}.pvp-board .word-question h2{font-size:24px}.spelling-slots,.spelling-keys{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:24px 0}.spelling-slots button{min-width:38px;padding:10px 8px}.spelling-keys{max-width:650px;margin:24px auto}.spelling-keys button{width:44px;min-height:44px;font-size:20px}.spelling-keys button:disabled{visibility:hidden}.spelling-slots button:disabled{opacity:1}.pvp-board .spelling-keys button{width:36px;padding:8px}.portal details{margin:18px 0}.portal details summary{cursor:pointer}.portal-row>label{max-width:100%;flex-wrap:wrap}.portal input[type=file]{max-width:100%;min-width:0}@media(prefers-reduced-motion:reduce){.portal *{animation:none!important;transition:none!important}}.portal{color:#1e293b;background:#f8fafc radial-gradient(rgba(0,0,0,.03) 1px,transparent 1px) 0 0 / 16px 16px}.portal button:focus-visible,.portal input:focus-visible,.portal select:focus-visible{outline:3px solid #10b981;outline-offset:3px}.portal .portal-back{position:fixed;top:12px;left:12px;z-index:90;width:40px;height:40px;padding:0;border-radius:50%;font-size:28px;background:#ffffffe6;box-shadow:0 2px 8px #00000014}.portal-home{width:90%;max-width:900px;min-height:100dvh;padding:20px 40px 100px;background:none}.portal-mascot{position:relative;margin:1vh 0;transform:translateY(20px)}.portal-mascot:disabled{opacity:1}.portal-mascot img{height:45vh;min-height:250px;max-height:530px;max-width:100%;object-fit:contain}.portal-mascot span{position:absolute;bottom:-6px;left:50%;transform:translate(-50%);background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;border-radius:8px;font-size:12px;padding:3px 12px;white-space:nowrap}.portal-home h1{font-size:6vh;font-weight:900;margin:24px 0 6px;line-height:1.2}.portal-home h1 em{color:#10b981;font-style:normal}.portal-home>.portal-muted{font-size:2.5vh;margin:8px 0 2vh}.portal-home-cards{width:100%;max-width:800px;gap:2vh;margin:0 auto}.portal-home-cards button{padding:2.5vh 40px;border:0;border-radius:24px;box-shadow:0 4px 12px #00000008;gap:32px}.portal-home-cards img{width:9vh;height:9vh;max-width:110px;max-height:110px;object-fit:contain;flex-shrink:0}.portal-home-cards strong{font-size:3.5vh;font-weight:800}.portal-home-cards small{font-size:2vh;font-weight:500;color:#94a3b8}.portal-home-cards button>span:last-child{font-size:32px;color:#cbd5e1}.portal-home footer{font-size:1.8vh;padding:20px 0 30px;color:#94a3b8}.mini-page-header{display:flex;flex-direction:column;align-items:center;text-align:center;margin-bottom:30px}.mini-page-header>img{width:300px;height:300px;object-fit:contain;margin:20px 0}.portal .mini-page-header h1{font-size:40px;font-weight:900;color:#10b981;margin:0}.mini-page-header p{font-size:22px;color:#94a3b8;margin:10px 0 0}.practice-setup{max-width:1200px;margin:0 auto;padding:25px}.mini-selection{max-width:800px;margin:0 auto 20px;background:#fff;padding:12px 18px;border-radius:10px;box-shadow:0 4px 20px #0000000a}.selection-heading{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin:12px 0}.mini-selection h2{font-size:22px;font-weight:700}.bank-select{font-size:12px;color:#94a3b8}.portal .bank-select select{min-height:30px;padding:4px 8px;max-width:220px}.bank-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.portal .bank-grid button{min-height:80px;padding:16px;font-size:18px;font-weight:700;border:2px solid #e2e8f0;border-radius:10px}.portal .bank-grid .selected,.unit-list label.selected{background:#ecfdf5;border-color:#10b981;color:#059669}.practice-setup .unit-list{grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin:12px 0}.practice-setup-word .unit-list{grid-template-columns:repeat(4,minmax(0,1fr))}.unit-list label{position:relative;min-height:70px;border:2px solid #e2e8f0;border-radius:8px;padding:12px 10px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;cursor:pointer}.unit-list strong{font-size:20px;font-weight:700;overflow-wrap:anywhere}.unit-list small{font-size:12px;color:#94a3b8}.unit-list input{position:absolute;right:4px;top:4px;margin:0}.unit-empty{opacity:.5;cursor:default}.practice-settings h2{margin:8px 0 16px}.practice-settings>label{display:flex;align-items:center;gap:12px}.practice-settings .portal-tabs{margin:12px 0}.practice-settings .portal-tabs .selected{color:#059669;background:#ecfdf5;border-color:#10b981}.practice-settings summary{cursor:pointer;color:#64748b}.practice-modes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-width:800px;gap:8px;margin:40px auto 24px;padding:0 18px}.portal .practice-mode{display:flex;align-items:center;gap:24px;padding:24px 22px;border:0;border-radius:24px;box-shadow:0 4px 12px #00000008;text-align:left}.practice-mode strong{display:block;font-size:32px;font-weight:800}.practice-mode small{display:block;font-size:18px;color:#94a3b8}.practice-mode>span:last-child{margin-left:auto;color:#cbd5e1}.mode-icon{width:84px;height:84px;flex-shrink:0;border-radius:16px;background:#ecfdf5 url("data:image/svg+xml,%3csvg%20t='1774008155676'%20class='icon'%20viewBox='0%200%201757%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='10802'%20width='200'%20height='200'%3e%3cpath%20d='M1426.8336%20177.669458h-255.909883V36.919022a36.558555%2036.558555%200%200%201%2041.676753-36.558555l182.792773%2025.956574a36.558555%2036.558555%200%200%201%2031.440357%2036.558555zM330.076958%20177.669458h255.909884V36.919022a36.558555%2036.558555%200%200%200-41.676753-36.558555l-182.792774%2025.956574a36.558555%2036.558555%200%200%200-31.440357%2036.558555z'%20fill='%23F44336'%20p-id='10803'%3e%3c/path%3e%3cpath%20d='M199.928503%20101.627664A3669.016553%203669.016553%200%200%201%20878.455279%2036.919022a3669.016553%203669.016553%200%200%201%20678.526776%2064.708642l180.964846%20514.01328a305.995103%20305.995103%200%200%201-169.266108%20388.251851%20297.22105%20297.22105%200%200%201-292.468438-44.601437A640.140293%20640.140293%200%200%200%20878.455279%20825.121462a640.140293%20640.140293%200%200%200-397.757075%20134.169896%20297.22105%20297.22105%200%200%201-292.468438%2044.601437A305.995103%20305.995103%200%200%201%2018.963658%20615.640944z'%20fill='%23B0BEC5'%20p-id='10804'%3e%3c/path%3e%3cpath%20d='M1280.599382%20329.38746m-73.11711%200a73.117109%2073.117109%200%201%200%20146.234219%200%2073.117109%2073.117109%200%201%200-146.234219%200Z'%20fill='%23E040FB'%20p-id='10805'%3e%3c/path%3e%3cpath%20d='M1280.599382%20621.855898m-73.11711%200a73.117109%2073.117109%200%201%200%20146.234219%200%2073.117109%2073.117109%200%201%200-146.234219%200Z'%20fill='%23388E3C'%20p-id='10806'%3e%3c/path%3e%3cpath%20d='M1134.365163%20475.621679m-73.11711%200a73.117109%2073.117109%200%201%200%20146.234219%200%2073.117109%2073.117109%200%201%200-146.234219%200Z'%20fill='%23F44336'%20p-id='10807'%3e%3c/path%3e%3cpath%20d='M1426.8336%20475.621679m-73.117109%200a73.117109%2073.117109%200%201%200%20146.234219%200%2073.117109%2073.117109%200%201%200-146.234219%200Z'%20fill='%232196F3'%20p-id='10808'%3e%3c/path%3e%3cpath%20d='M695.662506%20512.180234v-36.558555a36.558555%2036.558555%200%200%200-36.558555-36.558555h-73.117109l-54.837833%2054.837832L585.986842%20548.738788h73.117109a36.558555%2036.558555%200%200%200%2036.558555-36.558554zM293.518404%20475.621679v36.558555a36.558555%2036.558555%200%200%200%2036.558554%2036.558554h73.11711l54.837832-54.837832L403.194068%20439.063124H330.076958a36.558555%2036.558555%200%200%200-36.558554%2036.558555zM476.311177%20694.973007h36.558555a36.558555%2036.558555%200%200%200%2036.558555-36.558554v-73.11711l-54.837832-54.837832L439.752623%20585.297343v73.11711a36.558555%2036.558555%200%200%200%2036.558554%2036.558554zM512.869732%20292.828905h-36.558555a36.558555%2036.558555%200%200%200-36.558554%2036.558555v73.117109l54.837832%2054.837833L549.428287%20402.504569V329.38746a36.558555%2036.558555%200%200%200-36.558555-36.558555z'%20fill='%23607D8B'%20p-id='10809'%3e%3c/path%3e%3c/svg%3e") center / 44px no-repeat}.dual-mode .mode-icon{background-image:url("data:image/svg+xml,%3csvg%20t='1774008581003'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='37125'%20width='200'%20height='200'%3e%3cpath%20d='M284.5%20680.2L716.9%20216l144.2%206%2013.6%20131.9-474.2%20426.5z'%20fill='%2343A6FF'%20p-id='37126'%3e%3c/path%3e%3cpath%20d='M218.8%20587.5c19.1-21.7%2036.2-42.1%2054.5-61.3%2010-10.4%207.7-16.3-2.1-24.9-49-43.2-96.9-87.7-146.3-130.4-15.3-13.2-20.2-27-17.9-46.5%206.8-58.5%2012.5-117.1%2018.6-175.6%202.8-27%2011.1-34%2038-36.4%2058.6-5.3%20117.2-10.9%20175.6-18%2021.3-2.6%2031-1%2045.8%2016.4%2019.9%2023.4%2042.8%2048.7%2063.4%2070.3%209.4%2010%208.7%2015.8-0.6%2025.4-27.2%2028.1-28.9%2028.9-54.9%203.7-3.5-3.4-6.5-7.3-10-10.6-51.4-47.2-51.7-46.9-109.7-40.6-24.5%202.6-49.6%205.8-74.5%207.3-14%200.8-19.2%206.5-20.3%2020.7-3.4%2041.8-7.8%2083.5-13.2%20125.1-1.7%2013.2%203%2020.9%2012.1%2028.9%2043.5%2038.5%2087.1%2076.9%20129.4%20116.7%2013%2012.2%2018.8%209.9%2029.5-2.3%2099.3-113.6%20199.6-226.3%20298.7-340%2015.6-17.9%2031.6-23.9%2054.8-21.1%2059.2%207.2%20118.6%2012.8%20178.1%2018.1%2020.2%201.8%2030.7%2010.4%2032.6%2031%205.6%2060.2%2011.1%20120.4%2018.2%20180.5%202.6%2022.2-2.4%2037.8-20%2052.8-48%2040.7-93.9%2083.8-141.5%20124.9-12.1%2010.5-12.8%2017.3-1.6%2028.5%2014.8%2014.8%2028.4%2030.9%2041.6%2047.1%206.8%208.4%2011.4%208.5%2018.7%200.7%2013.7-14.8%2028-29%2042.5-43.1%2013.6-13.3%2029-15.2%2042.7-1.4%2013.8%2013.9%2011.3%2029.3-1.9%2042.8-27%2027.7-53.9%2055.6-81.7%2082.6-10.1%209.7-9.3%2015.7%200.4%2025%2024.6%2023.3%2048.2%2047.6%2072.1%2071.7%2043%2043.2%2045.9%2096.9%207.6%20134.9-38.2%2037.8-91.3%2034.2-134.9-9.2-24-23.9-48.3-47.6-71.7-72-7.9-8.3-12.8-8.9-21-0.1-20.9%2022.4-42.9%2043.8-64.4%2065.7-13.8%2014.1-29.3%2018.7-44.5%204.1s-10.8-29.8%202.2-44.7c11.2-12.8%2034.4-22.3%2031.2-38.5-2.6-13.4-22.7-23.5-35.2-34.9-45.9-41.4-46-41.4-92.2%200.4-13.1%2011.9-35.3%2023.7-35.9%2036.5-0.7%2012.2%2020.8%2026.1%2033.2%2038.5%2014.3%2014.2%2021.2%2029.2%206.5%2046.5-12.4%2014.7-30%2012.5-48-5.4-22.3-22.2-44.7-44.3-66.1-67.3-8.8-9.5-14.1-8.8-22.7%200.1-25.2%2026.2-50.9%2051.8-76.9%2077.1-39.1%2038.1-93.7%2038.9-129.7%202.4-35.3-35.8-34.5-89.8%202.5-128%2025.3-26.1%2050.8-51.9%2077.2-76.9%2010.6-10%2011.6-16.2%200.5-26.7-25.2-23.8-49.1-49-73.2-74-16.5-17-18.2-34.2-4.4-46.3%2017.1-15%2032.4-8.9%2046.4%205.9%2013.5%2014.5%2027.7%2028.7%2042.4%2043.9z%20m641.6-266.8c-4.6-46-9.5-93.3-14.1-140.7-1.2-12.2-9.5-12.9-18.8-13.8-44.1-4.3-88.3-8.6-132.4-13.5-9.7-1.1-16.5%201-23.2%208.6-133.8%20152-267.7%20303.9-402%20455.5-8.3%209.4-7.8%2014.7%200.9%2023.2%2034.9%2034.7%2069.6%2069.6%20103.4%20105.4%2010.1%2010.8%2016%207.9%2025.3-0.3C549.8%20610.6%20700.4%20476.4%20851%20342.2c6.2-5.5%2012.3-10.7%209.4-21.5zM556.1%20681.4c25.2%2022.7%2049.2%2044.1%2072.9%2065.8%206.7%206.2%2011.7%209%2019.7%200.6%2035.6-37.1%2071.9-73.7%20108.2-110.2%206.1-6.1%208-10.4%201.3-17.7-17.5-18.9-34.3-38.4-51.1-57.9-4.9-5.7-8.6-7.8-15.4-1.7-44.7%2040.3-89.7%2080.3-135.6%20121.1z%20m-362.4%20177c7.2%200.9%2014.8-4.9%2021.8-11.9%2018.2-18.3%2036.5-36.5%2054.7-54.7%2035.4-35.4%2035.1-37.3-4.5-68.8-6.6-5.2-10.2-5.4-15.8%200.4-27.7%2028.1-55.9%2055.8-83.5%2084-8.7%208.9-9.7%2020.6-4.6%2031.6%205.4%2011.5%2014.6%2019%2031.9%2019.4z%20m672.4-32.7c0.4-10.8-6.1-17.9-13.1-24.8-17.7-17.6-35.3-35.3-53-53-36.2-36.2-36-36.1-68.7%203.7-5%206.1-6.7%209.7-0.5%2015.8%2028.1%2027.7%2055.7%2055.9%2084%2083.5%209.6%209.3%2021.8%2010.2%2033.6%204%2011.5-6%2018.3-15.6%2017.7-29.2z'%20fill='%23000000'%20p-id='37127'%3e%3c/path%3e%3c/svg%3e");background-color:#eff6ff}.practice-setup>p{max-width:800px;margin:12px auto}.practice-play{max-width:1200px}.word-question{box-shadow:0 8px 30px #0000000a}.word-question h2{color:#1e293b;font-size:40px;font-weight:800}.portal .word-choices button{border:2px solid #e2e8f0;border-radius:20px;font-size:28px;font-weight:700;min-height:100px}.portal .word-choices button:hover:not(:disabled){border-color:#10b981;background:#ecfdf5}.practice-result{text-align:center;padding:48px}.practice-result>h1{color:#10b981}.practice-result>h2{font-size:48px;font-weight:900}.pvp{max-width:1200px;background:#1e293b;color:#fff}.pvp>.portal-muted{color:#cbd5e1}.pvp-board{gap:16px}.pvp-board article{background:#eff6ff;border:3px solid #3b82f6;color:#1e293b;border-radius:24px;padding:20px}.pvp-board article:nth-child(2){background:#fff1f2;border-color:#f43f5e}.pvp-board article>h2{color:#2563eb;padding:10px 0 20px;font-size:26px;font-weight:800}.pvp-board article:nth-child(2)>h2{color:#e11d48}.pvp-board .word-question{padding:16px}.pvp-board .word-question h2{font-size:28px}.pvp-board .word-choices button{font-size:22px;min-height:80px;padding:16px}.ranking-page{max-width:1200px;margin:0 auto;padding:48px}.ranking-page .mini-page-header{padding:56px 0 36px}.ranking-page .mini-page-header>img{width:240px;height:240px;margin:0 0 28px}.portal .ranking-page .mini-page-header h1{color:#1e293b;font-size:56px;font-weight:800;margin-bottom:16px}.ranking-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;margin-bottom:40px}.portal .ranking-tabs button{font-size:32px;padding:24px 8px;border:0;border-radius:24px;font-weight:600;color:#94a3b8;box-shadow:0 4px 10px #00000008}.portal .ranking-tabs .selected{color:#fff;transform:translateY(-4px)}.portal .ranking-tabs .sentence.selected{background:linear-gradient(135deg,#10b981,#059669)}.portal .ranking-tabs .wordChoice.selected{background:linear-gradient(135deg,#3b82f6,#2563eb)}.portal .ranking-tabs .wordSpelling.selected{background:linear-gradient(135deg,#f59e0b,#ea580c)}.ranking-scope,.ranking-page>details{background:#fff;border-radius:24px;padding:22px 24px;margin-bottom:24px;color:#64748b}.ranking-list{list-style:none;padding:0;margin:24px 0}.rank-card{display:flex;align-items:center;gap:36px;background:#fff;border-radius:28px;padding:28px 48px;margin-bottom:24px;box-shadow:0 4px 12px #00000008}.rank-number{font-size:40px;width:72px;flex-shrink:0;text-align:center}.rank-person{flex:1;min-width:0}.rank-person>strong{display:block;font-size:32px;font-weight:800;overflow-wrap:anywhere}.rank-card small{display:block;font-size:22px;color:#94a3b8}.rank-score{text-align:right}.rank-score>strong{font-size:32px;font-weight:900;white-space:nowrap}.rank-score>strong small{display:inline;margin-left:6px}.rank-top{color:#fff;border:2px solid rgba(255,255,255,.3);border-radius:32px;padding:32px 48px}.rank-top small{color:#ffffffe6}.rank-top .rank-number{font-size:44px}.rank-top .rank-person>strong,.rank-top .rank-score>strong{font-size:40px}.rank-top-1{background:linear-gradient(135deg,#ff6b6b,#ee5253)}.rank-top-2{background:linear-gradient(135deg,#ff9f43,#ff6b6b)}.rank-top-3{background:linear-gradient(135deg,#feca57,#ff9f43)}.my-ranking{background:linear-gradient(135deg,#6366f1,#4f46e5);padding:24px;color:#fff;border-radius:24px}.records-page{max-width:1120px;margin:0 auto}.records-page>.portal-row,.records-page .record-row{max-width:760px;margin:16px auto}.records-page .record-row{padding:20px;border-radius:16px;background:#fff;border:0;box-shadow:0 4px 12px #00000008}.record-row>.portal-row{justify-content:space-between}.record-row>.portal-row>span{color:#10b981;font-weight:700}.records-page .record-error{background:#fff7ed;border-left:4px solid #f97316;padding:16px;border-radius:8px}.records-page .record-error strong{font-size:20px}.portal-admin{max-width:1200px}.portal-admin>h1{font-size:28px;margin:20px 0}.portal-admin>.portal-tabs{background:#fff;padding:12px;border-radius:12px}.portal-admin>.portal-tabs .selected{color:#fff;background:#10b981;border-color:#10b981}.admin-prizes>.portal-card{max-width:700px;border-radius:12px}.admin-prizes>.prize-add{padding:24px;border-radius:16px}.prize-add h2{font-size:18px;margin:0 0 16px}.prize-add form{display:grid;grid-template-columns:120px minmax(0,1fr);gap:16px}.portal .prize-add-image{width:120px;height:120px;border:1px dashed #ccc;border-radius:12px;background:#f8fafc}.portal .prize-add-image img{height:100%}.prize-add-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.prize-add-fields>label{display:flex;flex-direction:column;align-items:flex-start;gap:4px;font-size:12px;color:#94a3b8}.prize-add-name,.prize-add-fields>.prize-switches,.prize-add-fields>button,.prize-add-fields>p{grid-column:1 / -1}.portal .prize-add-fields input{width:100%;height:38px;min-height:38px;border-color:#e5e7eb}.prize-add-fields>p:empty{display:none}.prize-add-fields>button{font-size:14px;padding:10px}.portal .prize-switches{margin:0;gap:16px}.portal .prize-switches label{grid-template-columns:auto 50px;gap:8px;font-size:12px}.portal .prize-switches input{width:50px!important;height:32px!important;min-height:32px;margin:0}.portal .prize-switches input:before{width:28px;height:28px;top:2px;left:2px}.portal .prize-switches input:checked:before{transform:translate(18px)}.prize-batch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.prize-batch>label{display:flex;flex-direction:column;align-items:flex-start;gap:4px;font-size:12px;color:#94a3b8}.portal .prize-batch input{width:100%;min-width:0}.prize-batch>button{width:100%}.admin-prizes>.prize-admin-row{position:relative;grid-template-columns:22px 70px minmax(0,1fr);gap:16px;margin:8px auto;padding:16px 20px}.prize-admin-row .prize-upload{width:70px;height:70px;border-radius:10px}.prize-admin-row .prize-upload img{height:70px}.prize-admin-row .prize-upload small{font-size:11px;line-height:20px}.prize-admin-row .prize-details{padding-right:60px;min-width:0}.portal .prize-details>input{font-size:16px;margin:0 0 6px;max-width:100%}.prize-details>.portal-row{margin:0 0 10px;gap:12px}.portal .prize-details input[type=number]{width:85px;min-height:28px;height:28px;padding:0 4px;font-size:14px;text-align:center}.prize-admin-row>.text-button{position:absolute;right:16px;top:14px;padding:0;font-size:13px}#root:has(>.portal-page-magic){height:100dvh;display:flex;flex-direction:column}.portal-page-magic{padding:0;flex:1;min-height:0;display:flex;flex-direction:column}.magic-house{margin:0;flex:1;min-height:0}.magic-scene{min-height:100%}.magic-home-scene,.magic-gacha-scene{height:100%;min-height:0}.magic-home-scene .magic-controls{display:none}.magic-home-scene .magic-logo{width:36vw;max-width:700px;height:40vh;max-height:40vh;object-fit:contain;margin:0;transform:translate(-50%);position:absolute;left:50%;top:3vh;z-index:5;pointer-events:none}.magic-home-scene .magic-entry{top:auto;bottom:-2vh;width:50vw;height:88vh;max-width:1000px;max-height:88vh;z-index:10}.magic-home-scene .magic-entry img{width:100%;height:100%;max-height:none;object-fit:contain}.magic-home-scene .gacha-entry{left:-8vw}.magic-home-scene .shop-entry{right:-8vw;bottom:calc(-2vh - 10px)}.magic-home-scene .magic-character{bottom:0;left:50%;margin-left:-30px;width:30.4vw;max-width:585px;height:49.1vh;object-fit:contain;object-position:center bottom;z-index:20;pointer-events:none}.magic-controls{gap:14px;padding:16px 24px;justify-content:center;background:none}.magic-controls>label,.magic-controls>strong{padding:10px 16px;border:2px solid rgba(255,255,255,.8);border-radius:18px;background:#ffffffd9}.magic-controls label{color:#999;font-size:14px}.magic-controls strong{color:#ff69b4;font-size:24px}.magic-controls select{display:block}.magic-shop-scene{background-attachment:fixed}.magic-shop-scene:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#ffffff73;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.shop-content{position:relative;z-index:3;max-width:960px;padding:16px 24px 80px}.shop-character{position:fixed;left:0;bottom:0;width:min(33vh,390px);height:min(44vh,520px);object-fit:contain;object-position:center bottom;pointer-events:none;z-index:2}.shop-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.shop-grid .portal-card{padding:20px 16px 16px;border:2px solid rgba(255,255,255,.8);background:#ffffffd9;border-radius:20px}.shop-grid h3{font-size:16px}.shop-grid p{font-size:14px;color:#999}.shop-grid .prize-image{height:120px}.shop-grid .portal-card>button:last-child{background:#ffb7c5;color:#fff;border:0;border-radius:30px;padding:10px;width:100%}.magic-gacha-scene .magic-controls{position:absolute;right:24px;top:50%;transform:translateY(-50%);width:160px;flex-direction:column;padding:0;z-index:30}.magic-gacha-scene .magic-controls>*{width:100%}.magic-gacha-scene .magic-controls label{font-size:12px}.magic-gacha-scene .magic-controls select{width:100%;min-height:30px;font-size:14px}.gacha-content{height:100%;min-height:0;display:flex;align-items:center;justify-content:center;padding:20px 180px 20px 20px}.gacha-machine-frame{position:relative;height:min(80vh,100%);aspect-ratio:496 / 889;max-width:100%}.gacha-content .gacha-machine{position:relative;z-index:10;display:block;height:100%;width:100%;max-width:none;object-fit:contain;pointer-events:none}.portal .gacha-push{position:absolute;z-index:20;top:63%;left:37.4%;width:25.2%;aspect-ratio:1;border:0;border-radius:50%;padding:0;background:transparent}.gacha-push img{width:100%;height:100%;object-fit:contain}.gacha-push span{position:absolute;top:110%;left:50%;transform:translate(-50%);white-space:nowrap;font-size:12px;color:#fff;background:#ff69b4;padding:4px 8px;border-radius:12px}.gacha-ball-pool{position:absolute;z-index:9;top:11%;left:50%;transform:translate(-50%);width:97.8738%;aspect-ratio:1;border-radius:50%;overflow:hidden}.gacha-ball-pool img{position:absolute;width:24%;aspect-ratio:1;object-fit:contain}.gacha-ball-pool img.rolling{animation:gacha-mix .8s ease-in-out infinite}.portal .gacha-push.spinning{opacity:1}.gacha-push.spinning img{animation:gacha-spin 2s ease-in-out infinite}.gacha-exit-slot{position:absolute;z-index:20;left:42%;bottom:6%;width:16%;height:14%;display:flex;align-items:center;justify-content:center;pointer-events:none}.portal .gacha-open{width:129.6%;flex-shrink:0;padding:0;border:0;background:transparent;line-height:0;pointer-events:auto;opacity:1}.portal .gacha-open:hover:enabled{background:transparent}.gacha-open span{position:absolute;top:100%;left:50%;transform:translate(-50%);white-space:nowrap;font-size:12px;line-height:1.4;color:#fff;background:#ff69b4;padding:4px 8px;border-radius:12px}.gacha-result-ball{width:100%;max-width:none;aspect-ratio:1;object-fit:contain;filter:drop-shadow(0 0 8px rgba(255,255,255,.8));animation:gacha-drop .6s ease-out both}@keyframes gacha-mix{0%,to{transform:translate(0) rotate(0)}15%{transform:translate(-30%,-80%) rotate(-45deg) scale(.8)}30%{transform:translate(40%,-60%) rotate(60deg)}45%{transform:translate(-50%,-120%) rotate(-90deg)}60%{transform:translate(20%,-150%) rotate(120deg) scale(1.1)}75%{transform:translate(-40%,-40%) rotate(-60deg)}90%{transform:translate(50%,-100%) rotate(45deg)}}@keyframes gacha-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes gacha-drop{0%{transform:translateY(-90%);opacity:0}60%{transform:translateY(0);opacity:1}80%{transform:translateY(-20%)}to{transform:translateY(0);opacity:1}}@media(min-width:641px)and (max-width:834px){.bank-grid,.practice-setup .unit-list{grid-template-columns:repeat(2,minmax(0,1fr))}.portal .practice-mode{gap:12px;padding:18px}.practice-mode strong{font-size:24px}.mode-icon{width:60px;height:60px}}@media(max-width:640px){.portal-home{width:100%;padding:12px 0 40px}.portal-mascot img{height:310px;min-height:0;max-width:100%}.portal-home h1{font-size:28px}.portal-home>.portal-muted{font-size:16px;margin:12px 0 24px}.portal-home-cards{gap:16px}.portal-home-cards button{padding:18px;border-radius:20px;gap:16px}.portal-home-cards img{width:60px;height:60px}.portal-home-cards strong{font-size:20px}.portal-home-cards small{font-size:13px}.portal-home-cards button>span:last-child{font-size:24px}.portal-home footer{font-size:12px}.practice-setup,.ranking-page{padding:12px 0}.mini-page-header>img{width:160px;height:160px;margin:12px 0}.portal .mini-page-header h1{font-size:26px}.mini-page-header p{font-size:16px}.mini-selection{padding:12px}.mini-selection h2{font-size:18px}.bank-grid,.practice-setup .unit-list{grid-template-columns:repeat(2,minmax(0,1fr))}.portal .bank-grid button{font-size:16px;min-height:64px;padding:10px}.unit-list strong{font-size:18px}.practice-modes{padding:0;gap:12px;margin-top:24px}.portal .practice-mode{padding:16px 12px;gap:12px;border-radius:16px}.practice-mode strong{font-size:18px}.practice-mode small{font-size:12px}.mode-icon{width:38px;height:38px;background-size:28px;border-radius:10px}.practice-mode>span:last-child{display:none}.word-question h2{font-size:28px}.portal .word-choices button{font-size:20px;min-height:72px;padding:16px}.practice-result{padding:24px}.pvp{padding:12px}.pvp-board article{padding:12px}.ranking-page .mini-page-header{padding:12px 0}.ranking-page .mini-page-header>img{width:120px;height:120px;margin-bottom:16px}.portal .ranking-page .mini-page-header h1{font-size:28px}.ranking-tabs{gap:8px;margin-bottom:20px}.portal .ranking-tabs button{font-size:16px;padding:14px 4px;border-radius:12px}.ranking-scope,.ranking-page>details{padding:14px;font-size:13px;border-radius:12px}.rank-card,.rank-top{padding:20px 14px;gap:12px;margin-bottom:12px;border-radius:16px}.rank-number,.rank-top .rank-number{width:28px;font-size:24px}.rank-person>strong,.rank-top .rank-person>strong{font-size:22px}.rank-score>strong,.rank-top .rank-score>strong{font-size:24px}.rank-card small{font-size:12px}.records-page .record-row{padding:16px}.portal-admin>h1{font-size:24px}.admin-prizes>.prize-add{padding:16px}.prize-add form{grid-template-columns:64px minmax(0,1fr);gap:10px}.portal .prize-add-image{width:64px;height:80px}.prize-add-fields{gap:8px}.portal .prize-switches{flex-direction:column;align-items:flex-start;gap:8px}.portal .prize-switches label{grid-template-columns:56px 40px;gap:6px}.portal .prize-switches input{width:40px!important;height:24px!important;min-height:24px}.portal .prize-switches input:before{width:20px;height:20px}.portal .prize-switches input:checked:before{transform:translate(16px)}.admin-prizes>.prize-admin-row{grid-template-columns:18px 60px minmax(0,1fr);gap:10px;padding:16px 12px}.prize-admin-row .prize-upload{width:60px;height:60px}.prize-admin-row .prize-upload img{height:60px}.prize-admin-row .prize-upload small{font-size:10px}.prize-admin-row .prize-details{padding-right:0}.portal .prize-details>input{padding-right:32px;font-size:16px}.prize-details>.portal-row{gap:8px;flex-wrap:nowrap}.portal .prize-details input[type=number]{width:48px}.magic-home-scene .magic-logo{width:70vw;height:28vh;max-height:28vh;top:4vh}.magic-home-scene .magic-entry{width:62vw;height:60vh;max-height:60vh}.magic-home-scene .gacha-entry{left:-12vw}.magic-home-scene .shop-entry{right:-12vw}.magic-home-scene .magic-character{margin-left:0;width:42vw;max-width:none;height:25vh}.magic-controls{gap:8px;padding:12px}.magic-controls>label,.magic-controls>strong{padding:8px}.magic-controls label{max-width:45%}.magic-controls select{max-width:100%}.magic-controls strong{font-size:18px}.shop-character{width:40vw;height:30vh}.shop-content{padding:16px 12px 60px}.shop-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.shop-grid .portal-card{padding:14px 10px}.magic-gacha-scene .magic-controls{position:relative;right:auto;top:auto;transform:none;width:100%;flex-direction:row;padding-top:60px}.magic-gacha-scene .magic-controls>*{width:auto}.gacha-content{height:auto;padding:16px}.magic-gacha-scene{height:auto;min-height:100%}.gacha-machine-frame{height:55vh}}.nora-login{--nora-pink: #dc477f;--nora-blue: #6075ba;--nora-ink: #243452;--nora-muted: #607086;min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:80px;max-width:1120px;margin:0 auto;padding:48px 32px;box-sizing:border-box;color:var(--nora-ink);font-family:Nunito,PingFang SC,Microsoft YaHei,sans-serif}.nora-login-brand{display:inline-flex;align-items:flex-start;font-size:84px;font-weight:900;color:var(--nora-pink);letter-spacing:-4px;line-height:1.1}.nora-login-brand>span{font-size:32px;letter-spacing:0;margin:4px 0 0 10px;color:var(--nora-blue)}.nora-login-eyebrow{margin:24px 0 16px;color:var(--nora-blue);font-size:14px;font-weight:700}.nora-login h1{margin:0;font-size:clamp(28px,3vw,40px);line-height:1.45;font-weight:800}.nora-login-description{margin:24px 0 0;font-size:17px;line-height:1.9;color:var(--nora-muted)}.nora-login-pairing{display:flex;gap:16px;align-items:center;margin-top:40px}.nora-login-pairing>span{display:grid;place-items:center;width:48px;height:48px;border-radius:16px;background:#e8edf9;color:var(--nora-blue);font-size:28px}.nora-login-pairing p{margin:0;font-size:14px;line-height:1.8;color:var(--nora-muted)}.nora-login-pairing strong{color:var(--nora-ink)}.nora-login-card{padding:36px;border-radius:28px;background:#fff;box-shadow:0 16px 48px #2434520d;text-align:center;border:1px solid #e7edf3}.nora-login-tag{color:var(--nora-blue);font-size:13px;font-weight:700}.nora-login h2{margin:12px 0 8px;font-size:26px;font-weight:800}.nora-login-card-note{color:var(--nora-muted);font-size:14px;line-height:1.6;margin:0}.nora-login-code-area{display:flex;justify-content:center;margin:24px 0}.nora-login-code-area img{display:block;width:240px;max-width:100%;aspect-ratio:1;height:auto}.nora-login-code-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;width:240px;height:240px;max-width:100%;border:1px dashed #cdd7e4;border-radius:20px;background:#f8fafc;padding:16px;box-sizing:border-box}.nora-login-code-placeholder>span{font-size:52px;line-height:1.2;color:#98a7d1}.nora-login-code-placeholder p{color:var(--nora-muted);font-size:14px;line-height:1.6;margin:16px 0 0}.nora-login-verify{display:flex;flex-direction:column;gap:6px;padding:14px;border-radius:16px;background:#eef2fb}.nora-login-verify>span,.nora-login-verify small{font-size:12px;color:var(--nora-muted)}.nora-login-verify strong{font-size:30px;color:var(--nora-blue);letter-spacing:6px;font-variant-numeric:tabular-nums}.nora-login-message{min-height:36px;font-size:13px;line-height:1.7;color:var(--nora-muted);margin:16px 0;overflow-wrap:anywhere}.nora-login-message p{margin:0}.nora-login-message [role=alert]{color:#b42336}.nora-login-button{width:100%;border:0;border-radius:14px;background:var(--nora-blue);color:#fff;padding:14px 20px;cursor:pointer;font:inherit;font-size:15px;font-weight:700}.nora-login-button:disabled{background:#e3e8f1;color:#526278;cursor:not-allowed}.nora-login-button:not(:disabled):hover{background:#5066a8}.nora-login-button:focus-visible,.nora-session-actions button:focus-visible{outline:3px solid #dc477f;outline-offset:4px}.nora-login-safety{margin:16px 0 0;color:var(--nora-muted);font-size:12px;line-height:1.7}.nora-session-actions{display:none;position:fixed;right:16px;bottom:16px;z-index:90;align-items:center;gap:12px;font-size:14px}#root:has(>.portal-page-home)>.nora-session-actions{display:flex}.nora-session-actions button{font:inherit;color:#5066a8;cursor:pointer;border:1px solid #d5deef;border-radius:8px;padding:5px 12px;background:#fff}.nora-session-actions [role=alert]{color:#b42336;background:#fff;padding:8px;border-radius:8px}@media(max-width:800px){.nora-login{grid-template-columns:1fr;gap:28px;max-width:480px;padding:32px 20px}.nora-login-intro{text-align:center}.nora-login-brand{font-size:58px}.nora-login-eyebrow{margin:16px 0 8px;font-size:12px}.nora-login h1{font-size:26px}.nora-login-description{margin-top:12px;font-size:14px}.nora-login-pairing{display:none}.nora-login-card{padding:28px 24px;border-radius:24px}}
