:root{--bg:#f0ebe2;--bg-alt:#e6e0d1;--bg-shell:#f0ebe2;--bg-card:#ffffff;--bg-warm:#fffdf8;--bg-c1:#fff3d8;--bg-c2:#dff0e0;--bg-c3:#ffdfdf;--bg-c4:#dbeaf5;--ink:#1a1a24;--ink-soft:#2a2a34;--ink-muted:#6a6a74;--ink-faint:#a0a0aa;--rule:#1a1a24;--rule-soft:#d4cfc0;--red:#d94444;--red-deep:#b03030;--red-soft:#fbdcdc;--coral:var(--red);--coral-deep:var(--red-deep);--coral-glow:#ff7070;--sage:var(--ink);--sage-deep:var(--ink);--sage-light:var(--bg-c2);--navy:var(--ink);--gold:var(--red);--gold-deep:var(--red-deep);--border:var(--rule);--radius-sm:0px;--radius-md:0px;--radius-lg:0px;--shadow-sm:3px 3px 0 0 var(--ink);--shadow-md:5px 5px 0 0 var(--ink);--shadow-lg:8px 8px 0 0 var(--ink)}*{margin:0;padding:0;box-sizing:border-box}body,html{background:var(--bg);color:var(--ink)}body{font-family:IBM Plex Sans,Pretendard Variable,-apple-system,BlinkMacSystemFont,sans-serif;font-weight:400;-webkit-font-smoothing:antialiased;font-feature-settings:"ss01","ss02","tnum"}.shell-frame{min-height:100dvh;width:100%;max-width:420px;margin:0 auto;background:var(--bg);position:relative;padding:0;display:flex;flex-direction:column}.shell-header{position:relative;background:var(--bg-c1);border:2px solid var(--ink);box-shadow:var(--shadow-md);margin:22px 16px 0;padding:18px 20px 16px 28px}.shell-header:before{content:"Front / 001";position:absolute;top:-1px;right:-1px;background:var(--ink);color:var(--bg-card);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:9px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;padding:4px 9px}.shell-header:after{content:"";position:absolute;top:14px;bottom:14px;left:10px;width:2px;background:var(--red);opacity:.25}.header-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;margin-top:4px}.brand{font-family:IBM Plex Sans,Pretendard Variable,sans-serif;font-size:36px;font-weight:700;letter-spacing:-.025em;line-height:.9;color:var(--ink);text-decoration:none}.brand-accent{display:inline;width:auto;height:auto;background:none;color:var(--red);font-size:inherit;font-weight:inherit;font-family:inherit;text-indent:0;overflow:visible;vertical-align:baseline;margin:0}.user-pill{gap:6px;background:transparent;border:none;padding:0;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:var(--ink)}.user-avatar,.user-pill{display:flex;align-items:center}.user-avatar{width:22px;height:22px;background:var(--ink);justify-content:center;font-family:IBM Plex Sans,sans-serif;font-size:11px;font-weight:700;color:var(--bg-card);letter-spacing:0;border-radius:0}.nav-row{display:flex;flex-wrap:wrap;gap:4px 14px;border:none;padding-top:10px;border-top:1px dashed var(--ink);margin:0}.nav-chip{text-decoration:none;white-space:nowrap;padding:2px 0;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:var(--ink);background:transparent;border:none;border-bottom:1px dotted var(--ink);transition:color .12s ease,border-color .12s ease}.nav-chip:hover{color:var(--red);border-bottom-color:var(--red)}.page-main{padding:24px 16px 60px;width:100%;max-width:480px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr);grid-gap:30px;gap:30px;counter-reset:section}.page-main-study{flex:1 1 auto;display:flex;flex-direction:column;gap:20px;padding-bottom:0;width:100%}.page-main-wide{width:100%;grid-template-columns:minmax(0,1fr);counter-reset:section}.page-container,.page-main-wide{padding:24px 16px 60px;max-width:720px;margin:0 auto;display:grid;grid-gap:30px;gap:30px}.back-link{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:11px;font-weight:500;color:var(--ink-muted);text-decoration:none;letter-spacing:.04em}.back-link:before{content:"\2190\00a0"}.back-link:hover,.page-title{color:var(--ink)}.page-title{font-family:IBM Plex Sans,Pretendard Variable,sans-serif;font-size:34px;font-weight:700;line-height:.95;letter-spacing:-.03em}.page-subtitle{color:var(--ink-muted);line-height:1.5;letter-spacing:.12em}.page-subtitle,.section-title{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10px;font-weight:500;text-transform:uppercase}.section-title{letter-spacing:.18em;color:var(--ink)}.section-header{counter-increment:section;display:flex;align-items:center;gap:10px;padding:0 0 6px 4px;border:none}.section-header:before{content:counter(section,decimal-leading-zero);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10px;font-weight:700;color:var(--red);letter-spacing:.12em}.section-header .section-title{flex:1 1}.section-count{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:9px;font-weight:500;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.12em}.card,.deck-list,.quick-actions,.signin-brand+.social-buttons,.test-question,.upload-area,.upload-zone{background:var(--bg-card);border:2px solid var(--ink);box-shadow:var(--shadow-md);position:relative}.deck-list:after,.quick-actions:after,.test-question:after{content:"";position:absolute;top:12px;bottom:12px;left:10px;width:2px;background:var(--red);opacity:.2}.quick-actions{display:grid;grid-template-columns:1fr 1fr;grid-gap:0;gap:0;padding:0;overflow:hidden}.quick-actions-single{grid-template-columns:1fr}.action-card{background:transparent;padding:22px 16px 20px 24px;text-decoration:none;color:var(--ink);display:grid;grid-gap:8px;gap:8px;border-right:1px dashed var(--ink);transition:background .12s ease}.action-card:last-child{border-right:none}.action-card:hover{background:var(--bg-c1);color:var(--ink)}.action-card:hover .action-card-desc{color:var(--ink-muted)}.action-icon{font-family:IBM Plex Sans,sans-serif;font-size:32px;font-weight:300;line-height:.9;letter-spacing:-.04em;background:none;width:auto;height:auto;border-radius:0;display:block;padding:0;margin-bottom:4px}.action-icon,.action-icon-coral{color:var(--red)}.action-icon-sage{color:var(--ink)}.action-icon-gold{color:var(--red)}.action-icon-navy{color:var(--ink)}.action-card-title{font-family:IBM Plex Sans,Pretendard Variable,sans-serif;font-size:14px;font-weight:700;text-transform:none;letter-spacing:-.01em;line-height:1.2}.action-card-desc{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:9px;font-weight:500;color:var(--ink-muted);line-height:1.4;text-transform:uppercase;letter-spacing:.1em;transition:color .12s ease}.deck-list{display:grid;grid-gap:0;gap:0;padding:14px 16px 14px 22px}.deck-card{background:transparent;border-bottom:1px dashed var(--ink);text-decoration:none;color:inherit;display:grid;grid-template-columns:1fr auto;grid-gap:14px;gap:14px;align-items:center;transition:background .12s ease;margin:0 -4px;padding:12px 8px 12px 18px}.deck-list>.deck-card:last-child{border-bottom:none}.deck-card:hover{background:var(--bg-c1)}.deck-card-create .deck-name{color:var(--red)}.deck-card-create-plus{display:inline-block;font-weight:400;margin-right:2px}.deck-info{display:grid;grid-gap:6px;gap:6px;min-width:0}.deck-name{font-family:IBM Plex Sans,Pretendard Variable,sans-serif;font-size:15px;font-weight:700;letter-spacing:-.01em;color:var(--ink);line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.deck-meta{display:flex;flex-wrap:wrap;gap:10px;letter-spacing:.1em;color:var(--ink-muted)}.deck-meta,.tag{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:9px;font-weight:500;text-transform:uppercase;align-items:center}.tag{display:inline-flex;padding:2px 7px;letter-spacing:.12em;border:1px solid var(--ink);color:var(--ink)}.tag,.tag-custom{background:var(--bg-card)}.tag-custom{border-color:var(--red);color:var(--red)}.tag-curated{border-color:var(--ink);color:var(--ink);background:var(--bg-c2)}.tag-active{background:var(--ink);border-color:var(--ink);color:var(--bg-card)}.deck-hero{background:var(--bg-c3);color:var(--ink);padding:28px 22px 24px 32px;display:grid;grid-gap:18px;gap:18px;position:relative;overflow:visible;border:2px solid var(--ink);box-shadow:var(--shadow-md);margin:0 4px}.deck-hero:before{content:"Deck / 001";position:absolute;top:-1px;right:-1px;background:var(--ink);color:var(--bg-card);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:9px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;padding:4px 9px}.deck-hero:after{content:"";position:absolute;top:14px;bottom:14px;left:10px;width:2px;background:var(--red);opacity:.35}.deck-hero-title{font-family:IBM Plex Sans,Pretendard Variable,sans-serif;font-size:30px;font-weight:700;letter-spacing:-.03em;line-height:.95;position:relative;z-index:1;color:var(--ink)}.deck-stats{display:flex;gap:28px;position:relative;z-index:1;border-top:1px dashed var(--ink);padding-top:14px}.deck-stat-value{font-family:IBM Plex Sans,sans-serif;font-size:28px;font-weight:300;letter-spacing:-.03em;line-height:.9;color:var(--ink)}.deck-stat-label{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:9px;font-weight:500;text-transform:uppercase;letter-spacing:.12em;opacity:.7;margin-top:4px;color:var(--ink)}.btn{display:flex;align-items:center;justify-content:center;gap:10px;padding:14px 20px;font-family:IBM Plex Sans,Pretendard Variable,sans-serif;font-size:13px;font-weight:700;text-transform:none;letter-spacing:-.01em;text-decoration:none;border:2px solid var(--ink);cursor:pointer;transition:transform .08s ease,box-shadow .08s ease,background .12s ease;background:var(--bg-card);color:var(--ink);box-shadow:var(--shadow-sm)}.btn:hover{transform:translate(1px,1px);box-shadow:2px 2px 0 0 var(--ink)}.btn:active{transform:translate(3px,3px);box-shadow:0 0 0 0 var(--ink)}.btn-primary{background:var(--red);color:var(--bg-card);border-color:var(--ink)}.btn-primary:hover{background:var(--red-deep)}.btn-secondary{background:var(--bg-card);color:var(--ink);border-color:var(--ink)}.btn-secondary:hover{background:var(--bg-c1)}.btn-locked{opacity:.62;background:var(--bg-alt);color:var(--ink-muted)}.btn-locked:hover{background:var(--bg-c1);color:var(--ink)}.btn-know{background:var(--bg-c2);color:var(--ink);border-color:var(--ink)}.btn-know:hover{background:#c8e8ca}.btn-unknown{background:var(--bg-c3);color:var(--ink);border-color:var(--ink)}.btn-unknown:hover{background:#f5c5c5}.btn-danger{background:var(--red);color:var(--bg-card);border-color:var(--red)}.btn-danger:hover{background:var(--ink);color:var(--bg-card);border-color:var(--ink)}.btn-sm{padding:8px 14px;font-size:11px;letter-spacing:.05em}.error{color:var(--red)}.error,.notice{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:11px;font-weight:500;letter-spacing:.08em}.notice{background:var(--red-soft);border:1.5px solid var(--red);padding:10px 14px;margin:0 4px;color:var(--red-deep)}.btn-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.btn-row .btn{border:2px solid var(--ink)}.study-part-chips{display:grid;grid-gap:10px;gap:10px}.study-part-chips .btn-chip{padding:14px 8px;min-width:0}.flashcard{background:var(--bg-card);border:2px solid var(--ink);box-shadow:var(--shadow-lg);padding:36px 24px 32px 34px;display:grid;grid-gap:22px;gap:22px;position:relative}.flashcard:before{content:"Front / Card";display:block;position:absolute;top:-1px;right:-1px;background:var(--ink);color:var(--bg-card);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:9px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;padding:4px 9px}.flashcard:after{content:"";position:absolute;top:14px;bottom:14px;left:12px;width:2px;background:var(--red);opacity:.3}.flashcard-word{font-family:IBM Plex Sans,Pretendard Variable,sans-serif;font-size:44px;font-weight:700;letter-spacing:-.035em;color:var(--ink);line-height:1}.sense-block{display:grid;grid-gap:8px;gap:8px;padding-left:14px;border-left:2px solid var(--red)}.sense-label{font-size:9px;letter-spacing:.15em;color:var(--red)}.pos-tag,.sense-label{font-family:IBM Plex Mono,ui-monospace,monospace;font-weight:500;text-transform:uppercase}.pos-tag{font-size:10px;letter-spacing:.1em;color:var(--ink-muted);font-style:normal}.definition{font-family:IBM Plex Sans,Pretendard Variable,sans-serif;font-size:15px;font-weight:400;line-height:1.55;color:var(--ink)}.definition-lang{display:inline-block;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:9px;font-weight:500;text-transform:uppercase;letter-spacing:.12em;color:var(--bg-card);background:var(--ink);padding:2px 6px;margin-right:6px;vertical-align:middle}.example-sentence{font-family:IBM Plex Sans,Pretendard Variable,sans-serif;font-size:13px;font-weight:400;color:var(--ink-soft);font-style:italic;line-height:1.55;padding:12px 14px;background:var(--bg-c1);border-left:2px solid var(--ink)}.study-header{display:flex;justify-content:space-between;align-items:center;gap:12px}.study-reset-link{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:11px;font-weight:500;color:var(--ink-muted);background:none;border:none;padding:0;cursor:pointer;letter-spacing:.04em;text-transform:uppercase}.study-reset-link:hover{color:var(--ink)}.study-controls{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.study-controls .btn{border:2px solid var(--ink)}.study-summary{display:flex;justify-content:center;gap:32px;padding:12px 0}.study-bottom-bar{position:-webkit-sticky;position:sticky;bottom:0;margin-top:auto;display:grid;grid-gap:8px;gap:8px;background:var(--bg);border-top:1px dashed var(--ink);padding-top:4px;padding-bottom:calc(env(safe-area-inset-bottom) + 12px)}.study-stat{text-align:center;display:grid;grid-gap:4px;gap:4px}.study-stat-num{font-family:IBM Plex Sans,sans-serif;font-size:28px;font-weight:300;letter-spacing:-.03em;line-height:.9;color:var(--ink)}.study-stat-label{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:9px;font-weight:500;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.12em}.progress-bar{display:flex;align-items:center;gap:14px}.progress-bar-track{flex:1 1;height:6px;background:var(--bg-card);border:1px solid var(--ink);overflow:hidden}.progress-bar-fill{height:100%;background:var(--red);transition:width .4s ease}.progress-bar-label{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.12em;color:var(--ink);white-space:nowrap}.test-question{padding:24px 22px 20px 32px;display:grid;grid-gap:16px;gap:16px}.test-question-number{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:9px;font-weight:500;text-transform:uppercase;letter-spacing:.15em;color:var(--red)}.test-question-text{font-family:IBM Plex Sans,Pretendard Variable,sans-serif;font-size:17px;font-weight:700;color:var(--ink);line-height:1.35;letter-spacing:-.01em}.test-question-pos{font-family:IBM Plex Mono,ui-monospace,monospace;font-weight:500;font-size:10px;color:var(--ink-muted);font-style:normal;text-transform:uppercase;letter-spacing:.1em;margin-left:4px}.test-options{display:grid;grid-gap:10px;gap:10px;border:none}.test-option{display:flex;align-items:center;gap:14px;padding:14px 16px;background:var(--bg-card);border:2px solid var(--ink);cursor:pointer;transition:background .12s ease,transform .08s ease,box-shadow .08s ease;font-family:IBM Plex Sans,Pretendard Variable,sans-serif;font-size:14px;font-weight:500;color:var(--ink);box-shadow:var(--shadow-sm)}.test-option:hover{background:var(--bg-c1);transform:translate(1px,1px);box-shadow:2px 2px 0 0 var(--ink)}.test-option:has(input:checked){background:var(--bg-c2);color:var(--ink)}.test-option input[type=radio]{accent-color:var(--red);width:16px;height:16px}.signin-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:calc(100vh - 80px);padding:60px 24px;text-align:center;gap:36px}.signin-brand{display:grid;grid-gap:16px;gap:16px;place-items:center}.signin-logo{width:64px;height:64px;background:var(--bg-c1);border:2px solid var(--ink);box-shadow:var(--shadow-md);display:flex;align-items:center;justify-content:center;font-family:IBM Plex Sans,sans-serif;font-size:30px;font-weight:700;color:var(--ink);letter-spacing:-.04em;position:relative}.signin-logo:after{content:"";position:absolute;top:10px;bottom:10px;left:6px;width:2px;background:var(--red);opacity:.35}.social-buttons{display:grid;grid-gap:0;gap:0;width:100%;max-width:320px;padding:0;overflow:hidden}.social-btn{display:flex;align-items:center;justify-content:center;gap:12px;padding:16px 20px;font-family:IBM Plex Sans,Pretendard Variable,sans-serif;font-size:13px;font-weight:700;text-transform:none;letter-spacing:-.01em;text-decoration:none;border:none;cursor:pointer;transition:background .12s ease,color .12s ease}.social-btn+.social-btn{border-top:1px dashed var(--ink)}.social-btn-google{background:var(--bg-card);color:var(--ink)}.social-btn-google:hover{background:var(--bg-c1)}.social-btn-apple{background:var(--ink);color:var(--bg-card)}.social-btn-apple:hover{background:var(--ink-soft)}.social-btn:disabled{opacity:.5;cursor:not-allowed}.signin-footer{color:var(--ink-muted);line-height:1.6;max-width:280px;letter-spacing:.1em}.form-label,.signin-footer{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10px;font-weight:500;text-transform:uppercase}.form-label{color:var(--ink);letter-spacing:.15em}.form-input{padding:14px 16px;border:2px solid var(--ink);font-family:IBM Plex Sans,Pretendard Variable,sans-serif;font-size:15px;font-weight:500;color:var(--ink);background:var(--bg-card);width:100%;border-radius:0;box-shadow:var(--shadow-sm);transition:box-shadow .12s ease}.form-input:focus{outline:none;box-shadow:var(--shadow-md);border-color:var(--red)}textarea.form-input{resize:vertical;min-height:120px}.card{padding:22px 20px 20px 30px}.card:after{content:"";position:absolute;top:12px;bottom:12px;left:10px;width:2px;background:var(--red);opacity:.2}.empty-state{text-align:center;padding:36px 20px;border:2px dashed var(--ink);background:var(--bg-card)}.empty-state p{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:11px;font-weight:500;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.1em;line-height:1.6}.tag-hero{background:var(--bg-c4);color:var(--ink);padding:28px 22px 24px 32px;display:grid;grid-gap:14px;gap:14px;position:relative;overflow:visible;border:2px solid var(--ink);box-shadow:var(--shadow-md);margin:0 4px}.tag-hero:before{content:"Tag / 001";position:absolute;top:-1px;right:-1px;background:var(--ink);color:var(--bg-card);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:9px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;padding:4px 9px}.tag-hero:after{content:"";position:absolute;top:14px;bottom:14px;left:10px;width:2px;background:var(--red);opacity:.4}.tag-hero-title{font-family:IBM Plex Sans,Pretendard Variable,sans-serif;font-size:30px;font-weight:700;letter-spacing:-.03em;line-height:.95;cursor:pointer}.tag-hero-subtitle,.tag-hero-title{color:var(--ink);position:relative;z-index:1}.tag-hero-subtitle{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.12em;opacity:.7}.tag-input-wrap{display:flex;flex-wrap:wrap;gap:6px;align-items:center;position:relative;z-index:1}.tag-removable{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:9px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;background:var(--bg-card);color:var(--ink);border:1px solid var(--ink);cursor:pointer;transition:background .12s ease,color .12s ease}.tag-removable:hover{background:var(--red);border-color:var(--red);color:var(--bg-card)}.tag-input-field{background:var(--bg-card);border:1px solid var(--ink);padding:3px 10px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10px;font-weight:500;color:var(--ink);width:90px;letter-spacing:.08em;transition:width .12s ease,background .12s ease}.tag-input-field::placeholder{color:var(--ink-muted);text-transform:uppercase;letter-spacing:.12em;font-size:9px}.tag-input-field:focus{outline:none;border-color:var(--red);width:130px}.tag-input-field:disabled{opacity:.5}.tag-filter{display:flex;gap:6px;flex-wrap:wrap;border:none}.tag-filter-chip{display:inline-flex;align-items:center;padding:6px 12px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.12em;cursor:pointer;transition:background .12s ease,color .12s ease;border:1.5px solid var(--ink)}.tag-filter-chip--inactive{background:var(--bg-card);color:var(--ink)}.tag-filter-chip--inactive:hover{background:var(--bg-c1)}.tag-filter-chip--active{background:var(--ink);color:var(--bg-card)}.upload-area{padding:36px 20px;text-align:center;display:grid;grid-gap:12px;gap:12px;place-items:center;transition:background .12s ease}.upload-area:hover{background:var(--bg-c1)}.upload-zone{padding:36px 16px;text-align:center;cursor:pointer;transition:background .12s ease}.upload-zone:hover{background:var(--bg-c1)}.upload-zone-text{font-family:IBM Plex Sans,Pretendard Variable,sans-serif;font-size:14px;font-weight:700;color:var(--ink);margin:0;letter-spacing:-.01em}.upload-zone-hint{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10px;font-weight:500;color:var(--ink-muted);margin:4px 0 0;text-transform:uppercase;letter-spacing:.1em}.upload-zone-error,.upload-zone-preparing{font-family:IBM Plex Sans,Pretendard Variable,sans-serif;font-size:14px;font-weight:500;color:var(--ink);margin:0;line-height:1.5}.upload-zone-error{color:var(--ink-soft)}.upload-limit-message{display:inline-flex;flex-wrap:wrap;align-items:baseline;justify-content:center;gap:4px;line-height:1.5}.upload-limit-message__phrase{display:inline-block;padding:0 5px;font-weight:800;color:var(--red-deep);background:var(--red-soft);border:1px solid var(--red-deep)}.upload-limit-message__link{font-weight:800;color:var(--ink);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}.upload-limit-message__link:hover{color:var(--red-deep)}.extraction-task-filename{font-family:IBM Plex Sans,Pretendard Variable,sans-serif;font-size:13px;font-weight:500;color:var(--ink)}.extraction-task-status{flex-shrink:0}.status-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:9px;font-weight:500;text-transform:uppercase;letter-spacing:.12em;border:1px solid var(--ink)}.status-processing{background:var(--bg-c1);color:var(--ink);border-color:var(--ink)}.status-failed{background:var(--bg-c3);color:var(--red);border-color:var(--red)}.status-completed{background:var(--bg-c2);color:var(--ink);border-color:var(--ink)}.settings-section{margin-top:28px;padding-top:18px;border-top:1px dashed var(--ink)}.settings-label{letter-spacing:.15em;margin-bottom:6px;color:var(--ink)}.settings-description,.settings-label{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10px;font-weight:500;text-transform:uppercase}.settings-description{color:var(--ink-muted);margin-bottom:14px;letter-spacing:.1em}.language-selector{display:flex;gap:8px;border:none}.language-option{padding:10px 18px;border:1.5px solid var(--ink);background:var(--bg-card);cursor:pointer;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10px;font-weight:500;color:var(--ink);text-transform:uppercase;letter-spacing:.12em;transition:background .12s ease,color .12s ease}.language-option:hover{background:var(--bg-c1)}.language-option.active{background:var(--ink);color:var(--bg-card)}.language-option:disabled{opacity:.4;cursor:not-allowed}.sign-out-button{padding:10px 18px;border:1.5px solid var(--ink);background:var(--bg-card);cursor:pointer;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10px;font-weight:600;color:var(--ink);text-transform:uppercase;letter-spacing:.14em;transition:background .12s ease,color .12s ease,border-color .12s ease}.sign-out-button:hover{background:var(--ink);color:var(--bg-card)}.sign-out-button:disabled{opacity:.4;cursor:not-allowed}.redeem-coupon-card form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px}.redeem-coupon-card label{display:grid;grid-gap:6px;gap:6px;flex:1 1 220px;font-size:10px;letter-spacing:.12em}.redeem-coupon-card input,.redeem-coupon-card label{font-family:IBM Plex Mono,ui-monospace,monospace;font-weight:500;text-transform:uppercase;color:var(--ink)}.redeem-coupon-card input{padding:10px 12px;border:1.5px solid var(--ink);background:var(--bg-card);font-size:13px;letter-spacing:.04em;min-height:42px;width:100%}.redeem-coupon-card input:focus{outline:2px solid var(--red);outline-offset:1px}.redeem-coupon-card button{padding:10px 20px;border:1.5px solid var(--ink);background:var(--ink);color:var(--bg-card);cursor:pointer;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.14em;min-height:42px;transition:background .12s ease,color .12s ease}.redeem-coupon-card button:hover:not(:disabled){background:var(--red);border-color:var(--red)}.redeem-coupon-card button:disabled{opacity:.4;cursor:not-allowed}.redeem-coupon-card .error,.redeem-coupon-card .success{margin-top:12px;padding:10px 12px;border:1.5px solid var(--ink);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:11px;font-weight:500;letter-spacing:.05em;line-height:1.4}.redeem-coupon-card .error{border-color:var(--red);color:var(--red);background:color-mix(in srgb,var(--red) 8%,var(--bg-card))}.redeem-coupon-card .success{border-color:var(--ink);background:var(--bg-c1)}.billing-panel{background:var(--bg-card);border:2px solid var(--ink);box-shadow:var(--shadow-sm);padding:18px;display:grid;grid-gap:16px;gap:16px}.billing-panel__head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.billing-kicker,.billing-meta,.billing-quota span,.billing-reset,.branding-field span{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-muted)}.billing-state{margin-top:4px;font-size:22px;font-weight:700;letter-spacing:-.02em;color:var(--ink)}.billing-meta{max-width:160px;text-align:right;line-height:1.45}.billing-quota-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}.billing-quota{min-height:82px;padding:12px;border:1.5px dashed var(--ink);background:var(--bg-warm);display:grid;align-content:space-between;grid-gap:12px;gap:12px}.billing-quota strong{font-size:28px;line-height:1;letter-spacing:-.03em}.billing-actions{display:flex;flex-wrap:wrap;gap:10px}.billing-actions form{display:contents}.teacher-branding-form{margin-top:18px;padding:18px 0 0;border-top:1px dashed var(--ink);display:grid;grid-gap:14px;gap:14px}.branding-field{display:grid;grid-gap:6px;gap:6px}.branding-field input{width:100%;min-height:44px;border:2px solid var(--ink);background:var(--bg-card);padding:10px 12px;font:inherit;color:var(--ink);border-radius:0}.upgrade-page{align-content:start}.upgrade-intro{font-family:IBM Plex Mono,ui-monospace,monospace;color:var(--ink-muted);font-size:11px;line-height:1.6;max-width:520px;text-transform:uppercase;letter-spacing:.08em}.upgrade-plans{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:16px;gap:16px}.upgrade-plan{min-height:260px;background:var(--bg-card);border:2px solid var(--ink);box-shadow:var(--shadow-md);padding:22px;display:grid;align-content:space-between;grid-gap:24px;gap:24px}.upgrade-plan:nth-child(2){background:var(--bg-c4)}.upgrade-plan h2{font-size:28px;line-height:.95;letter-spacing:-.03em}.upgrade-plan__allowance{margin-top:12px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--red)}.upgrade-plan__description{margin-top:12px;color:var(--ink-muted);font-size:14px;line-height:1.45}@media (max-width:640px){.billing-panel__head,.upgrade-plans{grid-template-columns:1fr}.billing-panel__head{display:grid}.billing-meta{max-width:none;text-align:left}.billing-quota-grid{grid-template-columns:1fr}.billing-actions .btn,.teacher-branding-form .btn{width:100%}}.print-controls{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:16px 20px;background:var(--bg-card);border:2px solid var(--ink);box-shadow:var(--shadow-sm)}.print-controls label{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.12em;color:var(--ink);display:flex;align-items:center;gap:6px}.print-controls-slider{flex:1 1;min-width:160px}.print-controls-slider-row{display:flex;align-items:center;gap:8px;font-weight:400}.print-controls-slider-row input[type=range]{flex:1 1;min-width:80px;accent-color:var(--red)}.print-controls-count{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10px;font-weight:500;color:var(--ink-muted);white-space:nowrap;min-width:50px;text-transform:uppercase;letter-spacing:.1em}.print-controls select{padding:8px 12px;border:1.5px solid var(--ink);font-family:IBM Plex Sans,Pretendard Variable,sans-serif;font-size:12px;font-weight:500;color:var(--ink);background:var(--bg-card);border-radius:0}.print-controls input[type=checkbox]{accent-color:var(--red);width:16px;height:16px}.print-page{padding:0;max-width:none}.print-page-header{margin-bottom:8px}.print-branding{display:inline-block;margin-bottom:8px;padding:3px 8px;border:1.5px solid var(--ink);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink)}.print-page-title{font-size:14px;font-weight:700;color:var(--ink);display:inline}.print-page-type{font-weight:500;display:inline;margin-left:8px;text-transform:uppercase;letter-spacing:.1em}.print-page-fields,.print-page-type{font-size:12px;color:var(--ink-soft)}.print-page-fields{display:flex;gap:24px;margin-top:4px}.print-page-fields span{border-bottom:1px solid var(--ink-muted);min-width:120px;display:inline-block}.print-table{width:100%;border-collapse:collapse;border:1px solid var(--ink)}.print-table td{padding:6px 4px;vertical-align:middle;font-size:13px;line-height:1.5;border:1px solid var(--ink)}.print-table tr{page-break-inside:avoid;break-inside:avoid}.print-table-num{width:20px;font-weight:700;text-align:center;color:var(--ink)}.print-table-blank{width:150px}.print-table-word{width:120px;font-weight:600}.print-pos{font-style:normal;color:var(--ink-muted);font-weight:500;text-transform:uppercase;font-size:11px;letter-spacing:.08em}.print-answer-key{border-top:1px dashed var(--ink-muted);padding-top:4px;font-size:9px;color:var(--ink-muted);line-height:1.4;overflow:hidden}@media print{.shell-header{display:none}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}body,html{background:#fff!important;color:#000!important;font-size:10px;margin:0;padding:0}.back-link,.print-controls,.shell-header{display:none!important}.page-main,.page-main-wide,.shell-frame{background:#fff!important;padding:0;max-width:none;min-height:auto;gap:0;border:none}.print-page,.print-table,.print-table td{background:#fff!important}.print-table td{color:#000!important}}@page{margin:10mm}@media print and (pointer:coarse){.print-table td{font-size:11px;padding:4px 3px;line-height:1.3}.print-table-blank{width:100px}.print-table-num{width:16px}}.flashcard.flashcard-animate-reveal .sense-block{animation:study-reveal-fade .15s ease-out}@keyframes study-reveal-fade{0%{opacity:0}to{opacity:1}}.tap-to-reveal-hint{margin-top:8px;font-size:.875rem;color:var(--ink-muted);text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none}.flashcard[role=button]{cursor:pointer}.flashcard[role=button]:focus-visible{outline:2px solid var(--ink);outline-offset:4px}.study-reveal-setting{display:flex;flex-direction:column;gap:14px}.study-reveal-options{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.study-reveal-option{padding:8px 14px;border:1.5px solid var(--ink);border-radius:999px;background:var(--bg-card);color:var(--ink);cursor:pointer;font-size:.875rem}.study-reveal-option.active{background:var(--ink);color:var(--bg-card);border-color:var(--ink)}.study-reveal-delay-picker{display:flex;flex-direction:column;gap:6px}.study-reveal-delay-label{font-size:.875rem;color:var(--ink-muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.study-reveal-delay-slider{width:100%;accent-color:var(--ink);cursor:pointer}.tag-chip-bar{display:flex;flex-wrap:wrap;gap:8px;margin:0 4px}.tag-chip{display:inline-flex;align-items:center;padding:6px 12px;font-family:IBM Plex Sans,Pretendard Variable,sans-serif;font-size:13px;font-weight:500;background:var(--bg-c4);color:var(--ink);border:1.5px solid var(--ink);text-decoration:none;transition:background .12s ease,color .12s ease;cursor:pointer}.tag-chip:hover{background:var(--ink);color:var(--bg-card)}.tag-hero-title-input{background:var(--bg-card);border:1.5px solid var(--ink);padding:6px 12px;font-family:IBM Plex Sans,Pretendard Variable,sans-serif;font-size:28px;font-weight:700;letter-spacing:-.03em;color:var(--ink);width:100%}.tag-hero-title-input:focus{outline:none;border-color:var(--red)}.edit-hint{font-size:14px;color:var(--ink-muted);cursor:pointer;margin-left:6px}.tag-sort-toggle{display:inline-flex;border:1.5px solid var(--ink);margin:12px 4px 0;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:11px;font-weight:500;letter-spacing:.1em;text-transform:uppercase}.tag-sort-toggle button{padding:8px 14px;background:var(--bg-card);color:var(--ink);border:none;cursor:pointer;font:inherit}.tag-sort-toggle button.active{background:var(--ink);color:var(--bg-card)}.tag-deck-list{list-style:none;margin:14px 0 0;padding:0 4px;display:grid;grid-gap:8px;gap:8px}.tag-deck-item{background:var(--bg-card);border:1.5px solid var(--ink);padding:12px 14px;cursor:pointer;transition:background .12s ease}.tag-deck-item.selected{background:var(--bg-c1);box-shadow:2px 2px 0 0 var(--ink)}.tag-deck-item label{display:flex;align-items:center;gap:12px;cursor:pointer}.tag-deck-item input[type=checkbox]{width:18px;height:18px;flex-shrink:0}.tag-deck-info{display:grid;grid-gap:2px;gap:2px}.tag-deck-info .name{font-family:IBM Plex Sans,Pretendard Variable,sans-serif;font-size:14px;font-weight:600;color:var(--ink)}.tag-deck-info .meta{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted)}.tag-action-bar{position:-webkit-sticky;position:sticky;bottom:12px;margin:16px 4px 0;padding:12px 14px;background:var(--bg-card);border:1.5px solid var(--ink);box-shadow:2px 2px 0 0 var(--ink);display:flex;align-items:center;gap:10px;z-index:10}.tag-action-bar .count{flex:1 1;font-weight:600}.tag-action-bar .count,.tag-action-bar button{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink)}.tag-action-bar button{padding:8px 14px;font-weight:500;background:var(--bg-card);border:1.5px solid var(--ink);cursor:pointer}.tag-action-bar button:disabled{opacity:.4;cursor:not-allowed}.tag-action-bar button.btn-primary{background:var(--ink);color:var(--bg-card)}.inline-edit-input{background:var(--bg-card);border:1.5px solid var(--ink);padding:8px 14px;font-family:IBM Plex Sans,Pretendard Variable,sans-serif;font-size:13px;font-weight:500;color:var(--ink);flex:1 1;min-width:0}.inline-edit-input:focus{outline:none;border-color:var(--red)}.extraction-activity{position:relative;background:var(--bg-warm);border:2px solid var(--ink);box-shadow:var(--shadow-md);margin:0 4px;padding:22px 20px 16px 24px;display:grid;grid-gap:10px;gap:10px}.extraction-activity:before{content:"Import / Activity";position:absolute;top:-1px;right:-1px;background:var(--ink);color:var(--bg-card);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:9px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;padding:4px 9px}.extraction-activity h2{font-family:IBM Plex Sans,Pretendard Variable,sans-serif;font-size:15px;font-weight:700;letter-spacing:-.01em;color:var(--ink);padding-bottom:10px;border-bottom:1px dashed var(--ink)}.extraction-activity-heading{margin:0;padding:0;border-bottom:1px dashed var(--ink)}.extraction-activity-heading .extraction-activity-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:0 0 10px;background:transparent;border:none;font:inherit;font-family:IBM Plex Sans,Pretendard Variable,sans-serif;font-size:15px;font-weight:700;letter-spacing:-.01em;color:var(--ink);cursor:pointer;text-align:left}.extraction-activity-heading .extraction-activity-toggle:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.extraction-activity-chevron{font-size:12px;line-height:1;opacity:.7;margin-left:8px}.extraction-activity-body{display:grid;grid-gap:10px;gap:10px}.extraction-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;font-family:IBM Plex Sans,Pretendard Variable,sans-serif;font-size:13px;font-weight:500;color:var(--ink);border-bottom:1px dashed var(--rule-soft)}.extraction-row:last-child{border-bottom:none}.extraction-row>div{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1 1}.extraction-row .hint{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted)}.extraction-row .upload-limit-message{justify-content:flex-start}.extraction-row button{flex:0 0 auto;padding:8px 14px;font-family:IBM Plex Sans,Pretendard Variable,sans-serif;font-size:12px;font-weight:700;letter-spacing:-.01em;background:var(--bg-card);color:var(--ink);border:2px solid var(--ink);box-shadow:var(--shadow-sm);cursor:pointer;transition:transform .08s ease,box-shadow .08s ease,background .12s ease}.extraction-row button:hover:not(:disabled){background:var(--bg-c1);transform:translate(1px,1px);box-shadow:2px 2px 0 0 var(--ink)}.extraction-row button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.share-panel{background:var(--bg-card);border:2px dashed var(--ink);box-shadow:var(--shadow-sm);padding:14px;display:grid;grid-gap:10px;gap:10px}.share-panel-locked{grid-template-columns:minmax(0,1fr) auto;align-items:center}.share-panel__head{display:flex;align-items:center;justify-content:space-between;gap:12px}.share-panel__kicker,.share-panel__status{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted)}.share-panel__meta{margin-top:3px;font-size:13px;font-weight:500;color:var(--ink)}.share-panel__body{display:grid;grid-gap:8px;gap:8px}.share-link-input{width:100%;min-width:0;border:1.5px solid var(--ink);background:var(--bg-warm);color:var(--ink);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:12px;padding:9px 10px}.share-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:8px;gap:8px}.share-actions-revoke-only{grid-template-columns:minmax(0,1fr)}.share-public-header{display:flex;align-items:end;justify-content:space-between;gap:16px}.share-copy-action{display:grid;justify-items:end;grid-gap:6px;gap:6px}.resume-notice,.share-study-nudge{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1.5px dashed var(--ink);background:var(--bg-warm);padding:10px 12px;font-size:13px;font-weight:600;color:var(--ink)}.share-study-nudge a{color:var(--red);font-weight:800;white-space:nowrap}.share-study-nudge__actions{display:flex;align-items:center;gap:10px}.share-study-nudge__dismiss{border:0;border-bottom:1px dotted var(--ink);background:transparent;color:var(--ink-muted);cursor:pointer;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.shared-empty{padding:24px}.shared-deck-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;grid-gap:12px;gap:12px}.shared-deck-card__link{color:inherit;text-decoration:none;min-width:0}@media (max-width:720px){.share-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.share-panel-locked,.share-public-header,.shared-deck-card{align-items:stretch;grid-template-columns:1fr;flex-direction:column}.share-copy-action{justify-items:stretch}}