.ts-grad-shell{min-height:100dvh;max-width:460px;margin:0 auto;background:#fcfcfa;padding-bottom:env(safe-area-inset-bottom);display:flex;flex-direction:column}.ts-grad-header{position:sticky;top:0;z-index:5;padding:calc(env(safe-area-inset-top,0px) + 12px) 16px 14px;border-bottom:1px solid #DEDCD4;background:#fcfcfa;display:flex;flex-direction:column;gap:10px;will-change:transform;transform:translateZ(0)}.ts-grad-header-top{display:flex;align-items:center;gap:12px}.ts-grad-close-btn{width:40px;height:40px;border:none;background:transparent;border-radius:50%;color:#1b1916;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .1s ease,background .12s ease}.ts-grad-close-btn:active{transform:scale(.94);background:#0000000f}.ts-grad-title{font-size:19px;font-weight:900;color:#1b1916;letter-spacing:-.02em;display:flex;align-items:center;gap:8px}.ts-grad-title-emoji{display:inline-flex;align-items:center;justify-content:center}.ts-grad-body{flex:1;padding:20px 20px 32px;display:flex;flex-direction:column;gap:20px}.ts-grad-mission{padding:18px 20px;background:#f5f2ee;border-radius:4px}.ts-grad-mission-row{display:flex;align-items:flex-start;gap:12px}.ts-grad-mission-avatar{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;filter:drop-shadow(0 1px 3px rgba(0,0,0,.15));animation:tsGradAvatarIdle 2.4s ease-in-out infinite}@keyframes tsGradAvatarIdle{0%,to{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-2px) rotate(2deg)}}.ts-grad-mission-body{flex:1;min-width:0}.ts-grad-mission p{font-size:15px;font-weight:600;color:#1b1916;line-height:1.6;margin:0}.ts-grad-mission-sig{margin-top:12px!important;font-size:12px!important;font-weight:500!important;color:#9c988f!important;text-align:right;letter-spacing:-.01em}.ts-grad-video-wrap{aspect-ratio:9 / 16;width:100%;margin:0 auto;border-radius:4px;overflow:hidden;background:#1b1916}.ts-grad-video{width:100%;height:100%;object-fit:cover;display:block}.ts-grad-video-placeholder{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:#c8c5be}.ts-grad-video-placeholder-emoji{font-size:48px}.ts-grad-video-placeholder-text{font-size:14px;font-weight:600}.ts-grad-links{margin-top:auto;padding-top:8px;display:flex;align-items:center;justify-content:center;gap:28px}.ts-grad-link{display:inline-flex;align-items:center;gap:6px;padding:8px 2px;color:#1b1916;text-decoration:none;font-size:13px;font-weight:800;letter-spacing:-.01em;transition:opacity .1s ease}.ts-grad-link:active{opacity:.55}.ts-grad-link svg{width:16px;height:16px;display:block;flex-shrink:0;color:#74716a}:root{--ts-book-h: 88px}.ts-book-banner{position:fixed;left:50%;bottom:0;transform:translate(-50%);width:100%;max-width:460px;z-index:8000;display:flex;align-items:center;gap:12px;padding:10px 14px calc(env(safe-area-inset-bottom,0px) + 10px);background:#17150f;border-radius:6px 6px 0 0;text-decoration:none;box-shadow:0 -6px 20px #0000002e;-webkit-tap-highlight-color:transparent}.ts-book-banner:active{background:#211e15}.ts-book-thumb{width:68px;height:68px;flex-shrink:0;border-radius:4px;object-fit:cover;display:block}.ts-book-text{display:flex;flex-direction:column;gap:4px;min-width:0}.ts-book-title{color:#fff;font-weight:900;font-size:20px;line-height:1.05;letter-spacing:-.01em}.ts-book-cta{color:#c6f24e;font-weight:800;font-size:13.5px;line-height:1}body.ts-book-banner-on .start-shell,body.ts-book-banner-on .kk-shell,body.ts-book-banner-on .kn-shell,body.ts-book-banner-on .ng-shell,body.ts-book-banner-on .sb-shell{padding-bottom:calc(env(safe-area-inset-bottom,0px) + var(--ts-book-h) + 24px)}body.ts-book-banner-on .ts-gfab{bottom:calc(env(safe-area-inset-bottom,0px) + var(--ts-book-h) + 28px)}.ts-coin-layer{position:fixed;inset:0;pointer-events:none;z-index:2147483647;isolation:isolate}.ts-coin{position:fixed;left:0;top:0;width:14px;height:14px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#feede3,#f5641e 60%,#d24e0c);box-shadow:0 0 6px #f5641e99,inset 0 -1px 2px #00000026;will-change:transform,opacity;opacity:0}.ts-gauge-pulse{animation:tsGaugeBump .35s linear}@keyframes tsGaugeBump{0%{transform:scale(1)}11.4%{transform:scale(1.06);box-shadow:0 10px 24px #d24e0c66}22.9%{transform:scale(1.041);box-shadow:0 10px 24px #d24e0c52}34.3%{transform:scale(1.019);box-shadow:0 8px 18px #d24e0c38}45.7%{transform:scale(1.006)}57.1%{transform:scale(1.001)}68.6%{transform:scale(.9997)}to{transform:scale(1)}}.ts-gauge-tick{animation:tsGaugeTick .16s linear}@keyframes tsGaugeTick{0%{transform:scale(1)}28%{transform:scale(1.035)}62%{transform:scale(.996)}to{transform:scale(1)}}.ts-roll-num{display:inline-flex;overflow:hidden;height:1em;line-height:1;vertical-align:-.08em;font-variant-numeric:tabular-nums}.ts-roll-digit{display:inline-block;height:1em;overflow:hidden}.ts-roll-strip{display:flex;flex-direction:column;transition:transform .48s cubic-bezier(.22,1,.36,1);will-change:transform}.ts-roll-strip span{display:block;height:1em;line-height:1;text-align:center}@media (prefers-reduced-motion: reduce){.ts-roll-strip{transition:none}}:root .ts-topbar-row{display:flex;align-items:center;justify-content:space-between;margin:8px 0 12px}:root .ts-topbar-row .start-brand,:root .ts-topbar-row .ng-brand,:root .ts-topbar-row .kk-brand,:root .ts-topbar-row .sb-brand,:root .ts-topbar-row .kn-brand{margin:0}:root .ts-hub-btn{display:inline-flex;align-items:center;gap:7px;padding:7px 14px 7px 11px;background:#f5f2ee;border:none;border-radius:6px;color:#1b1916;font-size:13px;font-weight:800;letter-spacing:-.01em;text-decoration:none;transition:transform .08s ease,filter .12s ease}:root .ts-hub-btn:active{transform:scale(.96);filter:brightness(.96)}:root .ts-hub-btn svg{display:block;flex-shrink:0}:root .start-brand,:root .ng-brand,:root .kk-brand,:root .sb-brand,:root .kn-brand{font-family:Pretendard,-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,system-ui,sans-serif;font-weight:900;font-size:17px;letter-spacing:-.4px;color:#1b1916}:root .start-gauge-box,:root .ng-gauge-box,:root .kk-gauge-box,:root .sb-gauge-box,:root .kn-gauge-box,:root .start-gauge-box-static:active,:root .ng-gauge-box-static:active,:root .kk-gauge-box-static:active,:root .sb-gauge-box-static:active,:root .kn-gauge-box-static:active,:root .start-gauge-box-complete,:root .ng-gauge-box-complete,:root .kk-gauge-box-complete,:root .sb-gauge-box-complete,:root .kn-gauge-box-complete{background:#f5f2ee!important;box-shadow:none!important;border-radius:4px;color:#1b1916}:root .start-gauge-box-complete,:root .ng-gauge-box-complete,:root .kk-gauge-box-complete,:root .sb-gauge-box-complete,:root .kn-gauge-box-complete{animation:none!important}:root .start-gauge-idle,:root .ng-gauge-idle,:root .kk-gauge-idle,:root .sb-gauge-idle,:root .kn-gauge-idle{filter:none;opacity:1}:root .start-gauge-icon,:root .ng-gauge-icon,:root .kk-gauge-icon,:root .sb-gauge-icon,:root .kn-gauge-icon{filter:none}:root .start-gauge-number,:root .ng-gauge-number,:root .kk-gauge-number,:root .sb-gauge-number,:root .kn-gauge-number{color:#1b1916;text-shadow:none}:root .start-gauge-unit,:root .ng-gauge-unit,:root .kk-gauge-unit,:root .sb-gauge-unit,:root .kn-gauge-unit{color:#74716a;opacity:1}:root .start-gauge-label{color:#d24e0c}:root .ng-gauge-label{color:#b37f00}:root .kk-gauge-label{color:#b00020}:root .sb-gauge-label{color:#d41c6b}:root .kn-gauge-label{color:#0e3eac}:root .start-progress-track,:root .ng-progress-track,:root .kk-progress-track,:root .sb-progress-track,:root .kn-progress-track{background:#1b191614;box-shadow:none;border-radius:0;height:10px}:root .start-progress-fill,:root .ng-progress-fill,:root .kk-progress-fill,:root .sb-progress-fill,:root .kn-progress-fill{border-radius:0;box-shadow:none}:root .start-progress-fill{background:#f5641e}:root .ng-progress-fill{background:#f5b301}:root .kk-progress-fill{background:#e4002b}:root .sb-progress-fill{background:#ff3e8f}:root .kn-progress-fill{background:#1454e6}:root .start-progress-shine,:root .ng-progress-shine,:root .kk-progress-shine,:root .sb-progress-shine,:root .kn-progress-shine,:root .start-gauge-sparkles,:root .ng-gauge-sparkles,:root .kk-gauge-sparkles,:root .sb-gauge-sparkles,:root .kn-gauge-sparkles{display:none}:root .start-hero,:root .ng-hero,:root .kk-hero,:root .sb-hero,:root .kn-hero{padding:24px 20px 16px}:root .start-hero-title,:root .ng-hero-title,:root .kk-hero-title,:root .sb-hero-title,:root .kn-hero-title{font-size:30px;font-weight:900;letter-spacing:-.8px;line-height:1.14;color:#1b1916;margin-bottom:0}:root .start-hero-title:before,:root .ng-hero-title:before,:root .kk-hero-title:before,:root .sb-hero-title:before,:root .kn-hero-title:before{display:block;font-size:11px;font-weight:800;letter-spacing:1.4px;margin-bottom:7px}:root .start-hero-title:before{content:"SUDOKU";color:#f5641e}:root .ng-hero-title:before{content:"NONOGRAM";color:#f5b301}:root .kk-hero-title:before{content:"KAKURO";color:#e4002b}:root .sb-hero-title:before{content:"STAR BATTLE";color:#ff3e8f}:root .kn-hero-title:before{content:"KENKEN";color:#1454e6}:root .start-unit-header,:root .ng-unit-header,:root .kk-unit-header,:root .sb-unit-header,:root .kn-unit-header{border-radius:4px}:root .start-lesson-rows,:root .ng-lesson-rows,:root .kk-lesson-rows,:root .sb-lesson-rows,:root .kn-lesson-rows{gap:8px}:root .start-units+.start-units,:root .ng-units+.ng-units,:root .kk-units+.kk-units,:root .sb-units+.sb-units,:root .kn-units+.kn-units{margin-top:8px}:root .start-row,:root .ng-row,:root .kk-row,:root .sb-row,:root .kn-row{background:#f5f2ee;border-radius:4px}:root .start-row-locked,:root .ng-row-locked,:root .kk-row-locked,:root .sb-row-locked,:root .kn-row-locked{background:#faf9f6}:root .start-row-lock,:root .ng-row-lock,:root .kk-row-lock,:root .sb-row-lock,:root .kn-row-lock{opacity:.85;filter:none;font-size:18px}:root .start-row-emoji-locked,:root .ng-row-emoji-locked,:root .kk-row-emoji-locked,:root .sb-row-emoji-locked,:root .kn-row-emoji-locked{border:none}:root .start-row-start,:root .ng-row-start,:root .kk-row-start,:root .sb-row-start,:root .kn-row-start{background:#1b1916;color:#fcfcfa;border-radius:6px;box-shadow:none}:root .start-row-start:active,:root .ng-row-start:active,:root .kk-row-start:active,:root .sb-row-start:active,:root .kn-row-start:active{transform:translateY(1px);box-shadow:none}:root .start-row-start-pulse,:root .ng-row-start-pulse,:root .kk-row-start-pulse,:root .sb-row-start-pulse,:root .kn-row-start-pulse{animation:tsHomeStartPulse 1.4s ease-in-out infinite}@keyframes tsHomeStartPulse{0%,to{box-shadow:0 0 #1b191659}50%{box-shadow:0 0 0 8px #1b191600}}:root .start-row-check,:root .ng-row-check,:root .kk-row-check,:root .sb-row-check,:root .kn-row-check{border-radius:6px}:root .ts-social-btn,:root .start-social-btn{background:#f5f2ee;border:none;border-radius:4px;box-shadow:none}:root .ts-social-btn:active,:root .start-social-btn:active{transform:translateY(1px);box-shadow:none;filter:brightness(.96)}
