/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-ease:initial}}}@layer theme{:host,:root{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--spacing:.25rem;--ease-in-out:cubic-bezier(.4,0,.2,1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden}.absolute,.sr-only{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.isolate{isolation:isolate}.row-4{grid-row:4}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.shrink{flex-shrink:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.flex-wrap{flex-wrap:wrap}.border{border-style:var(--tw-border-style);border-width:1px}.lowercase{text-transform:lowercase}.italic{font-style:italic}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px)}.blur,.grayscale{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{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-filter{-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,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}}:root{--ink:#332b47;--muted:#7a728d;--accent:#f54f8c;--accent-dark:#de3e79;--accent-soft:#ffd3e3;--secondary:#6473f4;--success:#2bad7d;--surface:#ffffffe0;--line:#493b661a;--shadow:0 18px 50px #4d3c6e1c;--sidebar-width:252px;--sidebar-expanded-width:252px}*{box-sizing:border-box}body,html{min-height:100%;margin:0}body{color:var(--ink);-webkit-font-smoothing:antialiased;background:#f8f6fb;font-family:Hiragino Sans,Yu Gothic,Noto Sans JP,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,select{font:inherit}button{color:inherit}[tabindex]:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline-offset:3px;outline:3px solid #6473f46b}.sr-only{clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.mobile-download{display:none}.desktop-app{background:radial-gradient(circle at 72% 8%,#ffcbe275,#0000 27%),radial-gradient(circle at 92% 80%,#cad9ff80,#0000 31%),linear-gradient(135deg,#fff8fb,#f7f4ff 50%,#f2f7ff);min-width:768px;min-height:100vh}.desktop-app.game-focus-mode,.desktop-app.sidebar-collapsed{--sidebar-width:0px}.game-focus-mode :is(.share-piyo-button,.theme-toggle,.sidebar,.sidebar-reopen){display:none}.theme-toggle{z-index:50;color:#5e556f;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);cursor:pointer;background:#ffffffe0;border:1px solid #4c41641a;border-radius:14px;align-items:center;gap:8px;height:39px;padding:0 12px 0 7px;transition:color .2s,background .2s,border-color .2s,transform .16s,box-shadow .2s;display:inline-flex;position:fixed;top:17px;right:19px;box-shadow:0 10px 27px #4335641a}.theme-toggle:hover{transform:translateY(-1px);box-shadow:0 13px 30px #43356424}.theme-toggle-icon{color:#b4760c;background:#fff2c4;border-radius:9px;place-items:center;width:27px;height:27px;font-size:16px;line-height:1;transition:color .25s,background .25s,transform .35s cubic-bezier(.2,.8,.2,1);display:grid}.theme-toggle strong{letter-spacing:.12em;font-size:9px}.share-piyo-button{z-index:50;height:39px;color:var(--accent-dark);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);cursor:pointer;background:#fff5f9e6;border:1px solid #f54f8c24;border-radius:14px;align-items:center;gap:8px;padding:0 13px;transition:transform .16s,box-shadow .2s;display:inline-flex;position:fixed;top:17px;right:120px;box-shadow:0 10px 27px #4335641a}.share-piyo-button:hover{transform:translateY(-1px);box-shadow:0 13px 30px #43356424}.share-piyo-button span{font-size:15px}.share-piyo-button strong{white-space:nowrap;font-size:9px}.header-stats,.practice-header-actions,.view-header>:last-child{margin-right:230px}.sidebar{z-index:20;width:var(--sidebar-expanded-width);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);background:#ffffffd6;border-right:1px solid #4c416414;flex-direction:column;padding:30px 22px 22px;transition:transform .28s cubic-bezier(.2,.8,.2,1),opacity .18s;display:flex;position:fixed;inset:0 auto 0 0;box-shadow:8px 0 35px #4335640b}.sidebar-collapsed .sidebar{opacity:0;pointer-events:none;transform:translate(-105%)}.sidebar-edge-toggle{z-index:3;color:#746b86;cursor:pointer;background:#fffffff0;border:1px solid #4c41641a;border-radius:0 13px 13px 0;place-items:center;width:34px;height:42px;padding:0 2px 2px 0;font-size:25px;font-weight:500;transition:color .16s,transform .16s;display:grid;position:absolute;top:78px;right:-17px;box-shadow:7px 8px 20px #4335641a}.sidebar-edge-toggle:hover{color:var(--accent-dark);transform:translate(2px)}.sidebar-reopen{z-index:45;color:#5c526f;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);cursor:pointer;background:#ffffffe6;border:1px solid #4c41641a;border-radius:14px;align-items:center;gap:8px;height:43px;padding:0 13px 0 10px;animation:menu-button-in .25s both;display:flex;position:fixed;top:17px;left:16px;box-shadow:0 10px 27px #43356421}.sidebar-reopen span{color:#fff;background:var(--accent);border-radius:8px;place-items:center;width:23px;height:23px;font-size:21px;line-height:1;display:grid}.sidebar-reopen strong{font-size:11px}.brand{text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:12px;padding:0 8px 28px;display:flex}.brand strong{letter-spacing:-.04em;font-size:20px;display:block}.brand small{color:var(--accent);letter-spacing:.2em;margin-top:2px;font-size:9px;font-weight:900;display:block}.brand>span{min-width:0}.brand small.brand-tagline{letter-spacing:.05em;font-size:8px;line-height:1.2}.mini-logo{background:linear-gradient(145deg,#fff8d7f0,#ffecb3c2);border:1px solid #e8960c1f;border-radius:16px;flex:0 0 50px;place-items:center;width:50px;height:50px;display:grid;position:relative;overflow:hidden}.mini-logo img{object-fit:cover;width:100%;height:100%;display:block}.sidebar nav>p{color:#a9a3b4;letter-spacing:.18em;margin:8px 11px 12px;font-size:10px;font-weight:900}.sidebar nav button{cursor:pointer;text-align:left;background:0 0;border:0;border-radius:15px;align-items:center;gap:13px;width:100%;margin:4px 0;padding:11px 12px;transition:all .2s;display:flex;position:relative}.sidebar nav button:hover{background:#f54f8c12;transform:translate(2px)}.sidebar nav button.active{color:var(--accent-dark);background:linear-gradient(100deg,#ffd9e8cc,#ffecf49e);box-shadow:inset 0 0 0 1px #f54f8c14}.sidebar nav button>i{background:#695d8312;border-radius:11px;flex:0 0 35px;place-items:center;width:35px;height:35px;font-size:20px;font-style:normal;font-weight:800;display:grid}.sidebar nav button.active>i{color:#fff;background:var(--accent);box-shadow:0 7px 14px #f54f8c3d}.sidebar nav button small,.sidebar nav button strong{display:block}.sidebar nav button strong{letter-spacing:-.02em;font-size:14px}.sidebar nav button small{color:var(--muted);margin-top:2px;font-size:10px}.sidebar nav button b{background:var(--accent);border-radius:4px;width:4px;height:26px;position:absolute;right:-23px}.sidebar-spacer{flex:1;min-height:24px}.sidebar-ios-promo{color:var(--ink);cursor:pointer;background:linear-gradient(145deg,#fff0f6,#f0efff 72%,#e8f1ff);border:1px solid #f54f8c24;border-radius:18px;margin:0 0 12px;padding:12px;text-decoration:none;transition:transform .16s,box-shadow .2s;display:block;position:relative;overflow:hidden;box-shadow:0 10px 24px #503e7314}.sidebar-ios-promo:hover{transform:translateY(-1px);box-shadow:0 13px 28px #503e731f}.sidebar-ios-promo:after{content:"";border:16px solid #ffffff73;border-radius:50%;width:82px;height:82px;position:absolute;top:-31px;right:-28px}.ios-promo-head{z-index:1;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:9px;display:grid;position:relative}.ios-promo-icon{background:url(/piyokey-app-icon-v2.png) 50%/cover no-repeat;border:1px solid #ffffffb8;border-radius:11px;width:42px;height:42px;display:block;box-shadow:0 7px 16px #4e386e29}.ios-promo-head small,.ios-promo-head strong{display:block}.ios-promo-head small{color:var(--accent-dark);letter-spacing:.14em;font-size:7px;font-weight:900}.ios-promo-head strong{letter-spacing:-.03em;margin-top:2px;font-size:12px;line-height:1.25}.sidebar-ios-promo>p{z-index:1;color:var(--muted);margin:9px 0 8px;font-size:8px;font-weight:700;line-height:1.45;position:relative}.ios-coming-badge{z-index:1;color:#fff;background:#282332;border-radius:9px;align-items:center;gap:7px;min-height:27px;padding:0 8px;font-size:7px;font-weight:800;display:flex;position:relative}.ios-coming-badge b{letter-spacing:.04em;border-right:1px solid #ffffff38;padding-right:7px;font-size:9px}.settings-button{border:1px solid var(--line);text-align:left;cursor:pointer;background:#fff;border-radius:15px;grid-template-rows:1fr 1fr;grid-template-columns:32px 1fr;column-gap:8px;width:100%;padding:10px 12px;display:grid}.settings-button span{grid-row:1/3;align-self:center;font-size:19px}.settings-button strong{font-size:12px}.settings-button small{color:var(--muted);font-size:9px}.sidebar-foot{color:#bbb5c4;text-align:center;margin:16px 0 0;font-size:8px}.sidebar-foot>span{letter-spacing:.16em;display:block}.sidebar-foot nav{justify-content:center;gap:12px;margin-top:8px;display:flex}.sidebar-foot a{color:#9f98aa;letter-spacing:.02em;font-weight:750;text-decoration:none}.sidebar-foot a:hover{color:var(--accent-dark)}.app-main{min-height:100vh;margin-left:var(--sidebar-width);padding:42px 4vw 54px;transition:margin-left .28s cubic-bezier(.2,.8,.2,1),padding .28s}.view{width:min(1390px,100%);margin:0 auto}.view-header{justify-content:space-between;align-items:flex-end;gap:28px;margin-bottom:28px;display:flex}.home-header h1,.view-header h1{color:#2d263d;letter-spacing:-.055em;margin:2px 0 8px;font-size:clamp(30px,2.7vw,44px);line-height:1.15}.home-header p,.view-header p{color:var(--muted);margin:0;font-size:14px}.eyebrow{letter-spacing:.15em;font-weight:900;color:var(--secondary)!important;font-size:10px!important}.home-header{justify-content:space-between;align-items:flex-end;margin-bottom:26px;display:flex}.header-stats{gap:10px;display:flex}.stat-pill{text-align:center;border-radius:16px;min-width:96px;padding:11px 15px}.stat-pill span,.stat-pill strong{display:block}.stat-pill strong{font-size:17px}.stat-pill span{color:var(--muted);margin-top:2px;font-size:9px;font-weight:700}.tone-pink{background:#ffe5ef}.tone-lavender{background:#e9eaff}.tone-mint{background:#dcf7ee}.tone-dark{background:#eeeaf3}.home-grid{grid-template-columns:minmax(570px,1.6fr) minmax(330px,.9fr);gap:20px;display:grid}.continue-card,.deck-card,.game-card,.game-preview,.keyboard-panel,.plan-card,.prompt-panel,.stamp-card{box-shadow:var(--shadow);border:1px solid #51436e12}.continue-card{background:linear-gradient(128deg,#ffedf5,#fff9fc 56%,#e8ebff);border-radius:32px;grid-template-columns:1.15fr .85fr;min-height:330px;padding:clamp(30px,3vw,48px);display:grid;position:relative;overflow:hidden}.continue-card:after{content:"";border:45px solid #ffffff61;border-radius:50%;width:310px;height:310px;position:absolute;bottom:-130px;right:-75px}.card-bubbles i{background:#fffc;border-radius:50%;position:absolute}.card-bubbles i:first-child{width:18px;height:18px;top:18%;right:33%}.card-bubbles i:nth-child(2){width:7px;height:7px;top:13%;right:30%}.card-bubbles i:nth-child(3){width:11px;height:11px;top:16%;right:9%}.continue-copy{z-index:2;align-self:center}.soft-badge{color:var(--accent-dark);background:#ffffffb8;border-radius:999px;padding:7px 11px;font-size:10px;font-weight:900;display:inline-flex}.continue-copy h2{letter-spacing:-.05em;margin:15px 0 7px;font-size:clamp(28px,2.8vw,44px)}.continue-copy>p{color:var(--muted);margin:0 0 25px;font-size:13px}.lesson-progress-label{color:var(--muted);justify-content:space-between;margin-bottom:8px;font-size:10px;font-weight:800;display:flex}.lesson-progress-label strong{color:var(--accent-dark)}.progress-track{background:#46385d17;border-radius:99px;height:8px;overflow:hidden}.progress-track i{border-radius:inherit;background:linear-gradient(90deg,var(--accent),#ff79a9);height:100%;transition:width .3s;display:block}.primary-button{color:#fff;background:linear-gradient(135deg,var(--accent),var(--accent-dark));cursor:pointer;border:0;border-radius:15px;justify-content:center;align-items:center;gap:9px;min-height:48px;margin-top:24px;padding:0 22px;font-weight:900;transition:transform .16s,box-shadow .16s;display:inline-flex;box-shadow:0 12px 25px #e13b7940}.primary-button:hover{transform:translateY(-2px);box-shadow:0 15px 29px #e13b794f}.continue-mascot{z-index:2;align-self:end;place-items:center;min-height:240px;display:grid;position:relative}.speech-bubble{z-index:4;background:#fff;border-radius:15px 15px 15px 3px;padding:10px 13px;font-size:11px;font-weight:800;position:absolute;top:0;right:0;box-shadow:0 8px 20px #43345b1a}.stamp-card{background:#ffffffdb;border-radius:28px;padding:27px}.section-title-row{justify-content:space-between;align-items:center;gap:20px;display:flex}.section-title-row h2,.section-title-row h3{letter-spacing:-.04em;margin:3px 0 0}.section-title-row h3{font-size:20px}.section-title-row h2{font-size:23px}.flame{color:#fff;background:linear-gradient(145deg,#ff7c6e,var(--accent));border-radius:50% 50% 50% 12%;place-items:center;width:38px;height:38px;font-weight:900;display:grid;transform:rotate(45deg)}.flame:first-letter{transform:rotate(-45deg)}.stamp-days{grid-template-columns:repeat(7,1fr);gap:6px;margin:28px 0 22px;display:grid}.stamp-days div{justify-items:center;gap:8px;display:grid}.stamp-days span{color:var(--muted);font-size:9px;font-weight:800}.stamp-days i{color:#aaa3b6;background:#f8f7fb;border:1px dashed #d9d4e3;border-radius:50%;place-items:center;width:35px;height:35px;font-size:10px;font-style:normal;display:grid}.stamp-days .done i{color:#fff;border-style:solid;border-color:var(--accent);background:var(--accent);box-shadow:0 7px 14px #f54f8c36}.stamp-days .today i{outline-offset:3px;outline:2px solid #6473f459}.stamp-message{color:var(--muted);background:#faf8fd;border-radius:13px;margin:0;padding:13px 15px;font-size:11px}.stamp-message strong{color:var(--accent-dark)}.today-section{margin-top:34px}.quiet-link{color:var(--muted);font-size:11px;font-weight:800}.plan-grid{grid-template-columns:repeat(3,1fr);gap:16px;margin-top:15px;display:grid}.plan-card{text-align:left;cursor:pointer;background:#ffffffd9;border-radius:23px;grid-template-rows:auto 1fr;grid-template-columns:64px 1fr 34px;gap:6px 15px;min-height:148px;padding:19px;transition:transform .18s,box-shadow .18s;display:grid;position:relative}.plan-card:hover{transform:translateY(-3px);box-shadow:0 21px 48px #4c3b6e24}.plan-card.current{background:linear-gradient(135deg,#fff,#fff3f7);border-color:#f54f8c2e}.plan-card.locked{opacity:.65;cursor:default}.plan-number{color:#d3cedc;font-size:9px;font-weight:900;position:absolute;top:13px;right:15px}.plan-icon{border-radius:19px;grid-row:1/3;align-self:center;place-items:center;width:62px;height:62px;font-size:25px;font-weight:900;display:grid}.key-icon{color:var(--secondary);background:#e8eaff}.word-icon{color:var(--success);background:#dff8ef}.bonus-icon{color:#e6a536;background:#fff4cf}.plan-copy{align-self:center}.plan-copy em,.plan-copy small,.plan-copy strong{display:block}.plan-copy small{color:var(--secondary);font-size:9px;font-weight:900}.plan-copy strong{margin:5px 0;font-size:15px}.plan-copy em{color:var(--muted);font-size:10px;font-style:normal}.round-action{width:31px;height:31px;color:var(--accent-dark);background:#ffe3ed;border-radius:50%;align-self:center;place-items:center;font-weight:900;display:grid}.mascot-wrap{flex:none;place-items:center;line-height:0;display:grid;position:relative;overflow:visible}.mascot-small{width:48px;height:48px}.mascot-medium{width:72px;height:72px}.mascot-large{width:130px;height:130px}.mascot-hero{width:112px;height:112px}.mascot-wrap hantap-mascot{display:block}@keyframes menu-button-in{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:translate(0)}}.app-main.section-practice{height:100dvh;min-height:0;padding:clamp(12px,2.1dvh,22px) 2.6vw clamp(12px,2.2dvh,24px);overflow:hidden}.practice-view{outline:none;grid-template-rows:auto minmax(0,1fr) auto;gap:clamp(8px,1.6dvh,16px);width:100%;max-width:none;height:100%;min-height:0;display:grid;overflow:hidden}.practice-header{grid-template-columns:minmax(0,1fr) minmax(300px,420px) minmax(0,1fr);align-items:center;column-gap:clamp(12px,1.4vw,24px);margin-bottom:0;display:grid}.practice-title-block{align-items:center;gap:12px;min-width:0;display:flex}.practice-title-block>div{width:100%;min-width:0}.practice-menu-back{color:#5965d8;cursor:pointer;background:#ffffffd1;border:1px solid #6473f433;border-radius:13px;flex:0 0 40px;place-items:center;width:40px;height:40px;padding:0 1px 1px 0;font-size:21px;line-height:1;transition:transform .16s,color .16s,background .16s;display:grid;box-shadow:0 8px 20px #5049781a}.practice-menu-back:hover{color:#fff;background:var(--secondary);transform:translate(-2px)}.practice-header .eyebrow,.practice-header h1{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.practice-header h1{letter-spacing:-.04em;margin:3px 0 0;font-size:clamp(24px,3.5dvh,36px)}.practice-progress-wrap{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;min-width:0;display:grid}.practice-progress-wrap strong{color:var(--muted);font-size:11px}.practice-header-actions{z-index:15;justify-self:end;justify-items:end;gap:7px;min-width:0;display:grid;position:relative}.physical-hint{max-width:100%;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:9px;font-weight:800;overflow:hidden}.practice-action-row{justify-content:flex-end;align-items:center;gap:7px;display:flex}.display-settings-button,.focus-mode-button{cursor:pointer;background:#ffffffc7;border-radius:11px;align-items:center;gap:7px;min-height:34px;padding:0 12px;font-size:9px;font-weight:900;transition:transform .16s,color .16s,background .16s;display:inline-flex;box-shadow:0 7px 18px #50497812}.focus-mode-button{color:#5864d4;border:1px solid #6473f42e}.display-settings-button span,.focus-mode-button span{font-size:14px}.display-settings-button:hover,.focus-mode-button:hover{transform:translateY(-1px)}.display-settings-button{color:#665e72;border:1px solid #51436e1f}.display-settings-button.active{color:var(--accent-dark);background:#fff2f7;border-color:#f54f8c40}.display-settings-panel{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffffffa;border:1px solid #51436e1c;border-radius:18px;width:250px;padding:15px;position:absolute;top:calc(100% + 10px);right:0;box-shadow:0 20px 48px #372b4c2e}.display-settings-title{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:0 2px 10px;display:flex}.display-settings-title strong{font-size:11px}.display-settings-title small{color:var(--muted);font-size:7px;font-weight:800}.display-settings-list{gap:2px;padding-top:7px;display:grid}.display-setting-toggle{cursor:pointer;align-items:center;gap:10px;min-height:35px;padding:0 3px;display:flex}.display-setting-toggle>span{flex:1;font-size:10px;font-weight:800}.display-setting-toggle input{opacity:0;width:1px;height:1px;position:absolute;overflow:hidden}.display-setting-toggle>i{background:#d7d2db;border-radius:99px;flex:0 0 32px;width:32px;height:18px;transition:background .16s;position:relative}.display-setting-toggle>i:after{content:"";background:#fff;border-radius:50%;width:12px;height:12px;transition:transform .16s;position:absolute;top:3px;left:3px}.display-setting-toggle input:checked+i{background:var(--accent)}.display-setting-toggle input:checked+i:after{transform:translate(14px)}.display-setting-toggle input:focus-visible+i{outline-offset:2px;outline:3px solid #6473f457}.typing-stage{display:block;overflow:hidden}.prompt-panel,.typing-stage{width:100%;height:100%;min-height:0}.prompt-panel{background:#ffffffe0;border-radius:28px;flex-direction:column;padding:clamp(14px,2.2dvh,25px) clamp(28px,3vw,54px) clamp(10px,1.8dvh,24px);transition:box-shadow .2s,transform .2s;display:flex}.prompt-meta{color:var(--muted);justify-content:space-between;font-size:10px;font-weight:800;display:flex}.prompt-meta.pronunciation-hidden{justify-content:flex-end}.listen-chip{color:var(--secondary);cursor:pointer;background:#ececff;border:0;border-radius:99px;padding:7px 11px;font-weight:800}.practice-lesson-content{flex-direction:column;flex:1;justify-content:center;min-height:0;padding-top:clamp(2px,.8dvh,8px);display:flex;overflow:hidden}.practice-lesson-content .target-word{margin:0 0 clamp(7px,1.5dvh,14px)}.target-word{justify-content:center;gap:12px;margin:auto 0 14px;display:flex}.target-word span{color:#4a405e;background:#f7f5fa;border:2px solid #0000;border-radius:26px;place-items:center;min-width:clamp(76px,6vw,112px);height:clamp(76px,10.5dvh,124px);padding:0 14px;font-size:clamp(46px,4.2vw,72px);font-weight:900;line-height:1;transition:all .18s;display:grid}.target-glyph{font:inherit;font-weight:inherit;line-height:1;display:block}.target-word span.active{border-color:var(--accent);background:#fff5f8;box-shadow:0 0 0 5px #f54f8c14}.target-word span.complete{color:#fff;background:var(--success);border-color:var(--success);transform:translateY(-2px)}.target-word.target-phrase{flex-wrap:nowrap;gap:clamp(3px,.45vw,8px);width:100%;max-width:100%;margin-left:auto;margin-right:auto}.target-word.target-phrase span{border-radius:18px;flex:0 clamp(48px,4.3vw,66px);width:clamp(48px,4.3vw,66px);min-width:0;height:clamp(62px,8vh,82px);padding:0 8px;font-size:clamp(23px,3vw,48px)}.target-word span.word-space{width:8px;min-width:8px;height:1px;box-shadow:none;background:0 0;border:0;align-self:center;padding:0;transform:none}.target-word span.word-space.space-guide-visible{width:clamp(30px,3.2vw,44px);min-width:0;height:clamp(62px,8vh,82px);color:var(--secondary);background:#6473f414;border:1px dashed #6473f461;border-radius:13px;flex:0 clamp(30px,3.2vw,44px);align-self:center;place-items:center;padding:0 4px}.target-word span.word-space.space-guide-visible b{font-size:clamp(14px,1.5vw,21px);line-height:1;display:block;transform:translateY(-.05em)}.target-word.target-long-phrase{gap:clamp(2px,.38vw,7px)}.target-word.target-long-phrase span:not(.word-space){border-radius:clamp(10px,1vw,16px);flex:0 clamp(25px,3.6vw,54px);width:clamp(25px,3.6vw,54px);min-width:0;height:clamp(46px,7vh,70px);padding:0 clamp(1px,.4vw,6px);font-size:clamp(16px,2.5vw,40px)}.target-word.target-long-phrase span.word-space.space-guide-visible{flex:0 clamp(14px,2.7vw,38px);width:clamp(14px,2.7vw,38px);min-width:0;height:clamp(46px,7vh,70px)}.target-word span.word-space.space-guide-visible.active{color:var(--accent-dark);border:2px solid var(--accent);background:#fff5f8;box-shadow:0 0 0 5px #f54f8c14}.target-word span.word-space.space-guide-visible.complete{color:#fff;border:2px solid var(--success);background:var(--success);transform:translateY(-2px)}.prompt-translation{flex-direction:column;justify-content:center;align-items:center;gap:clamp(3px,.7dvh,6px);margin-bottom:clamp(7px,2.2dvh,24px);display:flex}.prompt-translation strong,.prompt-translation>span{justify-content:center;align-items:center;min-width:122px;display:inline-flex}.prompt-translation strong{color:var(--muted);background:#eef4ff;border-radius:99px;padding:clamp(4px,.7dvh,6px) 12px;font-size:13px}.prompt-translation>span{color:#a09aac;font-size:11px}.syllable-assembly{width:56px;height:56px;color:var(--muted);flex:0 0 56px}.syllable-orb{transform-origin:50% 70%;background:#efedf1;border:2px solid #c5c1c9;border-radius:50%;place-items:center;width:56px;height:56px;display:grid;position:relative}.syllable-orb-motion{position:absolute;inset:0}.syllable-piece,.syllable-result{z-index:2;color:#4d4952;place-items:center;line-height:1;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.syllable-result{font-size:27px;font-weight:900;animation:syllable-form .56s cubic-bezier(.2,.95,.28,1.18) both}.syllable-piece{z-index:3;color:#77717e;font-size:18px;font-weight:900}.syllable-piece.piece-left{animation:syllable-stick-left .56s cubic-bezier(.16,.82,.24,1) both}.syllable-piece.piece-right{animation:syllable-stick-right .56s cubic-bezier(.16,.82,.24,1) both}.syllable-orb.is-waiting .syllable-result{color:#7d7784;opacity:.18;animation:syllable-wait 1.8s ease-in-out infinite}.syllable-orb.is-complete{background:#dfdce2;border-color:#aaa5ae;animation:syllable-orb-snap .5s cubic-bezier(.2,.9,.24,1.2) both}.syllable-orb.is-wrong{animation:syllable-orb-wrong .28s both}.syllable-snap{z-index:4;pointer-events:none;position:absolute;inset:0}.syllable-snap i{opacity:0;background:#8b8790;border-radius:50%;width:5px;height:5px;position:absolute}.syllable-snap i:first-child{--snap-x:-7px;--snap-y:-6px;top:16%;left:4%}.syllable-snap i:nth-child(2){--snap-x:7px;--snap-y:-5px;top:24%;right:2%}.syllable-snap i:nth-child(3){--snap-x:-6px;--snap-y:7px;bottom:7%;left:12%}.syllable-snap i:nth-child(4){--snap-x:6px;--snap-y:7px;bottom:5%;right:9%}.syllable-snap i{animation:syllable-snap-drop .45s cubic-bezier(.2,.75,.3,1) .18s both}.jamo-track{justify-content:center;gap:9px;width:100%;margin-bottom:4px;display:flex}.jamo-track span{width:clamp(38px,5.6dvh,54px);height:clamp(38px,5.6dvh,54px);color:var(--muted);background:#f7f4f9;border-radius:14px;place-items:center;font-size:clamp(16px,1.35vw,22px);font-weight:800;transition:all .15s;display:grid}.jamo-track span.jamo-space{background:#f2eff5;border:1px solid #6473f41f}.jamo-track span.done{color:#fff;border-color:var(--accent);background:var(--accent);transform:translateY(-1px)}.jamo-track span.current{color:var(--accent-dark);border:2px solid var(--accent);background:#fff6f9;box-shadow:0 0 0 4px #f54f8c14}.practice-inline-mascot{background:#faf8fc;border:1px solid #51436e1a;border-radius:20px;justify-content:center;align-self:center;align-items:center;gap:10px;width:fit-content;min-width:142px;min-height:clamp(58px,8dvh,72px);margin:clamp(6px,1.8dvh,20px) auto -6px;padding:clamp(4px,.8dvh,7px) 13px;display:flex}.practice-inline-mascot.single-item{min-width:76px;padding-inline:9px}.practice-inline-mascot.without-jamo{margin-top:0}.feedback-wrong .prompt-panel{transform:translate(-3px);box-shadow:0 18px 50px #e840552b,inset 0 0 0 2px #e8405559}.feedback-correct .prompt-panel{box-shadow:0 18px 50px #2bad7d29,inset 0 0 0 2px #2bad7d40}.keyboard-panel{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#eff1f8e6;border-radius:27px;margin-top:0;padding:clamp(8px,1.5dvh,14px) 24px clamp(10px,1.8dvh,18px)}.keyboard-topline{min-height:clamp(20px,3dvh,28px);justify-content:space-between;margin:0 5px clamp(5px,1dvh,9px);font-weight:800;display:flex}.keyboard-guide-toggle,.keyboard-topline{color:var(--muted);align-items:center;font-size:9px}.keyboard-guide-toggle{cursor:pointer;background:0 0;border:0;gap:8px;padding:0;font-weight:900;display:inline-flex}.keyboard-guide-toggle i{background:#cbc6d3;border-radius:99px;width:34px;height:20px;transition:background .18s;position:relative}.keyboard-guide-toggle i:after{content:"";background:#fff;border-radius:50%;width:14px;height:14px;transition:transform .18s cubic-bezier(.2,.8,.2,1);position:absolute;top:3px;left:3px;box-shadow:0 2px 5px #41355333}.keyboard-guide-toggle.active{color:var(--accent-dark)}.keyboard-guide-toggle.active i{background:var(--accent)}.keyboard-guide-toggle.active i:after{transform:translate(14px)}.keyboard-rows{max-width:1400px;margin:0 auto}.keyboard-row,.keyboard-rows{gap:clamp(4px,.8dvh,7px);width:100%;display:grid}.keyboard-row.row-1{grid-template-columns:1.45fr repeat(10,minmax(0,1fr)) 1.85fr}.keyboard-row.row-2{grid-template-columns:1.8fr repeat(9,minmax(0,1fr)) 2.2fr}.keyboard-row.row-3{grid-template-columns:2.25fr repeat(7,minmax(0,1fr)) 2.75fr}.keyboard-row.row-4{grid-template-columns:1.25fr 1.2fr 1.4fr 6fr 1.4fr 1.8fr}.keyboard-row button{cursor:pointer;background:#fff;border:1px solid #594d6f14;border-radius:14px;place-items:center;width:100%;max-width:none;height:clamp(42px,6.3dvh,64px);padding:8px 5px 6px;transition:transform 80ms,box-shadow .15s,background .15s,height .28s;display:grid;position:relative;box-shadow:0 4px #7166891f,0 7px 12px #4d426614}.keyboard-row button:hover{transform:translateY(-2px)}.keyboard-row button:active{transform:translateY(3px);box-shadow:0 1px #7166891f}.keyboard-row button strong{margin-top:clamp(4px,1dvh,8px);font-size:clamp(19px,1.55vw,27px)}.keyboard-row button small{color:#655d75;letter-spacing:.06em;font-size:clamp(9px,.7vw,12px);font-weight:900;position:absolute;top:6px;left:9px}.keyboard-row button.expected{color:var(--accent-dark);border-color:var(--accent);background:#ffd9e7;animation:key-guide 1s ease-in-out infinite alternate;box-shadow:0 4px #f6a8c5,0 0 0 4px #f54f8c17,0 0 25px #f54f8c47}.keyboard-row button.utility-key{color:#756d83;letter-spacing:.04em;background:#e7e5ec;justify-content:center;align-items:center;gap:4px;font-size:9px;font-weight:900;display:flex}.keyboard-row button.utility-key:disabled{opacity:1;cursor:default}.keyboard-row button.utility-key:disabled:hover{transform:none}.keyboard-row button.shift-key.active{color:#fff;border-color:var(--secondary);background:var(--secondary)}.keyboard-row.row-4 button{height:clamp(30px,4.4dvh,42px)}.keyboard-row button.space-key{letter-spacing:.16em;font-size:8px}.sidebar-collapsed .app-main.section-practice{padding-inline:clamp(28px,3.2vw,64px)}@keyframes key-guide{0%{box-shadow:0 4px #f6a8c5,0 0 0 3px #f54f8c0f}to{box-shadow:0 4px #f6a8c5,0 0 0 5px #f54f8c21,0 0 28px #f54f8c4f}}@keyframes syllable-stick-left{0%{opacity:1;transform:translate(-50%,-50%)translate(-22px,-4px)rotate(-9deg)scale(.86)}55%{opacity:1;transform:translate(-50%,-50%)translate(-4px,1px)rotate(2deg)scale(.94)}72%{opacity:.75;transform:translate(-50%,-50%)scale(.74)}to{opacity:0;transform:translate(-50%,-50%)scale(.52)}}@keyframes syllable-stick-right{0%{opacity:1;transform:translate(-50%,-50%)translate(22px,4px)rotate(9deg)scale(.86)}55%{opacity:1;transform:translate(-50%,-50%)translate(4px,-1px)rotate(-2deg)scale(.94)}72%{opacity:.75;transform:translate(-50%,-50%)scale(.74)}to{opacity:0;transform:translate(-50%,-50%)scale(.52)}}@keyframes syllable-form{0%,41%{opacity:0;transform:translate(-50%,-50%)scale(.52)}57%{opacity:1;transform:translate(-50%,-50%)scale(1.15,.84)}72%{transform:translate(-50%,-50%)scale(.92,1.09)}86%{transform:translate(-50%,-50%)scale(1.04,.97)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}@keyframes syllable-wait{0%,to{opacity:.15;transform:translate(-50%,-50%)scale(.96)}50%{opacity:.24;transform:translate(-50%,-50%)scale(1.03)}}@keyframes syllable-orb-snap{0%{transform:scale(1)}38%{transform:scale(1.06,.9)}62%{transform:scale(.96,1.06)}82%{transform:scale(1.02,.98)}to{transform:scale(1)}}@keyframes syllable-snap-drop{0%{opacity:0;transform:translate(0)rotate(-35deg)scale(.4)}42%{opacity:.9}to{opacity:0;transform:translate(var(--snap-x),var(--snap-y)) rotate(20deg) scale(1)}}@keyframes syllable-orb-wrong{0%,to{transform:translate(0)}30%{transform:translate(-5px)rotate(-2deg)}65%{transform:translate(4px)rotate(1.5deg)}}.modal-backdrop,.result-overlay{z-index:60;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#2b233b6b;place-items:center;padding:30px;display:grid;position:fixed;inset:0}.result-card{text-align:center;background:linear-gradient(145deg,#fff,#fff5f9 60%,#eeefff);border-radius:32px;width:min(560px,100%);padding:32px 40px 38px;position:relative;overflow:hidden;box-shadow:0 35px 90px #2c213f42}.result-close{z-index:10;width:40px;height:40px;color:var(--muted);cursor:pointer;background:#ffffffb8;border:1px solid #493b6617;border-radius:50%;place-items:center;padding:0 0 3px;font-size:24px;transition:transform .16s,background .16s;display:grid;position:absolute;top:18px;right:18px}.result-close:hover{background:#fff;transform:rotate(5deg)scale(1.04)}.result-card .mascot-wrap{margin:-15px auto -5px}.result-card h2{letter-spacing:-.05em;margin:5px 0 6px;font-size:30px}.result-card>p:not(.eyebrow){color:var(--muted);margin:0;font-size:12px}.result-rays{color:#ffc44a;letter-spacing:2em;font-size:24px;position:absolute;inset:20px 0 auto}.result-stats{margin-top:22px}.result-actions,.result-stats{justify-content:center;gap:10px;display:flex}.result-actions{margin-top:24px}.result-actions .primary-button{margin-top:0}.result-home-button{border:1px solid var(--line);min-height:48px;color:var(--muted);cursor:pointer;background:#ffffffb8;border-radius:15px;padding:0 18px;font-size:10px;font-weight:900}.practice-result-actions{grid-template-columns:minmax(0,1fr);width:min(430px,100%);margin-inline:auto;display:grid}.practice-result-actions>button{cursor:pointer;border-radius:15px;justify-content:center;align-items:center;gap:7px;min-height:48px;margin:0;padding:0 14px;font-size:10px;font-weight:900;transition:transform .16s,background .16s,box-shadow .16s;display:inline-flex}.practice-result-actions>button>span{font-size:13px}.result-repeat-button{color:#665e72;background:#ffffffc7;border:1px solid #51436e1f}.practice-result-actions .result-random-button{color:#fff;border:1px solid var(--accent);background:linear-gradient(135deg,var(--accent),#ff76a9);box-shadow:0 12px 24px #f54f8c3b}.result-explore-button{color:var(--accent-dark);background:#fff0f5;border:1px solid #f54f8c29}.result-explore-button:hover,.result-random-button:hover,.result-repeat-button:hover{transform:translateY(-1px)}.result-share-button{color:#5864d4;cursor:pointer;background:#eef0ffd1;border:1px solid #6473f429;border-radius:12px;justify-content:center;align-items:center;gap:7px;min-height:38px;margin:10px auto 0;padding:0 15px;font-size:9px;font-weight:900;transition:transform .16s,background .16s;display:inline-flex}.result-share-button:hover{background:#e5e8ff;transform:translateY(-1px)}.game-result-actions .result-share-button{min-height:48px;margin:0}.search-box{border:1px solid var(--line);background:#ffffffe0;border-radius:15px;align-items:center;gap:10px;width:320px;padding:0 16px;display:flex;box-shadow:0 9px 25px #4a3a6512}.search-box span{color:var(--muted)}.search-box input{width:100%;height:48px;color:var(--ink);background:0 0;border:0;outline:0;font-size:12px}.filter-row{gap:8px;margin-bottom:23px;display:flex}.filter-row button{border:1px solid var(--line);color:var(--muted);cursor:pointer;background:#ffffffbd;border-radius:99px;padding:8px 15px;font-size:10px;font-weight:800}.filter-row button.active{color:#fff;border-color:var(--accent);background:var(--accent)}.deck-grid{grid-template-columns:repeat(3,minmax(260px,1fr));gap:18px;display:grid}.deck-card{background:#ffffffe0;border-radius:24px;grid-template-columns:118px 1fr;min-height:185px;padding:17px;display:grid;overflow:hidden}.deck-cover{color:#fff;border-radius:18px;place-items:center;display:grid;position:relative;overflow:hidden}.deck-cover:after{content:"";border:18px solid #fff3;border-radius:50%;width:80px;height:80px;position:absolute;bottom:-25px;right:-28px}.deck-cover>span{font-size:8px;font-weight:900;position:absolute;top:9px;left:10px}.deck-cover>strong{font-size:39px}.deck-cover>i{letter-spacing:.15em;opacity:.7;font-size:6px;font-style:normal;font-weight:900;position:absolute;bottom:8px}.cover-blue{background:linear-gradient(145deg,#6e75f8,#48bce5)}.cover-mint{background:linear-gradient(145deg,#33bf99,#85d5c1)}.cover-orange{background:linear-gradient(145deg,#ff9a59,#f4c04e)}.cover-pink{background:linear-gradient(145deg,#f4518f,#f99fbf)}.cover-violet{background:linear-gradient(145deg,#7b5bd6,#a28cf0)}.cover-yellow{background:linear-gradient(145deg,#f0b42f,#ffe079)}.deck-info{flex-direction:column;padding:4px 2px 2px 17px;display:flex}.official-mark{color:var(--secondary);align-self:flex-start;font-size:8px;font-weight:900}.deck-info h2{letter-spacing:-.03em;margin:9px 0 6px;font-size:16px;line-height:1.25}.deck-info>p{color:var(--muted);margin:0;font-size:10px}.deck-info>div{justify-content:space-between;align-items:center;gap:4px;margin-top:auto;display:flex}.deck-info small{color:#9a93a5;font-size:8px}.deck-info button{color:var(--accent-dark);cursor:pointer;background:#ffe7f0;border:0;border-radius:9px;padding:7px 9px;font-size:8px;font-weight:900}.empty-state{color:var(--muted);background:#ffffff73;border:1px dashed #d8d2e2;border-radius:25px;grid-column:1/-1;place-items:center;gap:5px;padding:70px;display:grid}.empty-state strong{color:var(--ink)}.games-layout{grid-template-columns:1.25fr .75fr;gap:22px;display:grid}.game-grid{grid-template-columns:repeat(2,1fr);gap:15px;display:grid}.game-card{text-align:left;cursor:pointer;background:#ffffffe0;border-radius:25px;min-height:205px;padding:24px;transition:transform .18s,border-color .18s;position:relative;overflow:hidden}.game-card:hover{transform:translateY(-3px)}.game-card.selected{border-color:#f54f8c73;box-shadow:0 21px 55px #4e3c6f29,inset 0 0 0 2px #f54f8c1f}.game-icon{color:#fff;border-radius:17px;place-items:center;width:54px;height:54px;margin-bottom:20px;font-size:23px;font-weight:900;display:grid}.game-card small,.game-card strong{display:block}.game-card small{color:var(--secondary);font-size:9px;font-weight:900}.game-card strong{margin:5px 0 7px;font-size:18px}.game-card p{width:78%;color:var(--muted);margin:0;font-size:10px;line-height:1.55}.game-card>i{color:var(--accent-dark);font-size:9px;font-style:normal;font-weight:900;position:absolute;bottom:18px;right:18px}.game-card.coming-soon{color:var(--ink);cursor:not-allowed;background:#f8f6fbd1;border:1px dashed #6f659938}.game-card.coming-soon:hover{transform:none}.game-card.coming-soon :is(.game-icon,small,strong,p,.game-rule){opacity:.58;filter:grayscale(.25)}.game-card.coming-soon>i{color:var(--muted)}.game-coming-badge{z-index:2;color:#c86c32;letter-spacing:.1em;background:#fff3e9;border:1px solid #f48c4b33;border-radius:99px;padding:6px 9px;font-size:7px;font-weight:900;position:absolute;top:15px;right:15px;box-shadow:0 6px 16px #bb6a3014}.game-blue .game-icon{background:linear-gradient(145deg,#6c76fa,#66b1eb)}.game-mint .game-icon{background:linear-gradient(145deg,#2dba94,#77d7bf)}.game-violet .game-icon{background:linear-gradient(145deg,#7c5bd8,#a998f3)}.game-orange .game-icon{background:linear-gradient(145deg,#f48c4b,#f6c34e)}.game-preview{background:linear-gradient(155deg,#eef0ff,#fff 58%,#ffedf4);border-radius:28px;padding:26px;position:relative;overflow:hidden}.game-preview-top{color:var(--muted);letter-spacing:.1em;justify-content:space-between;font-size:8px;font-weight:900;display:flex}.game-preview-top strong{color:var(--secondary)}.flow-lane{background:linear-gradient(90deg,#fff9,#dde2ffd9);border-radius:18px;height:135px;margin:22px 0 0;position:relative;overflow:hidden}.flow-lane>i{border-top:1px dashed #625a802e;position:absolute;top:50%;left:0;right:0}.flow-card{background:#fff;border-radius:16px;width:100px;padding:13px;animation:card-flow 3.8s linear infinite;position:absolute;top:27px;left:30%;box-shadow:0 10px 22px #42375c21}.flow-card small,.flow-card strong{text-align:center;display:block}.flow-card small{color:var(--muted);font-size:8px}.flow-card strong{margin-top:5px;font-size:21px}.finish-line{border-left:3px dashed #f54f8c59;position:absolute;top:0;bottom:0;left:24px}.game-preview .mascot-wrap{position:absolute;top:100px;right:-3px}.game-preview h2{margin:25px 0 6px;font-size:23px}.game-preview>p{width:75%;color:var(--muted);margin:0;font-size:11px;line-height:1.5}.game-preview .primary-button{width:100%}.discover-toolbar{justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:10px;display:flex}.discover-toolbar .filter-row{flex-wrap:wrap;flex:1;margin-bottom:0}.difficulty-filter{border:1px solid var(--line);min-width:148px;color:var(--muted);background:#ffffffc2;border-radius:13px;align-items:center;gap:9px;padding:5px 7px 5px 12px;font-size:9px;font-weight:900;display:flex}.difficulty-filter select{height:30px;color:var(--ink);background:#f2eef6;border:0;border-radius:9px;outline:0;flex:1;font-size:10px;font-weight:800}.content-result-line{color:var(--muted);align-items:center;gap:8px;margin:0 2px 13px;font-size:9px;display:flex}.content-result-line strong{color:var(--ink);font-size:12px}.deck-card{min-height:235px}.deck-badges{justify-content:flex-start!important;gap:5px!important;margin:0!important}.deck-badges>span:not(.official-mark){color:#81788d;background:#f2eef6;border-radius:99px;padding:3px 6px;font-size:7px;font-weight:900}.deck-word-preview{justify-content:flex-start!important;align-items:stretch!important;gap:5px!important;margin:10px 0!important;display:flex!important}.deck-word-preview>span{min-width:0;color:var(--ink);text-align:center;background:#f7f4fa;border-radius:9px;padding:6px 7px;font-size:10px;font-weight:900}.deck-word-preview small{max-width:45px;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:6px;font-weight:700;display:block;overflow:hidden}.deck-actions{justify-content:flex-end!important;align-items:center!important;gap:5px!important;margin-top:auto!important;display:flex!important}.deck-actions>small{margin-right:auto}.deck-actions button{white-space:nowrap}.deck-actions .deck-game-button{color:#5863cc;background:#e9ebff}.empty-state button{color:var(--accent-dark);cursor:pointer;background:#ffe3ed;border:0;border-radius:10px;margin-top:13px;padding:9px 13px;font-size:9px;font-weight:900}.deck-card{cursor:pointer;transition:transform .18s,box-shadow .18s;position:relative}.deck-card:hover{transform:translateY(-2px);box-shadow:0 22px 54px #4d3c6e26}.deck-typing-hitarea{z-index:1;border-radius:inherit;cursor:pointer;background:0 0;border:2px solid #0000;width:100%;padding:0;position:absolute;inset:0}.deck-typing-hitarea:focus-visible{outline-offset:-5px}.deck-actions .deck-game-button{z-index:2;position:relative}.deck-typing-label{color:var(--accent-dark);white-space:nowrap;background:#ffe7f0;border-radius:9px;padding:7px 9px;font-size:8px;font-weight:900}.game-deck-bar{border:1px solid var(--line);background:#ffffffc2;border-radius:19px;grid-template-columns:58px 1fr minmax(230px,300px);align-items:center;gap:14px;margin-bottom:18px;padding:12px 14px;display:grid;box-shadow:0 12px 30px #483a6312}.game-deck-cover{color:#fff;border-radius:15px;place-items:center;width:58px;height:58px;font-size:21px;font-weight:900;display:grid}.game-deck-bar>div:nth-child(2){min-width:0}.game-deck-bar small,.game-deck-bar span,.game-deck-bar strong{display:block}.game-deck-bar small{color:var(--secondary);font-size:8px;font-weight:900}.game-deck-bar strong{margin:3px 0;font-size:15px}.game-deck-bar>div span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:9px;overflow:hidden}.game-deck-bar label{color:var(--muted);align-items:center;gap:8px;font-size:8px;font-weight:900;display:flex}.game-deck-bar select{border:1px solid var(--line);min-width:0;height:38px;color:var(--ink);background:#f8f6fa;border-radius:11px;flex:1;padding:0 10px;font-size:9px;font-weight:800}.game-preview-actions{gap:8px;margin-top:20px;display:flex}.game-preview-actions .primary-button,.game-preview-actions .secondary-button{border-radius:14px;flex:1;min-height:46px;margin:0;padding:0 10px;font-size:9px;font-weight:900}.game-preview-actions .primary-button{width:auto}.secondary-button{border:1px solid var(--line);color:var(--secondary);cursor:pointer;background:#ffffffc2}.game-setup-progress{grid-template-columns:repeat(2,minmax(0,1fr));gap:36px;width:min(650px,100%);margin:0 0 22px;padding:0;list-style:none;display:grid;position:relative}.game-setup-progress:before{content:"";background:#6473f426;height:2px;position:absolute;top:25px;left:calc(50% - 28px);right:calc(50% - 28px)}.game-setup-progress li>button,.game-setup-progress li>span{width:100%;min-height:52px;color:var(--muted);text-align:left;background:0 0;border:1px solid #0000;border-radius:15px;align-items:center;gap:10px;padding:7px 10px;display:flex}.game-setup-progress li>button{cursor:pointer}.game-setup-progress li>:is(button,span)>b{z-index:1;color:#8d8498;background:#ece8f0;border-radius:11px;flex:0 0 34px;place-items:center;width:34px;height:34px;font-size:11px;display:grid;position:relative}.game-setup-progress li>:is(button,span)>span{gap:2px;min-width:0;display:grid}.game-setup-progress small{color:#aaa3b4;letter-spacing:.12em;font-size:7px;font-weight:900}.game-setup-progress strong{text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.game-setup-progress li.active>:is(button,span){color:var(--ink);background:#ffffffb3;border-color:#f54f8c21;box-shadow:0 8px 22px #4637600f}.game-setup-progress li.active>:is(button,span)>b{color:#fff;background:var(--accent);box-shadow:0 7px 16px #f54f8c38}.game-setup-progress li.complete>button>b{color:#fff;background:var(--success)}.game-choice-step,.game-deck-picker{border:1px solid var(--line);background:#ffffff94;border-radius:27px;padding:24px;box-shadow:0 14px 38px #4a3a6512}.deck-picker-label,.deck-picker-title,.game-setup-heading,.game-step-heading{justify-content:space-between;align-items:center;gap:18px;display:flex}.game-step-heading{margin-bottom:18px}.deck-picker-title>div>small,.game-step-heading>div>small{color:var(--accent-dark);letter-spacing:.12em;font-size:8px;font-weight:900}.deck-picker-title h2,.game-step-heading h2{letter-spacing:-.04em;margin:3px 0 0;font-size:23px}.prefilled-deck-chip{background:#edfaf5d1;border:1px solid #2bad7d26;border-radius:14px;grid-template-columns:42px minmax(0,1fr) 22px;align-items:center;gap:10px;min-width:270px;padding:8px 10px;display:grid}.prefilled-deck-chip>span{color:#fff;border-radius:11px;place-items:center;width:42px;height:42px;font-size:16px;font-weight:900;display:grid}.prefilled-deck-chip div{min-width:0}.prefilled-deck-chip small,.prefilled-deck-chip strong{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.prefilled-deck-chip small{color:var(--success);font-size:7px;font-weight:900}.prefilled-deck-chip strong{margin-top:3px;font-size:11px}.prefilled-deck-chip i{color:var(--success);font-size:14px;font-style:normal;font-weight:900}.game-choice-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.game-choice-grid .game-card{grid-template-rows:auto auto auto auto;grid-template-columns:50px 1fr;min-height:195px;padding:19px}.game-choice-grid .game-card .game-icon{grid-row:1/3;width:48px;height:48px}.game-choice-grid .game-card .game-rule,.game-choice-grid .game-card p,.game-choice-grid .game-card small,.game-choice-grid .game-card strong{grid-column:2}.game-choice-grid .game-card p{grid-column:1/-1;margin-top:11px}.game-choice-grid .game-card .game-rule{grid-column:1/-1;padding-right:74px}.game-choice-grid .game-card>i{top:auto;bottom:17px;right:18px}.game-setup-heading{justify-content:flex-start;margin-bottom:17px}.game-step-back{border:1px solid var(--line);min-height:42px;color:var(--secondary);cursor:pointer;background:#ffffffbf;border-radius:12px;padding:0 14px;font-size:9px;font-weight:900}.game-setup-selected{grid-template-columns:46px minmax(0,1fr);align-items:center;gap:11px;min-width:0;display:grid}.game-setup-selected .game-icon{border-radius:14px;width:46px;height:46px;margin:0}.game-setup-selected p,.game-setup-selected small,.game-setup-selected strong{display:block}.game-setup-selected small{color:var(--secondary);font-size:7px;font-weight:900}.game-setup-selected strong{margin-top:2px;font-size:15px}.game-setup-selected p{color:var(--muted);margin:2px 0 0;font-size:8px}.game-setup-layout{grid-template-columns:minmax(0,1.3fr) minmax(330px,.7fr);align-items:start;gap:20px;display:grid}.deck-picker-title{border-bottom:1px solid var(--line);padding-bottom:15px}.deck-picker-title>span{color:var(--secondary);background:#eceeff;border-radius:99px;padding:6px 9px;font-size:8px;font-weight:900}.deck-picker-group{margin-top:19px}.deck-picker-label{align-items:flex-end;margin-bottom:9px}.deck-picker-label strong{font-size:11px}.deck-picker-label small{color:var(--muted);font-size:7px}.game-deck-quick-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.game-deck-quick-grid.single{grid-template-columns:minmax(0,1fr)}.game-deck-choice{border:1px solid var(--line);min-width:0;min-height:67px;color:var(--ink);cursor:pointer;text-align:left;background:#ffffffd1;border-radius:15px;grid-template-columns:42px minmax(0,1fr) 18px;align-items:center;gap:9px;padding:10px;transition:transform .15s,border-color .15s,box-shadow .15s;display:grid}.game-deck-choice:hover{border-color:#6473f43d;transform:translateY(-2px);box-shadow:0 10px 22px #46385f14}.game-deck-choice.selected{background:#eefaf5eb;border-color:#2bad7d59;box-shadow:inset 0 0 0 1px #2bad7d14}.game-deck-choice-cover{color:#fff;border-radius:11px;place-items:center;width:42px;height:46px;font-size:15px;font-weight:900;display:grid}.game-deck-choice-copy{gap:2px;min-width:0;display:grid}.game-deck-choice-copy small,.game-deck-choice-copy strong,.game-deck-choice-copy>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.game-deck-choice-copy small{color:var(--secondary);font-size:6px;font-weight:900}.game-deck-choice-copy strong{font-size:9px}.game-deck-choice-copy>span{color:var(--muted);font-size:6px}.game-deck-choice>i{color:var(--success);font-size:12px;font-style:normal;font-weight:900}.game-topik-level-group{margin-top:20px}.game-topik-level-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.game-topik-level-card{border:1px solid var(--line);min-width:0;min-height:225px;color:var(--ink);cursor:pointer;text-align:left;background:#ffffffdb;border-radius:19px;flex-direction:column;align-items:flex-start;padding:16px;transition:transform .16s,border-color .16s,box-shadow .16s;display:flex;position:relative;overflow:hidden}.game-topik-level-card:after{content:"";border:20px solid #ffffff61;border-radius:50%;width:92px;height:92px;position:absolute;top:-42px;right:-40px}.game-topik-level-card:hover{transform:translateY(-3px);box-shadow:0 14px 28px #46385f1a}.game-topik-level-card.selected{border-color:#2bad7d7a;box-shadow:inset 0 0 0 2px #2bad7d1a,0 15px 30px #2bad7d1a}.game-topik-level-card.level-beginner{background:linear-gradient(155deg,#ecfbf6,#fff 68%)}.game-topik-level-card.level-intermediate{background:linear-gradient(155deg,#edf3ff,#fff 68%)}.game-topik-level-card.level-advanced{background:linear-gradient(155deg,#f2edff,#fff 68%)}.game-topik-level-name{z-index:1;color:#fff;background:var(--success);letter-spacing:.1em;border-radius:99px;padding:4px 7px;font-size:6px;font-weight:900;position:relative}.level-intermediate .game-topik-level-name{background:var(--secondary)}.level-advanced .game-topik-level-name{background:#7654cc}.game-topik-band{color:var(--secondary);letter-spacing:.04em;margin-top:12px;font-size:7px;font-weight:900}.game-topik-level-card>strong{letter-spacing:-.03em;margin-top:4px;font-size:14px}.game-topik-level-card>p{min-height:34px;color:var(--muted);margin:5px 0 10px;font-size:7px;line-height:1.55}.game-topik-word-samples{flex-wrap:wrap;gap:4px;width:100%;margin-top:auto;display:flex}.game-topik-word-samples span{color:#675e72;background:#ffffffd1;border-radius:7px;padding:4px 6px;font-size:7px;font-weight:900}.game-topik-level-card>small{color:var(--muted);margin-top:10px;font-size:7px;font-weight:800}.game-topik-level-card>i{width:24px;height:24px;color:var(--success);background:#ffffffd6;border-radius:8px;place-items:center;font-size:11px;font-style:normal;font-weight:900;display:grid;position:absolute;bottom:12px;right:13px}.game-topik-level-card.game-rain:after{border-color:#98d4ec47}.all-decks-panel{border:1px solid var(--line);background:#f7f5fab3;border-radius:16px;margin-top:18px;overflow:hidden}.all-decks-toggle{width:100%;min-height:58px;color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;gap:14px;padding:10px 14px;display:flex}.all-decks-toggle span{gap:2px;display:grid}.all-decks-toggle strong{font-size:10px}.all-decks-toggle small{color:var(--muted);font-size:7px}.all-decks-toggle i{width:27px;height:27px;color:var(--secondary);background:#fff;border-radius:9px;place-items:center;font-size:16px;font-style:normal;display:grid}.game-deck-import-panel{background:#ffffff7a;border-style:dashed}.game-deck-import-toggle{justify-content:flex-start;min-height:68px}.game-deck-import-toggle>i{color:#fff;background:linear-gradient(145deg,var(--accent),#ff83ae);flex:0 0 35px;width:35px;height:35px;box-shadow:0 8px 18px #f54f8c33}.game-deck-import-toggle>span{flex:1}.all-decks-content{border-top:1px solid var(--line);padding:0 12px 12px}.game-deck-search{border:1px solid var(--line);color:var(--muted);background:#fff;border-radius:12px;align-items:center;gap:8px;margin:11px 0;padding:0 11px;display:flex}.game-deck-search input{width:100%;height:38px;color:var(--ink);background:0 0;border:0;outline:0;font-size:9px}.all-decks-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;max-height:360px;padding:1px 3px 4px 1px;display:grid;overflow:auto}.game-deck-empty{color:var(--muted);text-align:center;margin:18px;font-size:9px}.setup-game-preview{position:sticky;top:20px}.setup-game-preview .play-type-switch,.setup-game-preview .ranking-preview-card{width:100%}.game-selection-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:14px;display:grid}.game-selection-summary>span{background:#fff9;border-radius:10px;gap:2px;min-width:0;padding:8px 9px;display:grid}.game-selection-summary small{color:var(--secondary);letter-spacing:.08em;font-size:6px;font-weight:900}.game-selection-summary strong{text-overflow:ellipsis;white-space:nowrap;font-size:7px;overflow:hidden}.setup-course-switch{grid-template-columns:repeat(3,1fr);gap:6px;width:min(440px,100%);margin-top:14px;display:grid}.setup-course-switch button{min-height:52px;color:var(--muted);cursor:pointer;background:#ffffff8a;border:1px solid #6473f41a;border-radius:11px;place-content:center;gap:3px;padding:7px;display:grid}.setup-course-switch button.active{color:var(--secondary);background:#fff;border-color:#6473f447;box-shadow:0 6px 16px #41375814}.setup-course-switch strong{font-size:8px}.setup-course-switch small{font-size:7px;font-weight:800}.play-type-switch{background:#5a4d7a14;border-radius:15px;grid-template-columns:repeat(2,1fr);gap:7px;width:min(440px,100%);margin-top:16px;padding:5px;display:grid}.play-type-switch button{min-height:48px;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:11px;place-content:center;gap:2px;display:grid}.play-type-switch button.active{color:var(--secondary);background:#fff;border-color:#6473f433;box-shadow:0 6px 16px #41375817}.play-type-switch button:disabled{opacity:.4;cursor:not-allowed}.play-type-switch strong{font-size:10px}.play-type-switch small{font-size:7px;font-weight:800}.ranking-preview-card{text-align:left;background:#ffffffb8;border:1px solid #6473f429;border-radius:15px;width:min(440px,100%);margin-top:10px;padding:12px 14px}.ranking-preview-card>div{justify-content:space-between;gap:12px;display:flex}.ranking-preview-card>div span,.ranking-preview-card>div strong{font-size:8px}.ranking-preview-card>div span{color:var(--secondary);letter-spacing:.08em;font-weight:900}.ranking-preview-card ol{gap:4px;margin:9px 0 6px;padding:0;list-style:none;display:grid}.ranking-preview-card li{color:var(--muted);background:#5f55780f;border-radius:8px;grid-template-columns:28px 1fr auto;align-items:center;gap:7px;padding:5px 7px;font-size:8px;display:grid}.ranking-preview-card li.is-me{color:var(--secondary);background:#6473f41f}.ranking-preview-card li b{color:var(--accent-dark)}.ranking-preview-card p,.ranking-preview-card>small,.ranking-unavailable-note{color:var(--muted);margin:8px 0 0;font-size:8px;line-height:1.45;display:block}.ranking-unavailable-note{width:75%}.ranked-session-badge{color:#fff;background:var(--secondary);letter-spacing:.1em;border-radius:99px;margin-left:7px;padding:3px 6px;font-size:6px;display:inline-flex}.ranking-inline-error{max-width:600px;color:#c23f57!important;margin:8px auto 0!important;font-size:9px!important}.ranked-result-card{text-align:left;background:#f1f2ffe0;border:1px solid #6473f433;border-radius:16px;grid-template-columns:repeat(2,1fr);gap:7px 12px;width:min(470px,100%);margin:12px auto 0;padding:12px 14px;display:grid}.ranked-result-card>div{display:grid}.ranked-result-card span{color:var(--secondary);letter-spacing:.08em;font-size:7px;font-weight:900}.ranked-result-card strong{margin-top:2px;font-size:21px}.ranked-result-card a,.ranked-result-card p,.ranked-result-card>button{grid-column:1/-1;margin:2px 0 0;font-size:8px}.ranked-result-card a{color:var(--secondary);font-weight:900;text-decoration:none}.ranked-result-card>button{color:#fff;background:var(--secondary);cursor:pointer;border:0;border-radius:10px;min-height:34px;font-weight:900}.game-complete-panel:has(.ranked-result-card){max-height:calc(100dvh - 40px);overflow:auto}.ranking-nickname-form{background:#ffffffb8;border:1px solid #2bad7d3d;border-radius:13px;grid-column:1/-1;gap:8px;margin-top:4px;padding:11px;display:grid}.ranking-nickname-form>div{gap:2px;display:grid}.ranking-nickname-form>div strong{margin:0;font-size:11px}.ranking-nickname-form>div small{color:var(--muted);font-size:7px;line-height:1.5}.ranking-nickname-form label{grid-template-columns:1fr auto;gap:7px;display:grid}.ranking-nickname-form input{border:1px solid var(--line);min-width:0;height:36px;color:var(--ink);background:#fff;border-radius:10px;outline:0;padding:0 10px;font-size:10px;font-weight:800}.ranking-nickname-form input:focus{border-color:var(--secondary);box-shadow:0 0 0 3px #6473f41f}.ranking-nickname-form button{color:#fff;background:var(--success);cursor:pointer;border:0;border-radius:10px;min-height:36px;padding:0 13px;font-size:8px;font-weight:900}.ranking-nickname-form button:disabled{cursor:wait;opacity:.65}.nickname-locked-note,.ranking-nickname-form .nickname-error,.ranking-nickname-form .nickname-success{grid-column:1/-1;margin:0;font-size:7px;font-weight:800}.ranking-nickname-form .nickname-success{color:#177653}.ranking-nickname-form .nickname-error{color:#c23f57}.nickname-locked-note{color:var(--muted)}.game-session{min-height:calc(100vh - 76px)}.game-session-header{grid-template-columns:120px 1fr auto;align-items:center;gap:16px;display:grid}.game-session-header>button{border:1px solid var(--line);min-height:38px;color:var(--muted);cursor:pointer;background:#ffffffc7;border-radius:12px;justify-self:start;padding:0 14px;font-size:10px;font-weight:900}.game-session-header h1{margin:3px 0 0;font-size:27px}.game-live-stats{gap:8px;display:flex}.game-live-stats>span{text-align:right;background:#ffffffc7;border-radius:14px;min-width:84px;padding:9px 13px}.game-live-stats small,.game-live-stats strong{display:block}.game-live-stats small{color:var(--muted);font-size:7px}.game-live-stats strong{margin-top:2px;font-size:17px}.game-progress-line{background:#786b921f;border-radius:99px;height:8px;margin:16px auto 20px;position:relative;overflow:visible}.game-progress-line i{border-radius:inherit;background:linear-gradient(90deg,var(--accent),#ff9ebf);height:100%;transition:width .35s;display:block}.game-progress-line span{color:var(--muted);font-size:8px;font-weight:900;position:absolute;top:-17px;right:0}.game-question-card{border:1px solid var(--line);width:min(880px,100%);min-height:600px;box-shadow:var(--shadow);text-align:center;background:#ffffffdb;border-radius:30px;flex-direction:column;align-items:center;margin:0 auto;padding:27px 42px 34px;transition:border-color .15s,box-shadow .15s;display:flex;position:relative}.answer-correct .game-question-card{border-color:#2bad7d66;box-shadow:0 20px 55px #2bad7d21}.answer-wrong .game-question-card{border-color:#e840556b;box-shadow:0 20px 55px #e8405524}.game-question-top{width:100%;color:var(--muted);letter-spacing:.08em;justify-content:space-between;font-size:8px;font-weight:900;display:flex}.game-question-top strong{color:var(--secondary)}.game-question-card>.mascot-wrap{margin:5px 0 -2px}.game-instruction{color:var(--muted);margin:2px 0 13px;font-size:10px;font-weight:800}.quiz-prompt strong,.speed-word strong{color:var(--ink);letter-spacing:-.05em;font-size:clamp(46px,5vw,68px);display:block}.quiz-prompt span,.speed-word span{color:var(--muted);margin-top:6px;font-size:12px;display:block}.speed-jamo{flex-wrap:wrap;justify-content:center;gap:7px;margin:25px 0 17px;display:flex}.speed-jamo span{width:45px;height:45px;color:var(--muted);background:#f4f1f6;border-radius:13px;place-items:center;font-size:17px;font-weight:900;display:grid}.speed-jamo span.done{color:#fff;background:var(--success)}.speed-jamo span.current{color:var(--accent-dark);border:2px solid var(--accent);background:#fff4f8}.next-key-hint{color:var(--muted);background:#f5f2f8;border-radius:15px;grid-template-columns:auto 54px auto;align-items:center;gap:10px;margin-top:auto;padding:9px 16px;display:grid}.next-key-hint small{font-size:7px;font-weight:900}.next-key-hint strong{font-size:21px}.next-key-hint span{min-width:44px;color:var(--secondary);background:#fff;border-radius:8px;padding:5px 7px;font-size:9px;font-weight:900}.quiz-prompt{margin:15px 0 25px}.quiz-options{grid-template-columns:repeat(2,1fr);gap:10px;width:min(620px,100%);margin-top:auto;display:grid}.quiz-options button{border:1px solid var(--line);min-height:84px;color:var(--ink);cursor:pointer;background:#f8f6fa;border-radius:17px;padding:13px;transition:transform .14s,border-color .14s,background .14s}.quiz-options button:hover:not(:disabled){background:#f0f1ff;border-color:#6473f44d;transform:translateY(-2px)}.quiz-options button:disabled{cursor:default}.quiz-options button.correct-answer{color:#177653;background:#e3f8ef;border-color:#2bad7d59}.quiz-options small,.quiz-options strong{display:block}.quiz-options strong{font-size:21px}.quiz-options small{color:var(--muted);margin-top:4px;font-size:9px}.game-complete-overlay{z-index:70;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#2b233b80;place-items:center;padding:30px;display:grid;position:fixed;inset:0}.game-complete-panel{text-align:center;background:linear-gradient(145deg,#fff,#fff5f9 60%,#eeefff);border-radius:31px;width:min(580px,100%);padding:24px 38px 34px;box-shadow:0 35px 90px #2c213f4d}.game-complete-panel .mascot-wrap{margin:-5px auto -8px}.game-complete-panel h2{margin:5px 0 6px;font-size:28px}.game-complete-panel>p:not(.eyebrow){color:var(--muted);margin:0;font-size:11px}.game-grid{grid-template-columns:1fr}.game-grid.game-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.game-card{grid-template-rows:auto auto auto;grid-template-columns:58px 1fr auto;align-content:center;column-gap:16px;min-height:174px;padding:20px 22px;display:grid}.game-card .game-icon{grid-row:1/4;align-self:center;margin:0}.game-card .game-rule,.game-card p,.game-card small,.game-card strong{grid-column:2}.game-card strong{margin:2px 0 4px}.game-card p{width:100%}.game-card .game-rule{color:var(--secondary);margin-top:8px;font-size:8px;font-weight:900;display:block}.game-card>i{top:20px;bottom:auto;right:20px}.preview-rule{color:var(--secondary);background:#ffffffa8;border-radius:99px;margin-top:10px;padding:7px 10px;font-size:8px;font-weight:900;display:inline-flex}.rain-preview{background:linear-gradient(#dfeeff,#f5f7ff 68%,#e1f1d2)}.preview-cloud{color:#fff;text-shadow:0 6px 15px #5d759b2e;font-size:32px;position:absolute;top:6px;left:15px}.rain-preview-drop{z-index:2;color:#315675;text-align:center;background:#fff;border-radius:12px;min-width:70px;padding:9px 12px;font-size:14px;font-weight:900;position:absolute;box-shadow:0 8px 18px #3f587824}.rain-preview-drop.first{animation:preview-rain 3.2s linear infinite;top:30px;left:30%}.rain-preview-drop.second{animation:preview-rain 3.7s linear .8s infinite;top:68px;right:17%}.initial-preview{place-content:center;justify-items:center;gap:6px;display:grid}.initial-preview small{color:var(--secondary);letter-spacing:.13em;font-size:8px;font-weight:900}.initial-preview strong{color:var(--ink);font-size:28px}.initial-preview span{color:var(--muted);font-size:10px}.dictation-preview{background:radial-gradient(circle at 50% 45%,#fff7ca,#0000 34%),linear-gradient(145deg,#fff4df,#fffaf4);place-content:center;justify-items:center;gap:4px;display:grid}.dictation-preview .preview-speaker{z-index:2;color:#fff;background:linear-gradient(145deg,#f48c4b,#f6c34e);border-radius:50%;place-items:center;width:48px;height:48px;font-size:21px;font-weight:900;display:grid;position:relative;box-shadow:0 10px 22px #da8b363b}.dictation-preview .preview-waves{width:130px;height:90px;position:absolute;top:50%;left:50%;transform:translate(-50%,-57%)}.dictation-preview .preview-waves i{border:2px solid #f48c4b4d;border-radius:50%;animation:sound-ring 2s ease-out infinite;position:absolute;inset:50%}.dictation-preview .preview-waves i:nth-child(2){animation-delay:.4s}.dictation-preview .preview-waves i:nth-child(3){animation-delay:.8s}.dictation-preview small{z-index:2;color:#d77a3f;letter-spacing:.13em;margin-top:4px;font-size:7px;font-weight:900}.dictation-preview strong{z-index:2;color:#7b6559;letter-spacing:.18em;font-size:13px}.game-live-stats .life-stat{min-width:106px}.game-live-stats .life-stat strong{color:#eb557c;letter-spacing:.08em;white-space:nowrap}.game-live-stats .life-stat i{color:#d9d3df;font-style:normal}.game-arena{min-height:620px;padding:25px 30px 28px;overflow:hidden}.game-arena.is-ready{background:radial-gradient(circle at 50% 34%,#fff8d8 0,#0000 27%),linear-gradient(145deg,#fffffff2,#fff6fa 58%,#eef0ff);justify-content:flex-start}.game-ready-panel{justify-items:center;width:min(620px,100%);margin:-3px auto 0;display:grid}.game-ready-panel .mascot-wrap{margin:-22px 0 -34px}.game-ready-icon{z-index:2;color:#fff;border-radius:18px;place-items:center;width:58px;height:58px;font-size:23px;font-weight:900;display:grid;position:relative;box-shadow:0 12px 26px #3f355929}.game-ready-icon.game-blue{background:linear-gradient(145deg,#6c76fa,#66b1eb)}.game-ready-icon.game-mint{background:linear-gradient(145deg,#2dba94,#77d7bf)}.game-ready-icon.game-violet{background:linear-gradient(145deg,#7c5bd8,#a998f3)}.game-ready-icon.game-orange{background:linear-gradient(145deg,#f48c4b,#f6c34e)}.game-ready-panel h2{letter-spacing:-.04em;margin:14px 0 5px;font-size:30px}.game-ready-panel>p{max-width:460px;color:var(--muted);margin:0;font-size:11px;line-height:1.7}.game-rule-strip{grid-template-columns:repeat(3,1fr);gap:7px;width:100%;margin:20px 0 16px;display:grid}.game-rule-strip span{min-height:49px;color:var(--muted);background:#ffffffb8;border-radius:13px;place-items:center;padding:8px;font-size:8px;font-weight:900;display:grid}.game-start-button{width:min(330px,100%)!important;margin:0!important}.game-feedback-chip{z-index:10;color:#686078;background:#f6f3f9eb;border-radius:99px;min-width:84px;padding:7px 12px;font-size:9px;font-weight:900;position:absolute;top:20px;left:50%;transform:translate(-50%);box-shadow:0 8px 20px #2f26401a}.game-feedback-chip.correct{color:#177653;background:#def7eb}.game-feedback-chip.wrong{color:#c23f57;background:#ffe3e8;animation:feedback-shake .18s both}.game-feedback-chip.action-danger{color:#9b4b00;background:#fff0bd;box-shadow:0 8px 24px #de931f38}.game-countdown-panel>p{max-width:520px;min-height:34px;color:var(--ink);margin:5px 0 0;font-size:14px;font-weight:900;line-height:1.45}.first-run-guide{color:#177653;letter-spacing:.04em;background:#def7eb;border-radius:99px;margin-top:12px;padding:7px 11px;font-size:8px;font-weight:900;display:inline-flex}.dictation-game-stage,.flow-game-stage,.initial-game-stage,.rain-game-stage{flex-direction:column;flex:1;width:100%;display:flex}.app-main.section-games:has(.game-session){height:100dvh;min-height:0;padding:16px 20px 20px;overflow:hidden}.game-session{grid-template-rows:auto auto minmax(0,1fr);width:100%;max-width:none;height:100%;min-height:0;display:grid}.game-session-header{min-height:52px}.game-session-header h1{font-size:clamp(22px,2vw,30px)}.game-session .game-progress-line{width:100%;margin:13px 0 15px}.game-session .game-arena{border-radius:26px;width:100%;height:100%;min-height:0;margin:0;padding:clamp(16px,2.2vh,26px) clamp(18px,2.5vw,38px) clamp(18px,2.5vh,30px)}.game-session .game-arena.is-ready{overflow:auto}.kaiten-time-line i{background:linear-gradient(90deg,#e75454,#ffb34b 44%,#4caf83)}.kaiten-ready-panel{align-content:center;gap:13px;width:min(920px,100%);margin:auto}.kaiten-ready-heading{text-align:left;grid-template-columns:86px 1fr;align-items:center;gap:16px;width:min(760px,100%);display:grid}.kaiten-ready-heading .mascot-wrap{margin:0}.kaiten-ready-heading h2{margin:2px 0 3px;font-size:clamp(25px,3.4vh,36px)}.kaiten-ready-heading p{color:var(--muted);margin:0;font-size:10px;line-height:1.55}.kaiten-ready-kicker{color:var(--secondary);letter-spacing:.16em;font-size:8px;font-weight:900;display:inline-flex}.kaiten-course-grid{grid-template-columns:repeat(3,1fr);gap:10px;width:100%;display:grid}.kaiten-course-grid button{min-height:118px;color:var(--ink);cursor:pointer;text-align:left;background:#ffffffe0;border:2px solid #0000;border-radius:18px;align-content:center;justify-items:start;padding:15px 17px;transition:transform .16s,border-color .16s,box-shadow .16s;display:grid;position:relative;box-shadow:inset 0 0 0 1px #6f659917,0 9px 22px #5549760f}.kaiten-course-grid button:hover{transform:translateY(-2px)}.kaiten-course-grid button.selected{border-color:var(--accent);box-shadow:0 12px 25px #f54f8c1f,inset 0 0 0 1px #f54f8c0f}.kaiten-course-grid button small{color:var(--accent-dark);letter-spacing:.12em;font-size:7px;font-weight:900}.kaiten-course-grid button strong{margin-top:4px;font-size:18px}.kaiten-course-grid button span{color:var(--secondary);margin-top:2px;font-size:9px;font-weight:900}.kaiten-course-grid button em{color:var(--muted);margin-top:8px;font-size:8px;font-style:normal}.kaiten-goal-card{width:min(760px,100%);color:var(--ink);text-align:left;background:#f4f3ffc7;border:1px solid #7669b01f;border-radius:14px;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:11px 14px;display:grid}.kaiten-goal-card span{color:var(--secondary);font-size:8px;font-weight:900}.kaiten-goal-card strong{font-size:11px}.kaiten-goal-card small{color:var(--muted);font-size:8px}.kaiten-rule-strip{max-width:760px;margin:0}.flow-game-stage{grid-template-rows:minmax(250px,1fr) auto;gap:10px;min-height:0;display:grid}.flow-play-lane{background:linear-gradient(145deg,#fff 0 58%,#fbfaff 100%);border:1px solid #7669b01f;border-radius:24px;height:100%;min-height:250px;position:relative;overflow:hidden;box-shadow:0 14px 32px #4e427014}.flow-play-lane:before{content:"";background:linear-gradient(90deg,#fff1f7,#f0efff 58%,#eef7ff);height:52px;position:absolute;bottom:0;left:0;right:0}.flow-lane-meta{z-index:5;pointer-events:none;justify-content:space-between;align-items:center;gap:12px;display:flex;position:absolute;top:16px;left:18px;right:18px}.flow-lane-meta span,.flow-lane-meta strong{background:#ffffffe0;border:1px solid #7669b01a;border-radius:99px;padding:6px 10px;font-size:8px;font-weight:900;box-shadow:0 5px 14px #4c42690f}.flow-lane-meta span{color:var(--secondary)}.flow-lane-meta strong{color:var(--muted)}.flow-target-card{z-index:3;width:clamp(215px,25vw,340px);min-height:132px;color:var(--ink);background:#fff;border:1px solid #f54f8c26;border-radius:21px;align-content:center;justify-items:center;padding:28px 24px 22px;transition:left 60ms linear,filter .16s;display:grid;position:absolute;top:51%;transform:translate(-50%,-50%);box-shadow:0 16px 34px #46396521}.flow-target-card .flow-card-accent{color:var(--accent);font-size:13px;position:absolute;top:14px;left:17px}.flow-target-card strong{letter-spacing:-.04em;font-size:clamp(25px,3vw,39px)}.flow-target-card.long-word strong{font-size:clamp(19px,2.25vw,30px)}.flow-target-card small{color:var(--muted);margin-top:5px;font-size:9px;font-weight:800}.flow-target-card.is-completing{z-index:6;filter:drop-shadow(0 0 16px #57c79d47);animation:flow-success-exit .44s ease-in both}.flow-target-card.wrong{filter:grayscale(.55)contrast(.88)}.flow-success-badge{z-index:4;color:#18815b;letter-spacing:.1em;background:#e7f9f1f2;border:1px solid #2b9d742e;border-radius:99px;padding:5px 10px;font-size:7px;font-weight:900;position:absolute;top:10px;left:50%;transform:translate(-50%);box-shadow:0 5px 12px #3380631a}.flow-card-next{z-index:2;opacity:0;pointer-events:none;animation:flow-next-arrive .44s ease-out both;left:102%}.flow-conveyor-strip{z-index:2;justify-content:space-between;align-items:center;display:flex;position:absolute;bottom:21px;left:5%;right:5%}.flow-conveyor-strip i{background:#7669b033;border-radius:50%;width:7px;height:7px}@keyframes flow-success-exit{0%,34%{opacity:1;transform:translate(-50%,-50%)scale(1)}48%{opacity:1;transform:translate(-58%,-50%)scale(1.03)}to{opacity:0;transform:translate(-280%,-50%)scale(.82)}}@keyframes flow-next-arrive{0%{opacity:0;left:124%;transform:translate(-35%,-50%)scale(.96)}to{opacity:1;left:102%;transform:translate(-50%,-50%)scale(1)}}.game-session-sushi .flow-play-lane{height:100%}.game-session-sushi .game-input-console{background:#fffffff2;border-color:#7669b01a;min-height:96px;margin-top:0;box-shadow:0 7px 19px #4e42700d}.flow-preview{background:linear-gradient(145deg,#fff,#f8f6ff)}.flow-preview:after{content:"";background:linear-gradient(90deg,#fff1f7,#f0efff);height:27px;position:absolute;bottom:0;left:0;right:0}.flow-preview-label{z-index:3;color:var(--secondary);letter-spacing:.12em;font-size:7px;font-weight:900;position:absolute;top:9px;left:10px}.flow-preview .flow-card{background:#fff;border:1px solid #f54f8c21;box-shadow:0 10px 22px #42375c1c}.flow-preview .flow-card b{color:var(--accent);font-size:8px;position:absolute;top:8px;left:9px}.flow-preview-dots{z-index:2;justify-content:space-between;display:flex;position:absolute;bottom:10px;left:8%;right:8%}.flow-preview-dots i{background:#7669b038;border-radius:50%;width:4px;height:4px}.kaiten-result-panel{background:radial-gradient(circle at 50% 8%,#fff0f6,#0000 30%),linear-gradient(145deg,#fff,#f8f6ff 62%,#f0f8ff);width:min(720px,100%);max-height:calc(100dvh - 40px);padding-top:18px;overflow:auto}.kaiten-result-panel .mascot-wrap{margin:-14px auto -20px}.kaiten-result-stats{margin-top:11px!important}.game-input-console{border:1px solid var(--line);text-align:left;background:#faf8fc;border-radius:19px;grid-template-columns:145px 1fr 88px;align-items:center;gap:14px;min-height:112px;margin-top:12px;padding:14px 16px;display:grid}.game-input-console>div:first-child small,.rain-input-dock>div:first-child small{color:var(--muted);font-size:7px;font-weight:900;display:block}.game-input-console>div:first-child strong,.rain-input-dock>div:first-child strong{color:var(--ink);letter-spacing:.06em;margin-top:4px;font-size:24px;display:block}.compact-jamo-track{flex-wrap:wrap;justify-content:center;gap:5px;display:flex}.compact-jamo-track span{width:32px;height:32px;color:var(--muted);background:#eeeaf2;border:1px solid #0000;border-radius:9px;place-items:center;font-size:12px;font-weight:900;display:grid}.compact-jamo-track span.done{color:#fff;background:var(--success)}.compact-jamo-track span.current{color:var(--accent-dark);border-color:var(--accent);background:#fff4f8;box-shadow:0 0 0 3px #f54f8c14}.next-key-chip{min-width:82px;color:var(--secondary);text-align:left;background:#eef0ff;border-radius:13px;grid-template-columns:1fr auto;align-items:center;gap:2px 6px;padding:9px 10px;display:grid}.next-key-chip span{font-size:6px;font-weight:900}.next-key-chip strong{grid-area:1/2/3;font-size:21px}.next-key-chip small{font-size:7px;font-weight:900}.rain-game-stage{padding-top:16px}.rain-sky{background:linear-gradient(#cde7ff,#eef7ff 70%,#e9f6dd 0);border-radius:23px;height:425px;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #5b7d9f14}.rain-clouds{height:70px;position:absolute;top:-20px;left:0;right:0}.rain-clouds i{background:#ffffffd1;border-radius:50%;width:130px;height:45px;position:absolute}.rain-clouds i:first-child{left:7%}.rain-clouds i:nth-child(2){width:180px;left:42%}.rain-clouds i:nth-child(3){right:4%}.rain-drop{z-index:4;color:#315675;cursor:pointer;width:112px;min-height:59px;font:inherit;text-align:center;background:#ffffffed;border:2px solid #ffffffeb;border-radius:16px 16px 20px 20px;padding:10px 9px 12px;transition:top 80ms linear,transform .14s,box-shadow .14s,border-color .14s;position:absolute;transform:translate(-50%,-50%);box-shadow:0 10px 20px #30537829}.rain-drop:before{content:"";background:inherit;border-radius:3px;width:15px;height:15px;position:absolute;top:-9px;left:50%;transform:translate(-50%)rotate(45deg)}.rain-drop.active{z-index:6;border-color:#717df1;transform:translate(-50%,-50%)scale(1.08);box-shadow:0 0 0 4px #6c76fa26,0 13px 24px #2f407e38}.rain-drop.danger{border-color:#ff8f45;animation:rain-danger-pulse .7s ease-in-out infinite alternate;box-shadow:0 0 0 4px #ff8f4524,0 13px 24px #a14e1833}.rain-drop:disabled{cursor:not-allowed;opacity:.62}.rain-drop.active:disabled{opacity:1}.rain-drop small,.rain-drop strong{z-index:2;display:block;position:relative}.rain-drop strong{font-size:17px}.rain-drop small{color:#8193a6;margin-top:2px;font-size:7px}.rain-drop>i{background:#79a8dd;border-radius:99px;height:3px;position:absolute;bottom:6px;left:8px}.rain-ground{z-index:3;background:linear-gradient(#bce0a7a6,#9fce89);border-top:2px dashed #458d6440;height:30%;position:absolute;bottom:0;left:0;right:0}.rain-ground span{color:#2d613f8f;letter-spacing:.12em;bottom:9px;right:12px}.rain-ground span,.rain-wave-badge{font-size:7px;font-weight:900;position:absolute}.rain-wave-badge{z-index:5;color:#315675;letter-spacing:.08em;background:#ffffffc7;border-radius:99px;padding:6px 9px;top:12px;left:12px;box-shadow:0 5px 14px #3053781a}.rain-wave-badge.wave-peak{color:#a44f13;background:#ffeed5eb}.rain-wave-badge.wave-recovery{color:#177653;background:#def7ebeb}@keyframes rain-danger-pulse{0%{transform:translate(-50%,-50%)scale(1)}to{transform:translate(-50%,-50%)scale(1.04)}}.rain-input-dock{border:1px solid var(--line);text-align:left;background:#faf8fc;border-radius:18px;grid-template-columns:1fr 92px;align-items:center;gap:12px;min-height:85px;margin-top:10px;padding:12px 15px;display:grid}.rain-input-dock>div:first-child span{color:var(--muted);margin-top:1px;font-size:8px;display:block}.game-complete-panel{max-height:calc(100dvh - 40px);position:relative;overflow:auto}.game-result-grade{color:#5864d4;background:#eef0ff;border-radius:18px;place-content:center;width:58px;height:58px;display:grid;position:absolute;top:19px;right:22px;box-shadow:0 8px 20px #4a50a11f}.game-result-grade span{letter-spacing:.12em;font-size:6px;font-weight:900}.game-result-grade strong{font-size:26px;line-height:1}.game-result-grade.grade-s{color:#a15a00;background:#fff0bd}.personal-best-card{text-align:left;background:#f1f2ffc2;border:1px solid #6473f429;border-radius:15px;grid-template-columns:1fr 1fr;gap:7px 12px;width:min(470px,100%);margin:12px auto 0;padding:11px 14px;display:grid}.personal-best-card.is-new-best{background:linear-gradient(135deg,#fff8d8,#fff1f6);border-color:#e89d284d}.personal-best-card>div{display:grid}.personal-best-card span{color:var(--secondary);letter-spacing:.08em;font-size:7px;font-weight:900}.personal-best-card strong{margin-top:2px;font-size:18px}.personal-best-card p{color:var(--muted);grid-column:1/-1;margin:1px 0 0;font-size:8px;font-weight:800}.missed-word-review{width:min(470px,100%);color:var(--muted);justify-content:space-between;align-items:center;gap:12px;margin:8px auto 0;font-size:8px;display:flex}.missed-word-review>span{font-weight:900}.missed-word-review div{flex-wrap:wrap;justify-content:flex-end;gap:5px;display:flex}.missed-word-review b{color:#c23f57;background:#ffe7ec;border-radius:99px;padding:5px 8px;font-size:8px}.game-result-actions{grid-template-columns:.8fr .8fr 1.4fr;width:min(520px,100%);margin-inline:auto;display:grid}.game-result-actions>button{min-width:0;padding-inline:12px}.initial-game-stage{align-items:center}.initial-game-stage>.mascot-wrap{margin:-20px 0 -32px}.initial-game-stage .game-instruction{margin:0 0 11px}.initial-prompt{background:linear-gradient(145deg,#f2eeff,#faf8ff);border:1px solid #7c5bd81f;border-radius:22px;min-width:390px;padding:20px 28px}.initial-prompt em,.initial-prompt span,.initial-prompt strong{display:block}.initial-prompt span{color:#826bdd;letter-spacing:.13em;font-size:7px;font-weight:900}.initial-prompt strong{color:#44396a;letter-spacing:.1em;margin:6px 0 3px;font-size:clamp(38px,5vw,54px)}.initial-prompt em{color:var(--muted);font-size:11px;font-style:normal;font-weight:800}.initial-answer{border-bottom:2px solid #e9e3ee;width:min(560px,100%);margin:13px 0 10px;padding:15px 18px}.initial-answer small,.initial-answer span,.initial-answer strong{display:block}.initial-answer small{color:var(--muted);letter-spacing:.1em;font-size:7px;font-weight:900}.initial-answer strong{min-height:43px;color:var(--ink);letter-spacing:.12em;margin:2px 0;font-size:31px}.initial-answer span{color:var(--muted);font-size:8px}.initial-jamo-track{width:min(540px,100%);min-height:35px}.initial-jamo-track span.masked{color:#b8afc1}.initial-actions{justify-content:space-between;align-items:center;gap:12px;width:min(540px,100%);margin-top:auto;display:flex}.initial-actions .secondary-button{border-radius:12px;min-height:42px;padding:0 14px;font-size:8px;font-weight:900}.initial-actions .secondary-button:disabled{opacity:.45;cursor:default}.dictation-game-stage{align-items:center}.dictation-game-stage>.mascot-wrap{margin:-20px 0 -32px}.dictation-game-stage .game-instruction{margin:0 0 11px}.dictation-player{background:radial-gradient(circle at 50% 35%,#fff8cd,#0000 38%),linear-gradient(145deg,#fff8ec,#fffdf9);border:1px solid #e6903f24;border-radius:24px;justify-items:center;width:min(470px,100%);padding:20px 24px 18px;display:grid}.dictation-listen-button{color:#fff;cursor:pointer;background:linear-gradient(145deg,#f48c4b,#f6c34e);border:0;border-radius:50%;place-items:center;width:94px;height:94px;display:grid;position:relative;box-shadow:0 15px 32px #da8b3642,inset 0 0 0 7px #ffffff2e}.dictation-listen-button:hover{transform:translateY(-2px);box-shadow:0 18px 36px #da8b364f,inset 0 0 0 7px #ffffff2e}.dictation-listen-button:focus-visible{outline-offset:5px;outline:3px solid #f48c4b4d}.speaker-core{z-index:3;font-size:34px;font-weight:900;position:relative}.sound-waves{position:absolute;inset:-27px}.sound-waves i{border:3px solid #f48c4b57;border-radius:50%;animation:sound-ring 1.6s ease-out both;position:absolute;inset:50%}.sound-waves i:nth-child(2){animation-delay:.2s}.sound-waves i:nth-child(3){animation-delay:.4s}.dictation-player>small{color:#d7793d;letter-spacing:.13em;margin-top:15px;font-size:7px;font-weight:900}.dictation-player>strong{color:var(--ink);margin-top:4px;font-size:17px}.dictation-player>span{color:var(--muted);margin-top:3px;font-size:8px}.dictation-answer{background:#fbf9fc;border:2px solid #eee8f1;border-radius:19px;align-content:center;justify-items:center;width:min(570px,100%);min-height:105px;margin:13px 0 11px;padding:14px 20px;transition:border-color .16s,background .16s;display:grid}.dictation-answer small,.dictation-answer span,.dictation-answer strong{display:block}.dictation-answer small{color:var(--muted);letter-spacing:.1em;font-size:7px;font-weight:900}.dictation-answer strong{min-height:34px;color:var(--ink);letter-spacing:.11em;margin:6px 0 2px;font-size:22px}.dictation-answer span{color:var(--muted);font-size:8px}.dictation-answer.wrong{background:#fff1f3;border-color:#e2435959;animation:answer-shake .2s}.dictation-answer.correct{background:#eaf9f2;border-color:#2bad7d52}.dictation-actions{grid-template-columns:1fr 2fr;gap:9px;width:min(570px,100%);margin-top:auto;display:grid}.dictation-actions button{border-radius:14px;min-height:46px;margin:0;font-size:9px;font-weight:900}.dictation-skip-button{border:1px solid var(--line);color:var(--muted);cursor:pointer;background:0 0}.dictation-submit-button{width:100%!important}.dictation-submit-button span{opacity:.72;margin-left:8px;font-size:7px}.dictation-submit-button:disabled{opacity:.42;cursor:default}@keyframes card-flow{0%{transform:translate(190px)}to{transform:translate(-170px)}}@keyframes preview-rain{0%{opacity:0;transform:translateY(-35px)}15%{opacity:1}to{opacity:.25;transform:translateY(85px)}}@keyframes feedback-shake{25%{transform:translate(calc(-50% - 4px))}75%{transform:translate(calc(4px - 50%))}}@keyframes sound-ring{0%{opacity:.75;inset:50%}to{opacity:0;inset:0}}@keyframes answer-shake{25%{transform:translate(-5px)}75%{transform:translate(5px)}}.settings-modal{background:#fff;border-radius:28px;width:min(460px,100%);padding:28px;box-shadow:0 35px 90px #281f3a45}.modal-title{justify-content:space-between;display:flex}.modal-title h2{margin:3px 0 0}.modal-title>button{width:38px;height:38px;color:var(--muted);cursor:pointer;background:#f5f2f7;border:0;border-radius:50%;font-size:22px}.setting-list{gap:2px;margin:24px 0 0;display:grid}.setting-list label{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:18px;padding:16px 3px;display:flex}.setting-list small,.setting-list strong{display:block}.setting-list strong{font-size:12px}.setting-list small{color:var(--muted);margin-top:3px;font-size:9px}.setting-list input{width:40px;height:22px;accent-color:var(--accent);flex:none}.setting-list select{border:1px solid var(--line);min-width:118px;color:var(--ink);font:inherit;cursor:pointer;background:#fff;border-radius:11px;padding:9px 30px 9px 11px;font-size:11px;font-weight:800}.settings-modal>.primary-button{width:100%}.share-modal{background:linear-gradient(145deg,#fff,#fff8fb 68%,#f2f3ff);border:1px solid #51436e14;border-radius:28px;width:min(520px,100%);padding:28px;box-shadow:0 35px 90px #281f3a45}.share-modal-intro{color:var(--muted);margin:14px 0 18px;font-size:11px;line-height:1.6}.share-preview-card{background:#ffffffdb;border:1px solid #f54f8c21;border-radius:20px;padding:18px;box-shadow:0 14px 32px #4d3c6e17}.share-preview-brand{align-items:center;gap:12px;display:flex}.share-preview-brand .mini-logo{border-radius:14px;flex-basis:44px;width:44px;height:44px}.share-preview-brand small,.share-preview-brand strong{display:block}.share-preview-brand small{color:var(--accent);letter-spacing:.17em;font-size:8px;font-weight:900}.share-preview-brand strong{letter-spacing:-.025em;margin-top:2px;font-size:12px}.share-preview-card>p{color:var(--ink);margin:17px 0 10px;font-size:15px;font-weight:850;line-height:1.55}.share-preview-url{color:var(--secondary);text-overflow:ellipsis;white-space:nowrap;font-size:9px;font-weight:750;display:block;overflow:hidden}.share-privacy-note{color:var(--muted);align-items:center;gap:8px;margin:14px 2px 0;font-size:9px;line-height:1.5;display:flex}.share-privacy-note span{width:19px;height:19px;color:var(--success);background:#2bad7d1c;border-radius:50%;flex:0 0 19px;place-items:center;font-size:10px;font-weight:900;display:grid}.share-modal-actions{grid-template-columns:.8fr 1fr 1.2fr;gap:9px;margin-top:22px;display:grid}.share-modal-actions button{cursor:pointer;border-radius:14px;min-height:46px;margin:0;font-size:10px;font-weight:900}.share-cancel-button{border:1px solid var(--line);color:var(--muted);background:#ffffffa6}.share-copy-button{color:#5864d4;background:#eef0ff;border:1px solid #6473f426}.share-modal-actions .primary-button{border:0;justify-content:center;align-items:center;gap:7px;display:inline-flex}.theme-dark{--ink:#f4eff8;--muted:#aaa2b8;--accent:#ff659d;--accent-dark:#ff80ad;--accent-soft:#532a3d;--secondary:#98a0ff;--success:#56d2a7;--surface:#231f2ee6;--line:#efe7f81a;--shadow:0 18px 50px #00000040;color:var(--ink);color-scheme:dark}.desktop-app.theme-dark{background:radial-gradient(circle at 72% 8%,#6f2d4e57,#0000 29%),radial-gradient(circle at 93% 80%,#323d7059,#0000 32%),linear-gradient(135deg,#15121c,#181522 50%,#131824)}.theme-dark .theme-toggle{color:#f5effa;background:#272233e6;border-color:#ffffff1a;box-shadow:0 12px 30px #00000042}.theme-dark .share-piyo-button{color:#ff9abd;background:#412734eb;border-color:#ff659d2b;box-shadow:0 12px 30px #00000042}.theme-dark .theme-toggle-icon{color:#d9d6ff;background:#45406c;transform:rotate(-18deg)}.theme-dark .sidebar{background:#181520e6;border-color:#ffffff12;box-shadow:8px 0 35px #0000002e}.theme-dark .sidebar-edge-toggle,.theme-dark .sidebar-reopen{color:#c8c0d2;background:#282333f0;border-color:#ffffff1a;box-shadow:7px 8px 20px #0000003b}.theme-dark .sidebar nav button:hover{background:#ff659d1a}.theme-dark .sidebar nav button.active{color:#ff8bb5;background:linear-gradient(100deg,#6f2f4ba3,#46273a85);box-shadow:inset 0 0 0 1px #ff659d24}.theme-dark .sidebar nav button>i{background:#ffffff0f}.theme-dark .sidebar-ios-promo{background:linear-gradient(145deg,#392631,#29283e 72%,#253149);border-color:#ff659d26;box-shadow:0 10px 24px #0003}.theme-dark .sidebar-ios-promo:after{border-color:#ffffff0e}.theme-dark .ios-promo-head small{color:#ff8bb5}.theme-dark .ios-coming-badge{color:#f7f2fa;background:#ffffff1a}.theme-dark .settings-button{background:#282330}.theme-dark .sidebar-foot{color:#6e6778}.theme-dark .home-header h1,.theme-dark .view-header h1{color:var(--ink)}.theme-dark :is(.continue-card,.stamp-card,.plan-card,.prompt-panel,.keyboard-panel,.deck-card,.game-card,.game-preview){box-shadow:var(--shadow);border-color:#ffffff13}.theme-dark .tone-pink{background:#4a2838}.theme-dark .tone-lavender{background:#31334f}.theme-dark .tone-mint{background:#233f38}.theme-dark .tone-dark{background:#332e3d}.theme-dark .continue-card{background:linear-gradient(128deg,#382331,#26212e 56%,#252843)}.theme-dark .continue-card:after{border-color:#ffffff0b}.theme-dark .card-bubbles i{background:#ffffff1f}.theme-dark .soft-badge{color:#ff8bb5;background:#ffffff14}.theme-dark .progress-track{background:#ffffff1a}.theme-dark .speech-bubble{background:#332d3c;box-shadow:0 8px 20px #0003}.theme-dark .plan-card,.theme-dark .stamp-card{background:#221e2ce6}.theme-dark .plan-card.current{background:linear-gradient(135deg,#2c2735,#392432);border-color:#ff659d3d}.theme-dark .stamp-days i{color:#8f8799;background:#2c2735;border-color:#4a4452}.theme-dark .stamp-message{background:#2a2632}.theme-dark .key-icon{background:#303250}.theme-dark .word-icon{background:#214039}.theme-dark .bonus-icon{background:#45391f}.theme-dark .round-action{color:#ff8bb5;background:#4d2939}.theme-dark .focus-mode-button,.theme-dark .practice-menu-back{color:#b7bcff;background:#282334e0;border-color:#98a0ff38}.theme-dark .practice-menu-back:hover{color:#fff;background:#7079e9}.theme-dark .display-settings-button{color:#c8c0d2;background:#282334e0;border-color:#ffffff1a}.theme-dark .display-settings-button.active{color:#ff9abd;background:#432a36;border-color:#ff659d40}.theme-dark .display-settings-panel{background:#25212dfa;border-color:#ffffff17;box-shadow:0 20px 48px #00000061}.theme-dark .display-setting-toggle>i{background:#514b58}.theme-dark .display-setting-toggle input:checked+i{background:var(--accent)}.theme-dark .prompt-panel{background:#221e2ceb}.theme-dark .listen-chip{color:#b2b8ff;background:#30324e}.theme-dark .target-word span{color:#e6e0ec;background:#2b2733}.theme-dark .target-word span.active{border-color:var(--accent);background:#3a2732;box-shadow:0 0 0 5px #ff659d17}.theme-dark .target-word span.complete{color:#fff;border-color:var(--success);background:var(--success)}.theme-dark .target-word span.word-space.space-guide-visible{color:#b7bcff;background:#30324e;border-color:#98a0ff66}.theme-dark .target-word span.word-space.space-guide-visible.active{color:#ff8bb5;border-color:var(--accent);background:#3a2732}.theme-dark .target-word span.word-space.space-guide-visible.complete{color:#fff;border-color:var(--success);background:var(--success)}.theme-dark .prompt-translation strong{background:#292f43}.theme-dark .jamo-track span{color:#aaa2b8;background:#2b2733}.theme-dark .jamo-track span.jamo-space{background:#322e3a;border-color:#b7bcff24}.theme-dark .jamo-track span.done{color:#fff;border-color:var(--accent);background:var(--accent)}.theme-dark .jamo-track span.current{color:#ff8bb5;border-color:var(--accent);background:#3a2631}.theme-dark .practice-inline-mascot{background:#2b2733;border-color:#ffffff14}.theme-dark .syllable-orb{background:#34313a;border-color:#5d5863}.theme-dark .syllable-result{color:#f1edf4}.theme-dark .syllable-orb.is-waiting .syllable-result,.theme-dark .syllable-piece{color:#bcb6c2}.theme-dark .syllable-orb.is-complete{background:#45414b;border-color:#716b77}.theme-dark .keyboard-panel{background:#1c1c27eb}.theme-dark .keyboard-guide-toggle i{background:#4a4554}.theme-dark .keyboard-guide-toggle.active i{background:var(--accent)}.theme-dark .keyboard-row button{color:#f3edf7;background:#302b39;border-color:#ffffff14;box-shadow:0 4px #211d28,0 8px 14px #00000038}.theme-dark .keyboard-row button small{color:#c7bfce}.theme-dark .keyboard-row button:hover{background:#383241}.theme-dark .keyboard-row button:active{box-shadow:0 1px #211d28}.theme-dark .keyboard-row button.expected{color:#ffbad2;background:#502d3d;border-color:#ff659d;box-shadow:0 4px #321e29,0 0 0 4px #ff659d1a,0 0 25px #ff659d38}.theme-dark .keyboard-row button.utility-key{color:#aaa3b6;background:#27232f;border-color:#ffffff12}.theme-dark .keyboard-row button.shift-key.active{color:#fff;background:#7079e9}.theme-dark .result-card{background:linear-gradient(145deg,#2a2532,#38242e 60%,#282b43);box-shadow:0 35px 90px #00000073}.theme-dark .result-close,.theme-dark .result-home-button{color:#c7bfce;background:#342e3c;border-color:#ffffff1a}.theme-dark .result-close:hover,.theme-dark .result-home-button:hover{color:#fff;background:#403849}.theme-dark .result-repeat-button{color:#c7bfce;background:#342e3c;border-color:#ffffff1a}.theme-dark .practice-result-actions .result-random-button{color:#fff;border-color:var(--accent);background:linear-gradient(135deg,var(--accent),#e84f91);box-shadow:0 12px 26px #ff659d33}.theme-dark .result-explore-button{color:#ff9abd;background:#4a2938;border-color:#ff659d2e}.theme-dark .result-share-button{color:#b7bcff;background:#30324e;border-color:#98a0ff33}.theme-dark .result-share-button:hover{background:#393c5d}.theme-dark .deck-card,.theme-dark .filter-row button,.theme-dark .search-box{background:#221e2ce6}.theme-dark .filter-row button.active{background:var(--accent)}.theme-dark .deck-info button,.theme-dark .deck-typing-label{color:#ff9abd;background:#4a2938}.theme-dark .empty-state{background:#211d2ba6;border-color:#494252}.theme-dark .game-card{background:#221e2ce6}.theme-dark .game-card.coming-soon{background:#27232fc7;border-color:#ffffff1a}.theme-dark .game-coming-badge{color:#f4ad7d;background:#473126;border-color:#f48c4b2e}.theme-dark .game-preview{background:linear-gradient(155deg,#282b47,#25212e 58%,#3a2530)}.theme-dark .flow-lane{background:linear-gradient(90deg,#252534,#30334f)}.theme-dark .flow-card{background:#393342;box-shadow:0 10px 22px #00000040}.theme-dark .game-choice-step,.theme-dark .game-deck-picker,.theme-dark .game-setup-progress li.active>:is(button,span){background:#221e2cd6;border-color:#ffffff14;box-shadow:0 14px 38px #00000029}.theme-dark .game-setup-progress li>:is(button,span)>b{color:#aaa3b6;background:#3b3542}.theme-dark .game-setup-progress li.active>:is(button,span)>b{color:#fff;background:var(--accent)}.theme-dark .game-setup-progress li.complete>button>b{color:#fff;background:var(--success)}.theme-dark .game-deck-choice.selected,.theme-dark .prefilled-deck-chip{background:#233f36c2;border-color:#57c79d40}.theme-dark .game-deck-choice,.theme-dark .game-deck-search,.theme-dark .game-step-back{color:var(--ink);background:#2b2733;border-color:#ffffff14}.theme-dark .game-topik-level-card{color:var(--ink);background:linear-gradient(155deg,#2c2933,#24212b 70%);border-color:#ffffff14}.theme-dark .game-topik-level-card.selected{border-color:#57c79d66;box-shadow:inset 0 0 0 2px #57c79d14,0 15px 30px #0000002e}.theme-dark .game-topik-level-card>i,.theme-dark .game-topik-word-samples span{color:#ddd6e4;background:#ffffff12}.theme-dark .game-deck-import-panel{background:#27232f80}.theme-dark .deck-picker-title>span{color:#b7bcff;background:#30324e}.theme-dark .all-decks-panel{background:#27232fb8;border-color:#ffffff14}.theme-dark .all-decks-toggle{color:var(--ink)}.theme-dark .all-decks-toggle i,.theme-dark .game-selection-summary>span{color:var(--ink);background:#ffffff0f}.theme-dark .all-decks-content{border-color:#ffffff14}.theme-dark .difficulty-filter,.theme-dark .game-deck-bar,.theme-dark .game-live-stats>span,.theme-dark .game-question-card,.theme-dark .game-session-header>button{background:#221e2ceb;border-color:#ffffff14}.theme-dark .difficulty-filter select,.theme-dark .game-deck-bar select{color:var(--ink);background:#2b2733;border-color:#ffffff14}.theme-dark .deck-badges>span:not(.official-mark),.theme-dark .deck-word-preview>span{color:var(--ink);background:#2b2733}.theme-dark .deck-actions .deck-game-button{color:#b7bcff;background:#30324e}.theme-dark .secondary-button{color:#b7bcff;background:#2e2937;border-color:#ffffff17}.theme-dark .next-key-hint,.theme-dark .quiz-options button,.theme-dark .speed-jamo span{color:var(--ink);background:#2b2733;border-color:#ffffff14}.theme-dark .speed-jamo span.current{color:#ff9abd;border-color:var(--accent);background:#3a2631}.theme-dark .next-key-hint span{color:#b7bcff;background:#353047}.theme-dark .quiz-options button:hover:not(:disabled){background:#34364c;border-color:#555b98}.theme-dark .quiz-options button.correct-answer{color:#75d8b6;background:#233f38;border-color:#376855}.theme-dark .game-complete-panel{background:linear-gradient(145deg,#2a2532,#38242e 60%,#282b43);box-shadow:0 35px 90px #00000080}.theme-dark .game-rule-strip span,.theme-dark .play-type-switch,.theme-dark .preview-rule{background:#ffffff0f}.theme-dark .setup-course-switch button{color:var(--muted);background:#2b2733;border-color:#ffffff12}.theme-dark .play-type-switch button.active,.theme-dark .ranking-preview-card,.theme-dark .setup-course-switch button.active{color:var(--ink);box-shadow:none;background:#302b39;border-color:#ffffff17}.theme-dark .ranking-preview-card li{background:#ffffff0d}.theme-dark .ranking-preview-card li.is-me{background:#6473f42e}.theme-dark .ranked-result-card{background:#302d43;border-color:#ffffff1a}.theme-dark .ranking-nickname-form{background:#ffffff0d;border-color:#75d8b62e}.theme-dark .ranking-nickname-form input{color:var(--ink);background:#282533;border-color:#ffffff1a}.theme-dark .game-arena.is-ready{background:radial-gradient(circle at 50% 34%,#805e1933 0,#0000 28%),linear-gradient(145deg,#282431,#35252f 58%,#292c44)}.theme-dark .game-feedback-chip{color:#c4bccd;background:#2e2937f0;box-shadow:0 8px 20px #0000004d}.theme-dark .game-feedback-chip.correct{color:#75d8b6;background:#233f38}.theme-dark .game-feedback-chip.wrong{color:#ff97aa;background:#4d2933}.theme-dark .game-feedback-chip.action-danger{color:#ffd190;background:#4e3824}.theme-dark .first-run-guide{color:#75d8b6;background:#233f38}.theme-dark .flow-play-lane{background:linear-gradient(145deg,#302c39,#282632);border-color:#ffffff14;box-shadow:0 14px 32px #0003}.theme-dark .flow-play-lane:before{background:linear-gradient(90deg,#3b2934,#302d45 58%,#293745)}.theme-dark .flow-lane-meta span,.theme-dark .flow-lane-meta strong{background:#302c39e6;border-color:#ffffff14}.theme-dark .flow-target-card{color:var(--ink);background:#393342;border-color:#ff659d2e;box-shadow:0 16px 34px #00000047}.theme-dark .flow-success-badge{color:#75d8b6;background:#233f38f2;border-color:#75d8b633}.theme-dark .game-session-sushi .game-input-console{color:var(--ink);background:#292530;border-color:#ffffff14;box-shadow:0 8px 20px #0000002e}.theme-dark .kaiten-course-grid button{color:var(--ink);background:#302b39;box-shadow:inset 0 0 0 1px #ffffff0f}.theme-dark .kaiten-course-grid button.selected{border-color:var(--accent)}.theme-dark .kaiten-goal-card{color:var(--ink);background:#302d43;border-color:#ffffff12}.theme-dark .kaiten-result-panel{background:radial-gradient(circle at 50% 8%,#ff659d29,#0000 30%),linear-gradient(145deg,#2a2532,#302b3d 62%,#283443)}.theme-dark .flow-preview{background:linear-gradient(145deg,#302c39,#282632)}.theme-dark .game-input-console,.theme-dark .rain-input-dock{background:#292530;border-color:#ffffff14}.theme-dark .compact-jamo-track span{color:#aaa2b8;background:#383340}.theme-dark .compact-jamo-track span.current{color:#ff9abd;border-color:var(--accent);background:#4b2d3a}.theme-dark .next-key-chip{color:#b7bcff;background:#30324e}.theme-dark .rain-sky{background:linear-gradient(#24394d,#2b3c4c 70%,#294034 0)}.theme-dark .rain-clouds i{background:#dfe8f224}.theme-dark .rain-drop{color:#d3e9ff;background:#2a3745f5;border-color:#ffffff1f;box-shadow:0 10px 20px #0000004d}.theme-dark .rain-drop.danger{border-color:#ff9a55;box-shadow:0 0 0 4px #ff9a551f,0 13px 24px #00000059}.theme-dark .rain-drop small{color:#9dafc1}.theme-dark .rain-ground{background:linear-gradient(#304e34b8,#345c40)}.theme-dark .rain-wave-badge{color:#d3e9ff;background:#2a3745eb}.theme-dark .rain-wave-badge.wave-peak{color:#ffd190;background:#4e3824}.theme-dark .rain-wave-badge.wave-recovery{color:#75d8b6;background:#233f38}.theme-dark .game-result-grade{color:#b7bcff;background:#30324e}.theme-dark .game-result-grade.grade-s{color:#ffd190;background:#4e3824}.theme-dark .personal-best-card{background:#302d43;border-color:#98a0ff29}.theme-dark .personal-best-card.is-new-best{background:linear-gradient(135deg,#45391f,#432a36);border-color:#ffd19033}.theme-dark .missed-word-review b{color:#ff97aa;background:#4d2933}.theme-dark .initial-prompt{background:linear-gradient(145deg,#312b45,#2d2939);border-color:#a088ee2b}.theme-dark .initial-prompt strong{color:#dcd1ff}.theme-dark .initial-answer{border-color:#423b49}.theme-dark .dictation-preview{background:radial-gradient(circle at 50% 45%,#a06f1d33,#0000 35%),linear-gradient(145deg,#342d27,#2d2930)}.theme-dark .dictation-preview strong{color:#d8c6bc}.theme-dark .dictation-player{background:radial-gradient(circle at 50% 35%,#a1731929,#0000 38%),linear-gradient(145deg,#332d28,#2b2830);border-color:#f6c34e21}.theme-dark .dictation-answer{background:#292530;border-color:#423b49}.theme-dark .dictation-answer.wrong{background:#422a31;border-color:#6b3441}.theme-dark .dictation-answer.correct{background:#233f38;border-color:#376855}.theme-dark .dictation-skip-button{color:#aaa2b8;border-color:#ffffff17}.modal-backdrop.theme-dark{background:#09080da8}.theme-dark .settings-modal{color:var(--ink);background:#25212d;box-shadow:0 35px 90px #00000085}.theme-dark .share-modal{color:var(--ink);background:linear-gradient(145deg,#292430,#25212d 68%,#252840);border-color:#ffffff14;box-shadow:0 35px 90px #00000085}.theme-dark .modal-title>button,.theme-dark .setting-list select{background:#332e3b}.theme-dark .share-preview-card{background:#221e2bdb;border-color:#ff659d29;box-shadow:0 14px 32px #00000038}.theme-dark .share-copy-button{color:#b7bcff;background:#30324e;border-color:#98a0ff2e}.theme-dark .share-cancel-button{color:#bbb3c5;background:#302b37;border-color:#ffffff1a}.theme-dark .share-privacy-note span{color:#67d8b2;background:#56d2a71f}@media (max-width:1180px){:root{--sidebar-width:220px;--sidebar-expanded-width:220px}.sidebar{padding-inline:16px}.app-main{padding-inline:30px}.home-grid{grid-template-columns:1fr}.continue-card{min-height:310px;padding:30px}.plan-card{grid-template-columns:52px 1fr 28px;padding:15px}.plan-icon{border-radius:15px;width:50px;height:50px}.deck-grid{grid-template-columns:repeat(2,1fr)}.game-setup-layout,.games-layout{grid-template-columns:1fr}.setup-game-preview{min-height:390px;position:static}.game-deck-bar{grid-template-columns:58px 1fr}.game-deck-bar label{grid-column:1/-1}.game-preview{min-height:390px}.game-preview-actions{width:min(520px,100%)}.game-session-header{grid-template-columns:100px 1fr}.game-live-stats{grid-column:1/-1;justify-content:flex-end}.app-main.section-practice{padding:clamp(10px,1.8dvh,18px) 22px clamp(10px,2dvh,20px)}.practice-view{gap:clamp(8px,1.6dvh,13px);min-height:0}.practice-header{grid-template-columns:1fr 300px 1fr}.physical-hint{display:none}.prompt-panel{padding-inline:30px}.keyboard-panel{padding-inline:18px}.keyboard-row{gap:6px}.theme-toggle{justify-content:center;width:41px;padding:0 7px}.theme-toggle strong{display:none}.share-piyo-button{justify-content:center;width:41px;padding:0;right:68px}.share-piyo-button strong{display:none}.header-stats,.practice-header-actions,.view-header>:last-child{margin-right:104px}}@media (min-width:768px) and (max-width:1050px){:root{--sidebar-width:190px;--sidebar-expanded-width:190px}.sidebar{padding:24px 12px 18px}.brand{gap:8px;padding-inline:4px}.brand strong{font-size:17px}.brand small.brand-tagline{letter-spacing:.02em;white-space:nowrap;font-size:7px}.mini-logo{flex-basis:44px;width:44px;height:44px}.app-main{padding:36px 22px 46px}.home-header,.view-header{flex-direction:column;align-items:flex-start;gap:15px}.header-stats,.view-header>:last-child{margin-right:0}.deck-grid,.plan-grid{grid-template-columns:1fr}.search-box{width:100%}.discover-toolbar{flex-direction:column;align-items:stretch}.difficulty-filter{align-self:flex-end}.game-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.game-choice-step,.game-deck-picker{padding:18px}.game-deck-quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.game-deck-quick-grid.single{grid-template-columns:1fr}.game-setup-heading{flex-direction:column;align-items:flex-start}.practice-header{grid-template-columns:1fr auto;gap:10px}.practice-progress-wrap{grid-area:2/1/auto/-1}.practice-header-actions{margin-right:104px}.target-word span{border-radius:20px;min-width:clamp(60px,8vw,72px);height:78px;padding:0 8px;font-size:clamp(40px,6vw,52px)}.keyboard-panel{padding-inline:12px}.keyboard-row,.keyboard-rows{gap:4px}.keyboard-row button{border-radius:10px;height:50px;padding:5px 2px 4px}.keyboard-row button strong{margin-top:5px;font-size:17px}.keyboard-row button small{font-size:8px;top:4px;left:5px}.keyboard-row button.utility-key{font-size:6px}.game-question-card{min-height:520px}}@media (min-width:1051px) and (max-width:1799px){.practice-header{grid-template-columns:minmax(0,1fr) auto;gap:10px 18px}.practice-progress-wrap{grid-area:2/1/auto/-1}.physical-hint{display:none}}@media (min-width:768px) and (max-height:720px){.app-main.section-practice{padding-block:8px}.practice-view{gap:8px}.practice-header h1{margin-top:0;font-size:22px}.practice-menu-back{border-radius:11px;flex-basis:34px;width:34px;height:34px;font-size:18px}.practice-header .eyebrow{font-size:8px!important}.display-settings-button,.focus-mode-button{min-height:30px}.prompt-panel{border-radius:22px;padding:9px 20px 8px}.listen-chip{padding:5px 9px}.practice-lesson-content .target-word{margin-bottom:6px}.target-word span{border-radius:18px;min-width:66px;height:64px;padding-inline:9px;font-size:40px}.target-word.target-phrase span{border-radius:14px;min-width:42px;height:52px;font-size:30px}.target-word span.word-space.space-guide-visible{width:32px;min-width:32px;height:52px;padding:0 4px}.prompt-translation{gap:2px;margin-bottom:5px}.prompt-translation strong{padding-block:3px;font-size:11px}.prompt-translation>span{font-size:9px}.jamo-track{gap:6px}.jamo-track span{border-radius:10px;width:34px;height:34px;font-size:14px}.syllable-assembly,.syllable-orb{flex-basis:46px;width:46px;height:46px}.practice-inline-mascot{border-radius:16px;min-height:52px;margin-top:5px;padding-block:2px}.keyboard-panel{border-radius:21px;padding:7px 12px 9px}.keyboard-topline{min-height:18px;margin-bottom:4px}.keyboard-row,.keyboard-rows{gap:3px}.keyboard-row button{border-radius:10px;height:38px;padding-block:4px}.keyboard-row.row-4 button{height:28px}.keyboard-row button strong{margin-top:2px;font-size:17px}.keyboard-row button small{font-size:8px;top:3px}}@media (max-width:767px){.desktop-app,.modal-backdrop,.share-piyo-button,.theme-toggle{display:none}.mobile-download{background:linear-gradient(160deg,#fff6fb,#f5f1ff 55%,#eef6ff);place-items:center;min-height:100svh;padding:40px 26px;display:grid;position:relative;overflow:hidden}.mobile-download-content{z-index:2;text-align:center;width:min(390px,100%);position:relative}.mobile-app-icon{background:url(/piyokey-app-icon-v2.png) 50%/cover no-repeat;border-radius:26px;width:112px;height:112px;margin:0 auto;box-shadow:0 22px 45px #48366033}.mobile-kicker{color:var(--accent-dark);letter-spacing:.16em;margin:22px 0 10px;font-size:11px;font-weight:900}.mobile-download h1{color:#2c253d;letter-spacing:-.06em;margin:0;font-size:clamp(34px,10vw,45px);line-height:1.18}.mobile-copy{color:var(--muted);margin:20px auto 27px;font-size:14px;line-height:1.8}.store-button{color:#fff;cursor:pointer;background:#282332;border:0;border-radius:18px;justify-content:center;align-items:center;gap:12px;width:100%;min-height:64px;font-size:15px;font-weight:800;text-decoration:none;transition:transform .16s,box-shadow .2s;display:flex;box-shadow:0 14px 27px #28233233}.store-button:hover{transform:translateY(-2px);box-shadow:0 18px 32px #28233240}.store-button small{color:#c9c5cf;margin-bottom:1px;font-size:9px;font-weight:600;display:block}.store-symbol{font-size:21px}.mobile-note{color:#9a93a5;margin-top:18px;font-size:10px}.mobile-legal-links{justify-content:center;gap:22px;margin-top:24px;display:flex}.mobile-legal-links a{color:#7e768d;text-underline-offset:4px;font-size:11px;font-weight:800}.mobile-glow{filter:blur(2px);border-radius:50%;position:absolute}.glow-one{background:#ffc2db5e;width:240px;height:240px;top:4%;left:-120px}.glow-two{background:#bdd2ff6b;width:270px;height:270px;bottom:-4%;right:-130px}}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.motion-paused *,.motion-paused :after,.motion-paused :before{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}@media (min-width:768px) and (max-width:1180px){.game-grid{grid-template-columns:1fr}.game-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.game-card{min-height:150px}.game-arena{min-height:570px;padding-inline:22px}.game-live-stats{flex-wrap:wrap}.flow-play-lane{height:250px}.rain-sky{height:380px}.game-input-console{grid-template-columns:120px 1fr 82px}.app-main.section-games:has(.game-session){padding:12px 14px 16px}.kaiten-course-grid button{min-height:108px;padding:12px}.kaiten-goal-card{grid-template-columns:auto 1fr}.kaiten-goal-card small{grid-column:1/-1}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}