:root{color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;font-family:Pretendard,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0}html,body{overscroll-behavior:none}html,button,a,input,label,[role=button]{touch-action:manipulation}body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}input,textarea,[contenteditable]{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}h1,h2,h3,p{margin:0}.screen{flex-direction:column;gap:16px;max-width:480px;min-height:100dvh;margin:0 auto;padding:20px 16px 24px;display:flex}.screen-header{align-items:center;gap:8px;min-height:44px;display:flex}.screen-title{font-size:20px;font-weight:800}.btn{width:100%;min-height:48px;font:inherit;cursor:pointer;border:0;border-radius:14px;font-size:17px;font-weight:800;transition:transform 90ms ease-out,box-shadow 90ms ease-out;display:block}.btn-primary{background:var(--primary);color:var(--on-primary);box-shadow:0 4px 0 var(--primary-shadow)}.btn-secondary{background:var(--secondary);color:var(--text);box-shadow:0 4px 0 var(--secondary-shadow)}.btn-primary:active:not(:disabled){box-shadow:0 1px 0 var(--primary-shadow);transform:translateY(3px)scale(.97)}.btn-secondary:active:not(:disabled){box-shadow:0 1px 0 var(--secondary-shadow);transform:translateY(3px)scale(.97)}.btn:disabled{background:var(--secondary);color:var(--text-muted);box-shadow:none;cursor:not-allowed}.icon-btn{min-width:44px;min-height:44px;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:12px;font-size:20px;transition:transform 90ms ease-out,opacity 90ms ease-out}.icon-btn:active:not(:disabled){opacity:.7;transform:scale(.9)}.note{background:var(--note-bg);color:var(--note-text);border-radius:12px;padding:10px 12px;font-size:14px;line-height:1.5}.alert{background:var(--danger-bg);color:var(--danger);border-radius:12px;padding:10px 12px;font-size:14px;line-height:1.5}.muted{color:var(--text-muted);font-size:13px}@media (prefers-reduced-motion:reduce){.btn,.icon-btn{transition:none}}.overlay{background:var(--overlay);z-index:10;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.dialog{background:var(--bg);width:100%;max-width:420px;color:var(--text);border-radius:20px;flex-direction:column;gap:12px;padding:20px;font-size:15px;line-height:1.5;display:flex}.overlay.is-sheet{pointer-events:none;background:0 0;align-items:end;padding:0}.overlay.is-sheet .dialog{pointer-events:auto;box-shadow:0 -6px 24px var(--overlay);padding-bottom:calc(20px + env(safe-area-inset-bottom));border-radius:20px 20px 0 0;margin:0 auto}.overlay{animation:.2s ease-out both overlay-in}.overlay:not(.is-sheet) .dialog{animation:.2s cubic-bezier(.2,0,0,1) both dialog-in}.overlay.is-sheet .dialog{animation:.22s cubic-bezier(.2,0,0,1) both sheet-up}@keyframes overlay-in{0%{opacity:0}}@keyframes dialog-in{0%{opacity:0;transform:scale(.96)}}@keyframes sheet-up{0%{transform:translateY(100%)}}::view-transition{pointer-events:none}::view-transition-old(root){mix-blend-mode:normal;animation-duration:.24s;animation-timing-function:cubic-bezier(.2,0,0,1);animation-fill-mode:both}::view-transition-new(root){mix-blend-mode:normal;animation-duration:.24s;animation-timing-function:cubic-bezier(.2,0,0,1);animation-fill-mode:both}:root[data-nav=forward]::view-transition-old(root){animation-name:nav-out-left}:root[data-nav=forward]::view-transition-new(root){animation-name:nav-in-right}:root[data-nav=back]::view-transition-old(root){z-index:1;animation-name:nav-out-right}:root[data-nav=back]::view-transition-new(root){animation-name:nav-in-left}:root[data-nav=fade]::view-transition-old(root){animation-name:nav-fade-out;animation-duration:.2s}:root[data-nav=fade]::view-transition-new(root){animation-name:nav-fade-in;animation-duration:.2s}@keyframes nav-in-right{0%{opacity:0;transform:translate(30%)}}@keyframes nav-out-left{to{opacity:0;transform:translate(-10%)}}@keyframes nav-in-left{0%{opacity:0;transform:translate(-10%)}}@keyframes nav-out-right{to{opacity:0;transform:translate(30%)}}@keyframes nav-fade-in{0%{opacity:0}}@keyframes nav-fade-out{to{opacity:0}}@media (prefers-reduced-motion:reduce){.overlay,.overlay .dialog{animation:none}::view-transition-group(*){animation:none}::view-transition-old(*){animation:none}::view-transition-new(*){animation:none}}.notice{left:16px;right:16px;bottom:calc(24px + env(safe-area-inset-bottom));background:var(--text);max-width:420px;color:var(--bg);text-align:center;z-index:20;border-radius:12px;margin:0 auto;padding:12px 16px;font-size:15px;position:fixed}.capture-top{justify-content:space-between}.capture-count{font-weight:800}.capture-dots{gap:6px;display:flex}.capture-dots i{border:2px solid var(--secondary-shadow);border-radius:5px;width:16px;height:16px}.capture-say{text-align:center;font-size:17px;font-weight:800}.capture-stage{aspect-ratio:1;background:var(--cube-body);border-radius:20px;width:100%;position:relative;overflow:hidden}.capture-video{object-fit:cover;width:100%;height:100%;display:block}.capture-guide{position:absolute;inset:10%}.capture-grid{grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);gap:6px;display:grid;position:absolute;inset:0}.capture-grid span{border:2px dashed var(--on-primary);border-radius:10px;transition:background .15s;position:relative}.capture-grid span i{border:2px solid var(--on-primary);border-radius:4px;position:absolute;inset:30%}.capture-shutter{background:var(--secondary);width:78px;height:78px;box-shadow:inset 0 0 0 2px var(--secondary-shadow), 0 3px 10px #14161c2e;cursor:pointer;border:0;border-radius:50%;margin:4px auto 0;padding:0;position:relative}.capture-shutter:after{content:"";background:radial-gradient(circle at 50% 30%, #2bc463, var(--primary) 70%);width:60px;height:60px;box-shadow:0 4px 0 var(--primary-shadow);border-radius:50%;position:absolute;top:7px;left:9px}.capture-shutter:disabled{cursor:not-allowed}.capture-shutter:disabled:after{background:var(--secondary-shadow);box-shadow:0 4px #14161c40}.capture-manual{min-height:44px;color:var(--text-muted);font:inherit;cursor:pointer;background:0 0;border:0;text-decoration:underline}.capture-hint{text-align:center}.capture-warning,.capture-error{flex-direction:column;gap:10px;display:flex}.capture-actions{gap:10px;display:flex}.capture-actions .btn{flex:1}@media (prefers-reduced-motion:reduce){.capture-grid span{transition:none}}.capture-shutter:after{transition:transform 90ms ease-out,box-shadow 90ms ease-out}.capture-shutter:active:not(:disabled):after{box-shadow:0 0 0 var(--primary-shadow);transform:translateY(4px)}.capture-shutter.is-pulse-0:not(:disabled){animation:.36s ease-out shutter-ring-a}.capture-shutter.is-pulse-1:not(:disabled){animation:.36s ease-out shutter-ring-b}@keyframes shutter-ring-a{0%{box-shadow:inset 0 0 0 2px var(--secondary-shadow), 0 3px 10px #14161c2e, 0 0 0 0 #16a34a8c}to{box-shadow:inset 0 0 0 2px var(--secondary-shadow), 0 3px 10px #14161c2e, 0 0 0 14px #16a34a00}}@keyframes shutter-ring-b{0%{box-shadow:inset 0 0 0 2px var(--secondary-shadow), 0 3px 10px #14161c2e, 0 0 0 0 #16a34a8c}to{box-shadow:inset 0 0 0 2px var(--secondary-shadow), 0 3px 10px #14161c2e, 0 0 0 14px #16a34a00}}.capture-manual{transition:transform 90ms ease-out,opacity 90ms ease-out}.capture-manual:active{opacity:.6;transform:scale(.96)}.capture-flash{pointer-events:none;background:#fff;animation:.15s ease-out both capture-flash;position:absolute;inset:0}@keyframes capture-flash{0%{opacity:.85}to{opacity:0}}.capture-grid.is-preview span{animation:.16s cubic-bezier(.2,0,0,1) both cell-fill;animation-delay:calc(var(--i,0) * 25ms)}@keyframes cell-fill{0%{opacity:0;transform:scale(.85)}}.capture-dots i.is-new{animation:.26s ease-out dot-pop}@keyframes dot-pop{50%{transform:scale(1.25)}}@media (prefers-reduced-motion:reduce){.capture-shutter:after,.capture-manual{transition:none}.capture-manual:active{transform:none}.capture-shutter.is-pulse-0:not(:disabled),.capture-shutter.is-pulse-1:not(:disabled),.capture-grid.is-preview span,.capture-dots i.is-new{animation:none}.capture-flash{display:none}}.home{--cube-size:clamp(110px, 36vw, 170px);padding-bottom:calc(24px + env(safe-area-inset-bottom))}.home-hi{color:var(--text-muted);flex:1;font-size:15px}.home-title{font-size:28px;font-weight:800;line-height:1.25}.home-hero{min-height:calc(var(--cube-size) + 56px);flex:1;place-items:center;display:grid}.home-cube{width:var(--cube-size);height:var(--cube-size);position:relative}.home-cube-stage{perspective:900px;width:100%;height:100%;position:relative}.home-cube-body{--half:calc(var(--cube-size) / 2);width:100%;height:100%;transform-style:preserve-3d;animation:14s linear infinite home-cube-spin;position:relative;transform:rotateX(-24deg)rotateY(0)}.home-cube-face,.home-cube-core{background:var(--cube-body);position:absolute;inset:0}.home-cube-face{gap:calc(var(--cube-size) * .033);padding:calc(var(--cube-size) * .047);backface-visibility:hidden;border-radius:3px;grid-template-columns:repeat(3,1fr);display:grid}.home-cube-face span{border-radius:calc(var(--cube-size) * .04)}.home-cube-face.is-front{transform:translateZ(var(--half))}.home-cube-face.is-right{transform:rotateY(90deg) translateZ(var(--half))}.home-cube-face.is-back{transform:rotateY(180deg) translateZ(var(--half))}.home-cube-face.is-left{transform:rotateY(-90deg) translateZ(var(--half))}.home-cube-face.is-top{transform:rotateX(90deg) translateZ(var(--half))}.home-cube-face.is-bottom{transform:rotateX(-90deg) translateZ(var(--half))}.home-cube-core.is-front{transform:translateZ(calc(var(--half) - 2px))}.home-cube-core.is-right{transform:rotateY(90deg) translateZ(calc(var(--half) - 2px))}.home-cube-core.is-back{transform:rotateY(180deg) translateZ(calc(var(--half) - 2px))}.home-cube-core.is-left{transform:rotateY(-90deg) translateZ(calc(var(--half) - 2px))}.home-cube-core.is-top{transform:rotateX(90deg) translateZ(calc(var(--half) - 2px))}.home-cube-core.is-bottom{transform:rotateX(-90deg) translateZ(calc(var(--half) - 2px))}.home-cube-shadow{left:0;right:0;bottom:calc(var(--cube-size) * -.24);height:calc(var(--cube-size) * .12);background:radial-gradient(closest-side,#0000002e,#0000);position:absolute}@keyframes home-cube-spin{0%{transform:rotateX(-24deg)rotateY(0)}to{transform:rotateX(-24deg)rotateY(360deg)}}@media (prefers-reduced-motion:reduce){.home-cube-body{animation:none;transform:rotateX(-24deg)rotateY(-35deg)}}.home-progress{background:var(--surface);width:100%;color:var(--text);font:inherit;text-align:left;cursor:pointer;border:0;border-radius:16px;flex-direction:column;gap:10px;padding:14px 14px 12px;transition:transform 90ms ease-out;display:flex}.home-progress:active{transform:scale(.98)}.home-progress-head{justify-content:space-between;align-items:baseline;font-size:15px;font-weight:800;display:flex}.home-progress-count{color:var(--primary)}.home-progress-bar{background:var(--secondary-shadow);border-radius:4px;height:8px;display:block;overflow:hidden}.home-progress-bar i{background:var(--primary);border-radius:4px;height:100%;display:block}.home-progress-foot{justify-content:space-between;gap:8px;font-size:13px;display:flex}.home-progress-note{color:var(--text-muted)}.home-progress-streak{flex:none;font-weight:800}@media (prefers-reduced-motion:reduce){.home-progress{transition:none}}.home-actions{flex-direction:column;gap:14px;margin-top:8px;display:flex}.home-recent{flex-direction:column;gap:8px;display:flex}.home-recent h2{font-size:15px;font-weight:800}.home-recent li{background:var(--surface);border-radius:12px;padding:10px 12px;font-size:14px;list-style:none}.home-recent ul{flex-direction:column;gap:6px;margin:0;padding:0;display:flex}.net{grid-template-columns:repeat(4,1fr);gap:2px;width:100%;max-width:400px;margin:0 auto;display:grid}.net-face{background:var(--cube-body);border-radius:6px;grid-template-columns:repeat(3,1fr);gap:2px;padding:2px;display:grid}.net-sticker{aspect-ratio:1;min-width:24px;min-height:24px;font:inherit;color:var(--sticker-ink);cursor:pointer;border:0;border-radius:3px;padding:0;font-size:11px;font-weight:800;transition:transform 90ms ease-out}.net-sticker:active:not(:disabled){transform:scale(.9)}.net-sticker:disabled{cursor:default}.net-sticker.is-empty{background:repeating-linear-gradient(45deg, var(--secondary), var(--secondary) 4px, var(--surface) 4px, var(--surface) 8px)}.net-sticker.is-selected{outline:3px solid var(--primary);outline-offset:1px}.net-sticker.is-flashing{outline:2px solid var(--danger);outline-offset:-1px;animation:1.2s infinite sticker-flash}.net-sticker.is-selected.is-flashing{outline:3px solid var(--primary);outline-offset:1px;animation:none}@keyframes sticker-flash{50%{outline-color:#0000}}@media (prefers-reduced-motion:reduce){.net-sticker.is-flashing{animation:none}}.palette{justify-content:center;gap:10px;display:flex}.palette-color{border:2px solid var(--cube-body);cursor:pointer;border-radius:12px;width:44px;height:44px;transition:transform 90ms ease-out}.palette-color:active{transform:scale(.92)}@media (prefers-reduced-motion:reduce){.net-sticker,.palette-color{transition:none}}.palette-color[aria-pressed=true]{outline:3px solid var(--primary);outline-offset:2px}.review-hint{text-align:center}.review-confirm{margin-top:auto}.lesson-cube{flex:200px;place-items:center;min-height:160px;display:grid;position:relative;container-type:size}.lesson-cube .cube-view{width:min(100cqw,100cqh);height:min(100cqw,100cqh);max-height:none}.move-pad{grid-template-columns:repeat(6,1fr);gap:6px;display:grid}.move-pad[data-shake]{animation:.28s ease-in-out pad-shake}@keyframes pad-shake{20%,60%{transform:translate(-6px)}40%,80%{transform:translate(6px)}}.move-key{background:var(--secondary);height:52px;box-shadow:0 3px 0 var(--secondary-shadow);color:var(--text);font:inherit;cursor:pointer;border:0;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:15px;font-weight:800;transition:transform 90ms ease-out,box-shadow 90ms ease-out;display:flex}.move-key i{border:1px solid #0003;border-radius:3px;width:12px;height:12px}.move-key small{color:var(--text-muted);font-size:11px;font-weight:700}.move-key:active{box-shadow:0 1px 0 var(--secondary-shadow);transform:translateY(2px)}.move-key.is-next{box-shadow:0 3px 0 var(--secondary-shadow), 0 0 0 3px var(--primary)}@media (prefers-reduced-motion:reduce){.move-pad[data-shake]{animation:none}.move-key{transition:none}}.lesson{flex-direction:column;flex:1;gap:14px;display:flex}.lesson-top{align-items:center;gap:10px;min-height:40px;display:flex}.lesson-progress{background:var(--secondary);border-radius:5px;flex:1;height:10px;overflow:hidden}.lesson-progress i{background:var(--primary);border-radius:5px;height:100%;transition:width .24s ease-out;display:block}.lesson-card{flex-direction:column;flex:1;gap:12px;display:flex}.lesson-card h2{margin:0;font-size:21px;font-weight:800;line-height:1.3}.lesson-card p{margin:0;font-size:15px;line-height:1.6}.lesson-goal{background:var(--surface);border-radius:14px;padding:10px 12px;font-size:14px;font-weight:700}.lesson-tools{color:var(--text-muted);justify-content:space-between;align-items:center;gap:8px;font-size:14px;display:flex}.lesson-tools>span{align-items:center;display:flex}.lesson-tools button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:6px 4px}.formula-line{flex-wrap:wrap;gap:6px;font-family:ui-monospace,Menlo,monospace;font-size:18px;font-weight:800;display:flex}.formula-line span.is-now{color:var(--primary);text-decoration:underline}.formula-line span.is-done{color:var(--text-muted)}.formula-dots{letter-spacing:6px;color:var(--primary);font-size:18px}.answer-pill{background:var(--danger-bg);color:var(--danger);border-radius:999px;align-self:center;padding:6px 14px;font-weight:800}.quiz-options{flex-direction:column;gap:10px;display:flex}.quiz-option{border:2px solid var(--border);background:var(--bg);color:var(--text);font:inherit;text-align:left;box-shadow:0 3px 0 var(--border);cursor:pointer;border-radius:14px;padding:14px;font-size:16px;font-weight:800}.quiz-option.is-picked{border-color:var(--primary)}.quiz-option.is-right{border-color:var(--primary);background:var(--success-bg);color:var(--success-text)}.quiz-option.is-wrong{border-color:var(--danger);background:var(--danger-bg);color:var(--danger)}.quiz-top{background:var(--cube-body);border-radius:10px;grid-template-columns:repeat(3,36px);align-self:center;gap:4px;padding:6px;display:grid}.quiz-top span{border-radius:6px;width:36px;height:36px}.lesson-result{text-align:center;align-items:center}.result-stars{letter-spacing:6px;color:var(--star);margin-top:32px;font-size:52px}.result-stars .off{color:var(--border)}.result-stats{gap:10px;width:100%;display:flex}.result-stats div{background:var(--surface);border-radius:14px;flex:1;padding:12px 6px}.result-stats b{font-size:20px;display:block}.result-stats small{color:var(--text-muted);font-size:12px}.lesson-card h2.lesson-goal{font-size:15px;font-weight:700}.lesson-card .lesson-next{margin-top:auto}.lesson-replay{justify-content:center}.lesson-success{color:var(--primary);align-self:center;font-weight:800}.lesson-result-actions{flex-direction:column;gap:10px;width:100%;margin-top:auto;display:flex}.real-screen{z-index:5;background:var(--bg);position:fixed;inset:0;overflow-y:auto}.real-actions{flex-direction:column;gap:10px;margin-top:auto;display:flex}.real-fail{color:var(--danger);align-self:center;font-weight:800}.curriculum{gap:14px}.map-chips{gap:8px;display:flex}.map-chip{background:var(--surface);border-radius:999px;padding:6px 12px;font-size:14px;font-weight:800}.map-review{background:var(--note-bg);color:var(--note-text);border-radius:14px;align-items:center;gap:10px;padding:10px 10px 10px 14px;font-size:14px;display:flex}.map-review b{flex:1}.map-review-go{background:var(--star);min-height:36px;color:var(--on-star);font:inherit;box-shadow:0 3px 0 var(--star-shadow);cursor:pointer;border:0;border-radius:10px;padding:6px 14px;font-weight:800}.map-review-go:active{box-shadow:0 1px 0 var(--star-shadow);transform:translateY(2px)}.map-unit{flex-direction:column;gap:10px;display:flex}.map-unit h3{color:var(--text-muted);margin-top:4px;font-size:13px;font-weight:800}.path{flex-direction:column;gap:10px;display:flex}.map-lesson{width:100%;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:12px;padding:2px 0;display:flex}.map-lesson:nth-child(2n){padding-left:34px}.map-lesson[aria-disabled=true]{cursor:default}.map-lesson:not([aria-disabled=true]):active .node{transform:translateY(2px)}.node{border-radius:50%;flex:none;place-items:center;width:54px;height:54px;font-size:22px;transition:transform 90ms ease-out;display:grid}.node.done{background:var(--primary);color:var(--on-primary);box-shadow:0 4px 0 var(--primary-shadow)}.node.now,.node.open{background:var(--bg);border:4px solid var(--primary);color:var(--primary)}.node.now{box-shadow:0 0 0 6px color-mix(in srgb, var(--primary) 18%, transparent)}.node.lock{background:var(--secondary);color:var(--text-muted);font-size:18px}.map-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.map-text b{font-size:15px}.map-text small{color:var(--text-muted);font-size:12px}.map-lesson.is-lock .map-text b{color:var(--text-muted)}.map-stars{color:var(--star);letter-spacing:1px;flex:none;font-size:14px}.map-stars .off{color:var(--border)}.review-empty{margin-top:32px}@media (prefers-reduced-motion:reduce){.node{transition:none}}.move-key.rotate-key{flex-direction:row;grid-column:span 3;height:40px;font-size:14px}.graduation-title{font-size:26px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.player-top{align-items:center;gap:10px;display:flex}.progress{background:var(--secondary);border-radius:99px;flex:1;height:10px;overflow:hidden}.progress>i{background:var(--primary);border-radius:99px;height:100%;transition:width .3s;display:block}.progress-label{color:var(--text-muted);font-size:13px;font-weight:700}.stage-number{color:var(--primary);font-size:13px;font-weight:800}.stage-title{font-size:22px;font-weight:800}.hold{background:var(--surface);text-align:center;border-radius:10px;padding:8px 10px;font-size:13px;font-weight:700}.cube-view{aspect-ratio:1;touch-action:none;width:100%;max-height:42dvh;margin:0 auto}.cube-loading{aspect-ratio:1;width:100%;max-height:42dvh;color:var(--text-muted);place-items:center;display:grid}.move-card{background:var(--surface);border-radius:16px;align-items:center;gap:14px;min-height:92px;padding:12px 14px;display:flex}.move-card.is-compact{min-height:64px;padding:8px 12px}.move-face{flex:none;width:60px;height:60px;position:relative}.move-card.is-compact .move-face{width:44px;height:44px}.move-face-grid{background:var(--cube-body);border-radius:8px;grid-template-columns:repeat(3,1fr);gap:2px;width:100%;height:100%;padding:3px;display:grid}.move-face-grid span{border-radius:2px}.move-face-arrow{color:var(--primary);text-shadow:0 0 4px var(--bg);place-items:center;font-size:44px;font-weight:900;display:grid;position:absolute;inset:-8px}.move-what{font-size:20px;font-weight:900}.move-dir{color:var(--primary);font-size:17px;font-weight:800}.move-sym{color:var(--text-muted);font-variant-numeric:tabular-nums;margin-top:2px;font-size:13px}.move-sym b{background:var(--text);color:var(--bg);border-radius:6px;padding:1px 6px}.move-count{text-align:center;color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:13px}.controls{gap:10px;margin-top:auto;display:flex}.controls .btn-secondary{flex:1}.controls .btn-primary{flex:2}.move-strip{scrollbar-width:none;gap:6px;padding:4px 2px;display:flex;overflow-x:auto}.move-strip span{background:var(--secondary);font-variant-numeric:tabular-nums;border-radius:9px;flex:none;padding:6px 9px;font-weight:800}.move-strip span.is-done{color:var(--text-muted)}.move-strip span.is-now{background:var(--primary);color:var(--on-primary)}.speed{color:var(--text-muted);justify-content:center;align-items:center;gap:8px;font-size:13px;display:flex}.speed select{background:var(--secondary);min-height:44px;color:var(--text);font:inherit;border:0;border-radius:10px;padding:0 10px}.dialog h2{font-size:20px;font-weight:800}.tip-faces{justify-content:center;gap:24px;display:flex}.tip-face{flex-direction:column;align-items:center;gap:6px;margin:0;font-size:13px;font-weight:700;display:flex}.tip-face .move-face-grid{width:56px;height:56px}.spinning{animation:1.6s ease-in-out infinite tip-spin}@keyframes tip-spin{0%,30%{transform:rotate(0)}70%,to{transform:rotate(90deg)}}@media (prefers-reduced-motion:reduce){.spinning{animation:none}.progress>i{transition:none}}.center-screen{text-align:center;justify-content:center;align-items:stretch}.done-emoji{font-size:64px}.spinner{border:5px solid var(--secondary);border-top-color:var(--primary);border-radius:50%;width:48px;height:48px;margin:0 auto;animation:.9s linear infinite spin}.spinner.spinner-small{border-width:4px;width:28px;height:28px;margin-top:32px}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:3s}}.settings-group{background:var(--surface);border:0;border-radius:14px;flex-direction:column;gap:4px;margin:0;padding:12px;display:flex}.settings-group legend{padding:0 0 6px;font-weight:800}.settings-row{align-items:center;gap:10px;min-height:44px;font-size:15px;display:flex}.settings-row input{width:20px;height:20px;accent-color:var(--primary)}a.settings-row{color:var(--text);text-decoration:none}.settings-link{text-align:left;width:100%;font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;transition:transform 90ms ease-out,opacity 90ms ease-out}.settings-link:active{opacity:.7;transform:scale(.98)}@media (prefers-reduced-motion:reduce){.settings-link{transition:none}}.remove-ads-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.remove-ads-buy{width:auto;min-height:40px;padding:0 18px}.document{height:100dvh}.document-frame{background:#fff;border:0;border-radius:12px;flex:1;width:100%}
