:root{--ink:#17332d;--muted:#65726e;--paper:#f7f4ec;--surface:#fffdf8;--line:#d9ddd5;--green:#174f43;--green-soft:#d9eee4;--coral:#ee795f;--yellow:#f2c85b;--mint:#8dc6ae;--red:#b8483d;--shadow:0 18px 50px #18332d17}*{box-sizing:border-box}html{background:var(--paper)}body{color:var(--ink);background:radial-gradient(circle at 90% 5%, #f2c85b26, transparent 26rem), var(--paper);min-height:100vh;margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{color:inherit}.site-header{justify-content:space-between;align-items:center;max-width:1240px;margin:0 auto;padding:24px 32px;display:flex}.brand{letter-spacing:-.02em;align-items:center;gap:10px;font-size:1.05rem;font-weight:800;display:flex}.brand-mark{background:var(--green);color:#fff;border-radius:10px 10px 4px;justify-content:center;align-items:center;width:36px;height:36px;display:flex;transform:rotate(-3deg)}nav{align-items:center;gap:10px;display:flex}nav a{border-radius:999px;padding:10px 15px;font-size:.92rem;font-weight:650}nav a:hover{background:#174f4312}nav .nav-review{border:1px solid var(--green);padding-inline:20px}.logout-button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:10px 8px;font-size:.82rem;font-weight:700}.logout-button:hover{color:var(--red)}.login-page{place-items:center;min-height:100vh;padding:28px;display:grid}.login-card{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:4px 38px;width:100%;max-width:470px;padding:48px}.login-card h1{margin-bottom:14px;font-size:clamp(2.8rem,8vw,4.5rem)}.login-card>p:not(.eyebrow){color:var(--muted);line-height:1.6}.login-mark{background:var(--green);color:#fff;border-radius:14px 14px 5px;justify-content:center;align-items:center;width:54px;height:54px;margin-bottom:36px;font-family:Georgia,serif;font-size:1.5rem;display:flex;transform:rotate(-3deg)}.login-form{margin-top:30px}.login-form .field input{min-height:52px;font-size:1.15rem}.page-shell{max-width:1180px;margin:0 auto;padding:70px 32px 100px}.page-shell.narrow{max-width:900px}.eyebrow{color:var(--coral);letter-spacing:.15em;text-transform:uppercase;margin:0 0 14px;font-size:.76rem;font-weight:850}h1,h2,h3,p{margin-top:0}h1,h2,h3{letter-spacing:-.045em;line-height:1.04}h1{margin-bottom:24px;font-family:Georgia,Times New Roman,serif;font-size:clamp(3rem,8vw,6rem);font-weight:500}h1 em{color:var(--coral);font-weight:inherit}h2{font-family:Georgia,Times New Roman,serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:500}.page-heading{margin-bottom:44px}.page-heading h1{margin-bottom:12px;font-size:clamp(2.8rem,6vw,4.8rem)}.page-heading>p:last-child,.page-heading>div>p:last-child{color:var(--muted);font-size:1.05rem}.split-heading{justify-content:space-between;align-items:flex-end;display:flex}.centered{text-align:center}.button{cursor:pointer;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;min-height:50px;padding:0 24px;font-weight:750;transition:transform .18s,background .18s,box-shadow .18s;display:inline-flex}.button:hover:not(:disabled){transform:translateY(-2px)}.button:disabled{cursor:wait;opacity:.6}.button.primary{background:var(--green);color:#fff;box-shadow:0 8px 20px #174f432e}.button.primary:hover:not(:disabled){background:#0f4036}.button.secondary{background:0 0;border-color:#9aa59f}.button.secondary:hover:not(:disabled){background:var(--surface)}.button.compact{min-height:42px;padding:0 18px}.button.wide{width:100%}.hero{max-width:900px;padding:50px 0 75px}.hero-copy{color:var(--muted);max-width:670px;font-size:clamp(1.1rem,2vw,1.35rem);line-height:1.65}.hero-actions{flex-wrap:wrap;gap:12px;margin-top:34px;display:flex}.stats-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.stat-card{border-radius:4px 30px;flex-direction:column;min-height:210px;padding:28px;display:flex}.stat-card.coral{background:#f3a08d}.stat-card.yellow{background:#f5d77f}.stat-card.mint{background:#b9decf}.stat-label{letter-spacing:.1em;text-transform:uppercase;font-size:.78rem;font-weight:800}.stat-card strong{margin:auto 0 6px;font-family:Georgia,serif;font-size:4.5rem;font-weight:500;line-height:1}.stat-card>span:last-child{color:#17332db3}.flow-panel{border-top:1px solid var(--line);grid-template-columns:.8fr 1.2fr;gap:70px;margin-top:90px;padding-top:65px;display:grid}.flow-list{margin:0;padding:0;list-style:none}.flow-list li{border-bottom:1px solid var(--line);align-items:flex-start;gap:20px;padding:22px 0;display:flex}.flow-list li>span{border:1px solid var(--mint);border-radius:50%;flex:0 0 38px;justify-content:center;align-items:center;height:38px;font-weight:800;display:flex}.flow-list strong{font-size:1.1rem}.flow-list p{color:var(--muted);margin:5px 0 0;line-height:1.5}.add-landing{grid-template-columns:minmax(0,1.5fr) minmax(260px,.5fr);align-items:center;gap:70px;min-height:calc(100vh - 100px);display:grid}.add-choice-page{max-width:950px}.creation-options{grid-template-columns:1fr 1fr;gap:20px;display:grid}.creation-option{background:var(--surface);border:1px solid var(--line);color:var(--ink);cursor:pointer;text-align:left;border-radius:4px 30px;flex-direction:column;min-height:330px;padding:38px;transition:transform .18s,box-shadow .18s;display:flex}.creation-option:hover{box-shadow:var(--shadow);transform:translateY(-4px)}.creation-option.basic-option{background:var(--green);color:#fff}.creation-icon{background:var(--green-soft);border-radius:50%;justify-content:center;align-items:center;width:62px;height:62px;margin-bottom:auto;font-family:Georgia,serif;display:flex}.basic-option .creation-icon{background:#ffffff24}.creation-option strong{margin-top:38px;font-family:Georgia,serif;font-size:2rem;font-weight:500}.creation-option p{color:var(--muted);margin:12px 0 24px;line-height:1.55}.basic-option p{color:#ffffffb8}.creation-option i{font-size:.86rem;font-style:normal;font-weight:800}.back-choice{color:var(--muted);cursor:pointer;background:0 0;border:0;margin-bottom:35px;padding:0}.generate-panel h1{font-size:clamp(3rem,6vw,5rem)}.generate-panel>p:not(.eyebrow){color:var(--muted);max-width:700px;font-size:1.1rem;line-height:1.65}.generate-form{margin-top:45px}.generate-form>label{text-transform:uppercase;margin-bottom:10px;font-size:.8rem;font-weight:800;display:block}.generate-row{background:var(--surface);border:1px solid #b8c0bb;border-radius:999px;align-items:stretch;padding:7px;display:flex}.generate-row input{background:0 0;border:0;outline:none;flex:1;min-width:0;padding:0 20px;font-family:Georgia,serif;font-size:1.4rem}.tip-card{background:var(--green);color:#fff;border-radius:4px 40px;padding:35px;transform:rotate(1.5deg)}.tip-card h2{margin-top:32px;font-size:1.7rem}.tip-card p{color:#ffffffbf;line-height:1.6}.tip-icon{border:1px solid #ffffff59;border-radius:50%;place-items:center;width:55px;height:55px;font-family:Georgia,serif;display:grid}.generation-progress{color:var(--muted);align-items:center;gap:12px;margin-top:20px;display:flex}.generation-progress span{background:var(--coral);border-radius:50%;width:10px;height:10px;animation:1s infinite alternate pulse}.generation-progress p{margin:0}@keyframes pulse{to{opacity:.25;transform:scale(.7)}}.notice{border-radius:12px;flex-direction:column;align-items:flex-start;gap:6px;margin:20px 0;padding:16px 18px;display:flex}.notice.warning{border-left:4px solid var(--yellow);background:#fff2c9}.notice.error{border-left:4px solid var(--coral);background:#fbe3df}.notice span,.notice button{color:var(--muted);font-size:.9rem}.notice button{cursor:pointer;background:0 0;border:0;padding:4px 0 0;text-decoration:underline}.editor-stack{flex-direction:column;gap:18px;display:flex}.editor-card{background:var(--surface);border:1px solid var(--line);padding:28px;box-shadow:0 10px 30px #18332d0a}.headword-card{border-radius:4px 24px;align-items:flex-end;gap:18px;display:flex}.grow{flex:1}.ipa-field{width:230px}.section-heading{justify-content:space-between;align-items:flex-end;margin:35px 0 5px;display:flex}.section-heading h2{margin-bottom:0}.form-card{border-radius:3px 20px}.form-card-top{justify-content:space-between;align-items:center;margin-bottom:22px;display:flex}.form-number{color:var(--coral);font-family:Georgia,serif;font-size:1.7rem}.form-tools{gap:8px;display:flex}.form-tools button,.card-actions button,.card-actions a{cursor:pointer;background:0 0;border:0;padding:7px;font-size:.86rem;font-weight:700}.form-tools button:disabled{cursor:default;opacity:.25}.danger-link{color:var(--red)!important}.field-grid{gap:18px;display:grid}.field-grid.two{grid-template-columns:1fr 1fr}.field{margin-bottom:18px}.field label{letter-spacing:.05em;text-transform:uppercase;margin-bottom:8px;font-size:.77rem;font-weight:800;display:block}.field label span{color:var(--muted);letter-spacing:0;text-transform:none;font-weight:500}.field-label-row{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.field-label-row label{margin-bottom:0}.basic-editor-card{border-radius:4px 30px;padding:36px}.basic-editor-card textarea{font-size:1.1rem;line-height:1.6}.card-divider{align-items:center;gap:12px;margin:12px 0 28px;display:flex}.card-divider:before,.card-divider:after{background:var(--line);content:"";flex:1;height:1px}.card-divider span{color:var(--coral);letter-spacing:.12em;text-transform:uppercase;font-size:.72rem;font-weight:850}.field input,.field select,.field textarea,.search-box input{color:var(--ink);resize:vertical;background:#fff;border:1px solid #cbd1cc;border-radius:8px;outline:none;width:100%;padding:12px 14px}.field input:focus,.field select:focus,.field textarea:focus,.search-box:focus-within{border-color:var(--green);box-shadow:0 0 0 3px #174f431a}.input-with-action{align-items:center;gap:8px;display:flex}.speak-button{background:var(--green-soft);cursor:pointer;border:0;border-radius:50%;flex:0 0 42px;height:42px}.sticky-actions{z-index:3;background:#f7f4eceb;justify-content:flex-end;align-items:center;gap:12px;padding:18px 0;display:flex;position:sticky;bottom:0}.form-error{color:var(--red);text-align:center;font-weight:700}.list-toolbar{justify-content:space-between;align-items:center;gap:16px;margin-bottom:25px;display:flex}.search-box{background:var(--surface);border:1px solid var(--line);border-radius:999px;flex:0 480px;align-items:center;gap:9px;padding:0 16px;display:flex}.search-box input{background:0 0;border:0;padding-left:0}.result-count{color:var(--muted);font-size:.9rem}.vocabulary-grid,.basic-card-grid{gap:16px;display:grid}.basic-list-card{background:var(--surface);border:1px solid var(--line);border-radius:4px 20px;grid-template-columns:1fr 1fr 180px;display:grid;overflow:hidden}.basic-side{min-width:0;padding:26px 28px}.basic-side.answer-side{border-left:1px solid var(--line)}.basic-side>span{color:var(--coral);letter-spacing:.12em;text-transform:uppercase;font-size:.7rem;font-weight:850}.basic-side p{overflow-wrap:anywhere;white-space:pre-wrap;margin:10px 0 0;line-height:1.6}.vocabulary-card{background:var(--surface);border:1px solid var(--line);border-radius:4px 20px;grid-template-columns:1fr 180px;display:grid;overflow:hidden}.vocabulary-main{padding:26px 30px}.word-title{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.word-title>div{flex-wrap:wrap;align-items:baseline;gap:12px;display:flex}.word-title h2{margin:0;font-size:2rem}.word-title span{color:var(--muted)}.primary-meaning{margin:10px 0 18px;font-size:1.07rem}.family-chips{flex-wrap:wrap;gap:7px;display:flex}.family-chips span{background:var(--green-soft);border-radius:999px;padding:6px 10px;font-size:.78rem}.family-chips b{margin-right:3px}.level-panel{background:#eef1eb;flex-direction:column;justify-content:center;align-items:center;padding:20px;display:flex}.level-panel>span{color:var(--muted);text-transform:uppercase;font-size:.72rem;font-weight:800}.level-control{align-items:center;gap:10px;margin:12px 0 5px;display:flex}.level-control button{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:50%;width:30px;height:30px}.level-control strong{font-family:Georgia,serif;font-size:2rem}.level-control small{color:var(--muted);font-family:inherit;font-size:.75rem}.reset-link{color:var(--muted);cursor:pointer;background:0 0;border:0;font-size:.75rem;text-decoration:underline}.family-details{border-top:1px solid var(--line);grid-column:1/-1;gap:12px;padding:22px 30px;display:grid}.family-detail{border-left:3px solid var(--mint);padding:8px 15px}.family-detail>div{gap:8px;display:flex}.family-detail>div span{color:var(--muted);font-size:.8rem}.family-detail p{margin:5px 0}.family-detail .muted{color:var(--muted);font-size:.85rem}.family-detail blockquote{color:var(--muted);margin:10px 0 0}.family-detail blockquote small{margin-top:4px;display:block}.card-actions{border-top:1px solid var(--line);grid-column:1/-1;justify-content:flex-end;gap:12px;padding:9px 20px;display:flex}.empty-state{text-align:center;border:1px dashed #aab3ad;border-radius:4px 30px;padding:80px 25px}.empty-state>span{background:var(--green-soft);border-radius:50%;place-items:center;width:70px;height:70px;margin:0 auto 25px;font-family:Georgia,serif;display:grid}.empty-state h2{margin-bottom:10px}.empty-state p{color:var(--muted)}.empty-state .button{margin-top:14px}.review-page{max-width:860px;padding-top:45px}.review-setup,.review-complete{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);text-align:center;border-radius:4px 34px;max-width:520px;margin:0 auto;padding:45px}.setup-illustration{justify-content:center;align-items:center;margin-bottom:32px;display:flex}.setup-illustration span{background:var(--green-soft);border-radius:50%;place-items:center;width:70px;height:70px;font-family:Georgia,serif;font-size:1.25rem;display:grid}.setup-illustration span:last-child{background:#fbe5a7}.setup-illustration i{color:var(--coral);z-index:1;margin:0 -5px;font-size:1.5rem}.review-setup>p,.review-complete>p{color:var(--muted);line-height:1.55}.review-setup>label{text-transform:uppercase;margin:30px 0 10px;font-size:.78rem;font-weight:800;display:block}.review-filter{border:0;grid-template-columns:repeat(3,1fr);gap:7px;margin:28px 0 0;padding:0;display:grid}.review-filter legend{text-transform:uppercase;width:100%;margin-bottom:10px;font-size:.72rem;font-weight:850}.review-filter label{cursor:pointer}.review-filter input{opacity:0;width:1px;height:1px;position:absolute}.review-filter span{border:1px solid var(--line);border-radius:999px;padding:9px 6px;font-size:.72rem;font-weight:750;display:block}.review-filter input:checked+span{background:var(--green);border-color:var(--green);color:#fff}.review-filter input:disabled+span{cursor:not-allowed;opacity:.35}.size-picker{justify-content:center;align-items:center;margin-bottom:25px;display:flex}.size-picker button{border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:50%;width:38px;height:38px}.size-picker input{color:var(--ink);text-align:center;background:0 0;border:0;width:90px;font-family:Georgia,serif;font-size:2.3rem}.review-progress-row{color:var(--muted);grid-template-columns:auto 1fr auto;align-items:center;gap:15px;margin-bottom:18px;font-size:.78rem;display:grid}.review-progress{background:#dfe3dc;border-radius:99px;height:5px;overflow:hidden}.review-progress span{background:var(--coral);height:100%;transition:width .25s;display:block}.review-card{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);cursor:grab;touch-action:pan-y;-webkit-user-select:none;user-select:none;will-change:transform, opacity;border-radius:4px 38px;min-height:460px;padding:35px 42px;transition:transform .24s cubic-bezier(.2,.8,.2,1),opacity .22s,box-shadow .18s;position:relative}.review-card:active{cursor:grabbing}.review-card.is-dragging{transition:none}.review-card.drag-left{box-shadow:-18px 20px 55px #b8483d2e}.review-card.drag-right{box-shadow:18px 20px 55px #174f432e}.review-card:before,.review-card:after{letter-spacing:.1em;opacity:0;pointer-events:none;z-index:2;border:3px solid;border-radius:8px;padding:8px 11px;font-size:.78rem;font-weight:900;transition:opacity .1s;position:absolute;top:32px}.review-card:before{color:var(--red);content:"RELEARN";left:30px;transform:rotate(-8deg)}.review-card:after{color:var(--green);content:"I KNOW IT";right:30px;transform:rotate(8deg)}.review-card.drag-left:before,.review-card.drag-right:after{opacity:1}.prompt-label{color:var(--coral);letter-spacing:.15em;text-transform:uppercase;font-size:.72rem;font-weight:850}.review-prompt{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:245px;display:flex}.review-prompt h2{overflow-wrap:anywhere;margin-bottom:15px;font-size:clamp(2.2rem,7vw,4rem)}.review-prompt>div{color:var(--muted);align-items:center;gap:10px;display:flex}.reveal-button{border:0;border-bottom:1px solid var(--green);cursor:pointer;background:0 0;margin:35px auto 0;padding:8px 2px;font-weight:750;display:block}.review-answer{border-top:1px solid var(--line);padding-top:22px;animation:.25s reveal}@keyframes reveal{0%{opacity:0;transform:translateY(8px)}}.review-answer>span{color:var(--muted);text-transform:uppercase;font-size:.72rem;font-weight:800}.review-answer h3{margin:8px 0 18px;font-family:Georgia,serif;font-size:2rem}.review-family{gap:12px;max-height:220px;display:grid;overflow:auto}.review-family p{margin:0 0 4px}.review-family p span{color:var(--muted);font-size:.78rem}.review-family small{color:var(--muted);line-height:1.5}.swipe-actions{grid-template-columns:1fr 1fr;gap:14px;margin-top:22px;display:grid}.swipe-actions button{cursor:pointer;background:0 0;border-radius:999px;justify-content:space-between;align-items:center;min-height:62px;padding:5px 20px;display:flex}.swipe-actions button:disabled{cursor:wait;opacity:.45}.swipe-actions .relearn{color:var(--red);border:1px solid #d89a91}.swipe-actions .known{color:var(--green);border:1px solid #86b8a2}.swipe-actions button>span{font-size:1.5rem}.swipe-actions small{opacity:.7;font-size:.68rem;font-weight:500;display:block}.reveal-hint{color:var(--muted);text-align:center;margin-top:18px;font-size:.8rem}.complete-mark{background:var(--green-soft);border-radius:50%;place-items:center;width:78px;height:78px;margin:0 auto 25px;font-size:2rem;display:grid}.review-complete h2{font-size:3rem}.review-complete .hero-actions{justify-content:center}.review-empty{max-width:600px;margin:0 auto}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (max-width:760px){.site-header{padding:17px 18px}.brand>span:last-child{display:none}nav{gap:0}nav a{padding:9px;font-size:.8rem}nav .nav-review{padding-inline:13px}.logout-button{padding-inline:5px}.login-page{padding:18px}.login-card{padding:34px 25px}.page-shell{padding:45px 18px 75px}.hero{padding:35px 0 55px}.stats-grid,.flow-panel,.add-landing,.creation-options{grid-template-columns:1fr}.creation-option{min-height:280px}.stat-card{min-height:165px}.stat-card strong{font-size:3.5rem}.flow-panel{gap:25px;margin-top:65px}.tip-card{display:none}.add-landing{min-height:0}.generate-row{border-radius:18px;flex-direction:column;align-items:stretch;gap:8px}.generate-row input{min-height:55px}.split-heading{align-items:flex-start;gap:20px}.field-grid.two{grid-template-columns:1fr}.headword-card{flex-direction:column;align-items:stretch}.ipa-field{width:100%}.editor-card{padding:20px}.section-heading{align-items:flex-start;gap:15px}.vocabulary-card,.basic-list-card{grid-template-columns:1fr}.basic-side.answer-side{border-left:0;border-top:1px solid var(--line)}.level-panel{border-top:1px solid var(--line);flex-direction:row;gap:18px}.level-control{margin:0}.review-card{min-height:430px;padding:28px 24px}.review-setup,.review-complete{padding:35px 22px}.swipe-actions{gap:8px}.swipe-actions button{padding:5px 12px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
