@charset "UTF-8";
:root{--paper:#f7f5f0;--card:#fffefa;--ink:#282922;--muted:#74766a;--line:#dedfd4;--green:#394b3b;--gold:#a97a3d;--serif:Georgia,"Noto Serif KR","AppleMyungjo",serif}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;line-height:1.65}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--gold);outline-offset:5px}[hidden]{display:none!important}.skip{position:fixed;top:-100px;left:20px;background:white;padding:12px;z-index:10}.skip:focus{top:10px}
.topbar{max-width:1120px;margin:auto;padding:23px 32px;display:flex;align-items:center;justify-content:space-between;gap:15px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:13px;text-decoration:none;font-family:var(--serif);font-size:19px;font-weight:700;white-space:nowrap}.brand-symbol{display:grid;place-items:center;background:var(--green);color:#fff;width:39px;height:45px;font-size:23px}.brand small{display:block;font-family:inherit;font-size:10px;letter-spacing:2px;font-weight:400;color:var(--muted)}.header-actions{display:flex;align-items:center;gap:18px}.badge,.eyebrow{font-size:11px;font-weight:700;letter-spacing:1.8px}.badge{background:#e8ebdf;color:var(--green);border-radius:20px;padding:5px 11px;white-space:nowrap;letter-spacing:.5px}.text-button{background:none;border:0;color:var(--green);padding:9px 0;text-decoration:underline;text-underline-offset:4px;font-size:13px}.eyebrow{color:var(--gold);margin:0 0 15px}.muted,.help{color:var(--muted)}.help{font-size:13px}.notice{font-size:13px;background:#e9ece2;padding:15px 19px;border-radius:5px;line-height:1.8}.status{max-width:1000px;margin:0 auto 95px;padding:0 24px;font-size:13px;color:var(--green)}
main{max-width:1056px;margin:0 auto;padding:42px 32px 24px;min-height:65vh}h1,h2,h3,p{overflow-wrap:anywhere}h1,h2,h3{line-height:1.35}h1{font-family:var(--serif);font-size:40px;font-weight:500;letter-spacing:-1.6px;margin:0 0 22px}h2{font-size:23px;font-weight:600;margin:0 0 16px;letter-spacing:-.7px}h3{font-size:19px;margin:0 0 8px}p{margin:0 0 16px}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:13px 23px;background:var(--green);color:white;border:1px solid var(--green);border-radius:5px;text-decoration:none;font-weight:600;font-size:14px;min-height:48px}.button.secondary{background:transparent;color:var(--green);border-color:#b9c1b3}.button.full{width:100%}.button:hover{filter:brightness(.94)}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}.section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:35px 0 18px}.section-heading h2{margin:0}.page-intro{margin-bottom:32px}.page-intro h1{font-size:34px}.page-intro p:last-child{color:var(--muted)}
.login{display:grid;grid-template-columns:.9fr 1.1fr;gap:64px;align-items:center;padding:45px 0}.login-copy h1{font-size:49px;line-height:1.45}.login-copy>p:not(.eyebrow){color:var(--muted)}.login-copy .footnote{margin-top:28px;font-size:12px}.login-options{display:grid;gap:16px}.role-card{padding:26px;background:var(--card);border:1px solid var(--line);border-radius:9px}.role-card.premium{border-color:#7e9273;background:#edf0e7}.role-card p{font-size:14px;color:var(--muted)}.role-card h2{font-family:var(--serif);font-size:26px}.role-card ul{padding-left:18px;margin:0 0 22px;font-size:14px}.role-card li{margin-bottom:6px}.role-top{display:flex;justify-content:space-between;align-items:center;gap:12px}.role-top .badge{font-size:10px}.login-footer{border-top:1px solid var(--line);padding:22px 0;font-size:12px;color:var(--muted);display:flex;gap:20px;justify-content:space-between}
.hero{display:grid;grid-template-columns:1.25fr .75fr;align-items:center;gap:40px;padding:38px 42px;background:#e9ede3;border-radius:8px;min-height:330px}.hero h1{font-size:38px}.hero .description{max-width:480px;font-size:15px;color:#626a5b}.cover{background:var(--green);border-radius:2px 8px 8px 2px;box-shadow:9px 13px 20px #35423522,inset 7px 0 0 #223a3030;color:#f7f3df;padding:24px 24px 28px;min-height:245px;width:175px;display:flex;flex-direction:column;justify-content:space-between;position:relative}.hero .cover{margin:auto;transform:rotate(-5deg)}.cover small{font-size:8px;letter-spacing:2px;line-height:1.8;color:#c5cbb9}.cover strong{font-family:var(--serif);font-size:28px;font-weight:500;letter-spacing:2px}.cover em{font-family:Georgia,serif;font-size:17px;font-style:normal;color:#e2dcc4}.cover>span{font-size:10px;border-top:1px solid #c1c6ae55;padding-top:15px}.book-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.book-card{border:1px solid var(--line);border-radius:7px;background:var(--card);text-align:left;padding:22px;color:var(--ink);width:100%}.book-card .cover{min-height:186px;width:135px;margin:3px auto 25px;padding:20px}.book-card .cover strong{font-size:23px}.book-card h3{font-size:18px}.book-card p{font-size:13px;color:var(--muted);margin:4px 0}.book-card .card-link{display:block;margin-top:15px;font-size:13px;color:var(--green);font-weight:600}.book-card:hover{border-color:#8b9c7d}.search{display:block;width:100%;padding:13px 16px;background:var(--card);border:1px solid #bdc4b5;border-radius:5px;margin-bottom:24px}.empty{padding:35px;background:var(--card);border:1px dashed var(--line);border-radius:6px;color:var(--muted)}
.detail-header{display:flex;gap:42px;align-items:center;margin:20px 0 32px}.detail-header h1{font-size:38px}.detail-header .cover{flex:none;width:140px;min-height:200px;padding:20px}.detail-header .cover strong{font-size:23px}.detail-header .description{max-width:570px;color:var(--muted)}.chapter-list{border-top:1px solid var(--line)}.chapter-row{display:flex;align-items:center;justify-content:space-between;gap:22px;width:100%;text-align:left;background:transparent;border:0;border-bottom:1px solid var(--line);padding:21px 6px;color:var(--ink)}.chapter-row:hover{background:#eeeee5}.chapter-name{display:flex;gap:20px;align-items:center}.chapter-number{font-family:var(--serif);font-size:21px;color:var(--muted);min-width:28px}.chapter-name strong{display:block;font-size:16px;font-weight:500}.chapter-name small{display:block;color:var(--muted);font-size:12px;margin-top:5px}.chapter-state{font-size:12px;white-space:nowrap;color:var(--green)}.chapter-state.locked{color:#8a7b61}.quota{border-left:3px solid var(--gold);padding:12px 17px;background:#efeee4;margin-bottom:23px;font-size:14px}.paywall{max-width:540px;margin:65px auto;text-align:center;padding:35px 25px;border:1px solid var(--line);border-radius:8px;background:var(--card)}.paywall h1{font-size:29px}.paywall .actions{justify-content:center}.reader{max-width:700px;margin:20px auto}.reader-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px;gap:15px}.reader h1{font-size:35px;line-height:1.5}.reader .background{padding:22px 25px;border-left:2px solid var(--gold);background:#efeee7;color:#646657;margin:30px 0}.reader .prose{font-family:var(--serif);font-size:21px;line-height:2.1;word-break:keep-all}.reader .prose p{margin-bottom:25px}.reader .explanation{border-top:1px solid var(--line);padding-top:24px;margin-top:30px}.reader .source{font-size:12px;color:var(--muted);margin-top:30px}.reader .actions{justify-content:space-between;border-top:1px solid var(--line);padding-top:26px}.reader .complete{color:var(--green);font-size:13px}.account-card{padding:30px;background:var(--card);border:1px solid var(--line);border-radius:7px;margin-bottom:22px}.account-card dl{display:grid;grid-template-columns:115px 1fr;gap:12px;margin:20px 0}.account-card dt{color:var(--muted)}.account-card dd{margin:0}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(680px,100%);display:grid;grid-template-columns:repeat(4,1fr);background:#fffefbf2;border:1px solid var(--line);border-bottom:0;border-radius:14px 14px 0 0;padding:9px 10px max(10px,env(safe-area-inset-bottom));box-shadow:0 -5px 25px #23342308;z-index:5;backdrop-filter:blur(12px)}.bottom-nav button{background:none;border:0;color:#87897c;display:flex;flex-direction:column;gap:2px;align-items:center;font-size:11px;min-height:48px}.bottom-nav button>span{font-family:Georgia,serif;font-size:23px;line-height:1.1}.bottom-nav button[aria-current=page]{color:var(--green);font-weight:700}.loading{padding:50px 0}
@media(max-width:700px){.topbar{padding:17px 20px}.brand{font-size:17px}.header-actions{gap:10px}.text-button{font-size:12px}.badge{font-size:10px;padding:4px 9px}main{padding:28px 20px 20px}h1{font-size:32px}.login{grid-template-columns:1fr;gap:22px;padding:8px 0 25px}.login-copy h1{font-size:35px;margin-bottom:15px}.login-copy h1 br{display:none}.login-copy .footnote{margin-top:15px}.role-card{padding:21px}.role-card h2{font-size:24px;margin-bottom:10px}.role-card ul{margin-bottom:16px}.login-footer{display:block}.login-footer>a{display:inline-block;margin-top:9px}.hero{gap:18px;padding:27px 23px;min-height:290px;grid-template-columns:1fr 115px}.hero h1{font-size:27px;letter-spacing:-1px}.hero .description{font-size:13px}.hero .cover{width:100px;min-height:163px;padding:17px 12px}.hero .cover strong{font-size:20px}.hero .cover em{font-size:13px}.hero .cover small{font-size:6px}.hero .cover>span{font-size:8px}.hero .button{padding:10px 13px;font-size:12px}.book-grid{grid-template-columns:repeat(2,1fr);gap:15px}.book-card{padding:17px}.book-card .cover{width:105px;min-height:158px;padding:17px}.book-card .cover strong{font-size:20px}.book-card .cover em{font-size:13px}.detail-header{gap:23px;align-items:flex-start}.detail-header h1{font-size:29px}.detail-header .cover{width:95px;min-height:154px;padding:14px}.detail-header .cover strong{font-size:20px}.detail-header .cover em{font-size:12px}.detail-header .cover small{font-size:6px}.detail-header .cover>span{font-size:8px}.detail-header .description{font-size:13px}.chapter-row{gap:12px}.chapter-name{gap:12px}.chapter-name strong{font-size:14px}.chapter-state{font-size:11px}.reader h1{font-size:28px}.reader .prose{font-size:19px}.reader .background{padding:17px}.account-card{padding:22px}.page-intro h1{font-size:30px}.status{padding:0 20px}.section-heading h2{font-size:21px}}
@media(prefers-reduced-motion:no-preference){button,a{transition:background .15s,border-color .15s}}
h1,h2,h3{word-break:keep-all}
@media(max-width:700px){.login-footer>span{display:block}}
/* One consistent book proportion, regardless of title length. */
.cover,.book-card .cover,.detail-header .cover,.hero .cover{width:150px;height:210px;min-height:0;max-width:none;flex:0 0 150px;padding:18px 17px 18px 21px;display:grid;grid-template-rows:26px minmax(0,1fr) 25px;gap:12px;overflow:hidden;background:var(--cover-color,#394b3b);border-radius:2px 7px 7px 2px;box-shadow:6px 8px 15px #26342520,inset 5px 0 0 #0002,inset -2px 0 0 #fff2}
.cover:after{content:"";position:absolute;right:3px;top:7px;bottom:7px;width:2px;background:#fff2}.cover-titles{min-height:0;display:flex;flex-direction:column;justify-content:center;gap:10px;overflow:hidden}.cover strong,.book-card .cover strong,.detail-header .cover strong,.hero .cover strong{font-size:23px;line-height:1.35;letter-spacing:-.6px;word-break:keep-all;overflow-wrap:normal}.cover.long-title strong{font-size:19px}.cover em,.book-card .cover em,.detail-header .cover em,.hero .cover em{font-size:12px;line-height:1.35;letter-spacing:0;word-break:normal;color:#fff9}.cover small,.hero .cover small,.detail-header .cover small{font-size:6px;letter-spacing:1.4px;line-height:1.5;color:#fffc}.cover>span,.hero .cover>span,.detail-header .cover>span{font-size:9px;line-height:1.4;align-self:end;color:#fffd;letter-spacing:0}.cover.tone-pine{--cover-color:#365248}.cover.tone-wine{--cover-color:#74494b}.cover.tone-ocean{--cover-color:#365569}.cover.tone-sage{--cover-color:#626e4c}.cover.tone-ochre{--cover-color:#8a663e}.cover.tone-plum{--cover-color:#62506c}.hero .cover{transform:rotate(-4deg)}.book-card{display:flex;flex-direction:column;align-items:flex-start;min-width:0}.book-card .cover{margin:3px auto 24px;flex-shrink:0}.book-card h3{font-size:18px}.book-card .card-link{margin-top:auto}.book-grid{align-items:stretch}.detail-header .cover{flex-basis:150px}
.auth-card{background:var(--card);border:1px solid var(--line);padding:30px;border-radius:12px}.auth-card h2{font-family:var(--serif);font-weight:500;font-size:27px;margin:25px 0}.auth-card label:not(.password-toggle),.note-editor>label{display:block;margin:17px 0 7px;font-size:14px;font-weight:600}.auth-card input:not([type=checkbox]),.note-editor textarea,.notebook-filters select{width:100%;padding:12px 14px;border:1px solid #cbd0c3;border-radius:5px;background:#fffefa;color:var(--ink);font:inherit}.auth-card input:not([type=checkbox]){height:49px;font-size:16px}.password-toggle{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);margin:10px 0 20px}.auth-card .help{margin-top:18px;font-size:12px}.auth-card details p{margin-top:10px}.trial-benefits{display:flex;flex-wrap:wrap;gap:9px;margin:22px 0}.trial-benefits span{border:1px solid var(--line);padding:6px 10px;border-radius:30px;font-size:12px;color:var(--green)}#auth-error{font-size:13px;color:#854739;min-height:20px}.journal-entry{display:flex;align-items:center;justify-content:space-between;gap:20px;width:100%;border:1px solid var(--line);background:#eeede3;border-radius:8px;padding:25px 28px;margin:30px 0;text-align:left;color:var(--green)}.journal-entry>span:first-child{display:flex;flex-direction:column;gap:5px}.journal-entry small{font-size:9px;letter-spacing:1.7px}.journal-entry strong{font-family:var(--serif);font-size:24px;font-weight:500}.journal-entry span span{font-size:13px;color:var(--muted)}.journal-entry>span:last-child{font-size:26px}.reader-tools{display:flex;justify-content:space-between;gap:14px;align-items:center;border-bottom:1px solid var(--line);padding-bottom:20px;margin:25px 0}.language-switch{display:flex;background:#eaece2;border-radius:25px;padding:4px}.language-switch button{border:0;border-radius:22px;padding:8px 16px;font-size:13px;color:var(--muted);background:none;min-height:40px}.language-switch button[aria-pressed=true]{background:var(--green);color:white}.reader .prose.english{font-family:Georgia,serif;font-size:22px;line-height:1.9;word-break:normal}.reader details summary{cursor:pointer;min-height:36px;font-weight:500}.reader details p{margin-top:13px}.reader details.background{margin:22px 0;padding:15px 20px}.reader details.source{border-top:1px solid var(--line);padding:18px 0;margin-top:20px}.reader details.explanation{padding-top:20px}.note-editor{margin-top:40px;padding:27px;background:#f0eee4;border:1px solid var(--line);border-radius:9px}.note-editor h2{font-family:var(--serif);font-size:24px;font-weight:500}.note-editor textarea{font-size:16px;line-height:1.8;resize:vertical;min-height:86px}.note-editor .actions{justify-content:flex-start;border:0;padding:0}.note-editor .help{font-size:12px;margin-top:17px}.note-feedback{min-height:20px;margin:15px 0 0;color:var(--green);font-size:13px;line-height:1.7}.notebook-filters{display:grid;grid-template-columns:1fr 190px;gap:16px;margin:24px 0}.notebook-filters label{font-size:12px;color:var(--muted)}.notebook-filters .search,.notebook-filters select{display:block;margin:7px 0 0;min-height:48px;font-size:16px}.note-card{background:var(--card);border:1px solid var(--line);border-radius:9px;padding:28px;margin:18px 0}.note-card h2{font-size:22px;font-family:var(--serif);font-weight:500}.note-card blockquote{margin:20px 0;padding-left:18px;border-left:2px solid var(--gold);font-family:var(--serif);color:#686454;white-space:pre-wrap;overflow-wrap:anywhere}.note-body{white-space:pre-wrap;line-height:1.9}.note-card .actions{margin-top:0}.note-card .eyebrow{font-size:10px}.note-card .help{font-size:11px}
@media(max-width:700px){.cover,.book-card .cover,.detail-header .cover,.hero .cover{width:112px;height:157px;flex-basis:112px;min-height:0;padding:12px 12px 13px 16px;grid-template-rows:20px minmax(0,1fr) 19px;gap:7px}.cover strong,.book-card .cover strong,.detail-header .cover strong,.hero .cover strong{font-size:18px;line-height:1.35;letter-spacing:-.6px}.cover.long-title strong{font-size:16px}.cover em,.book-card .cover em,.detail-header .cover em,.hero .cover em{font-size:10px;line-height:1.25}.cover small,.hero .cover small,.detail-header .cover small{font-size:5px;letter-spacing:1px}.cover>span,.hero .cover>span,.detail-header .cover>span{font-size:7px}.cover-titles{gap:7px}.hero{grid-template-columns:minmax(0,1fr) 112px;gap:18px;padding:24px;min-height:280px}.hero h1{font-size:26px}.book-card{padding:15px 12px}.book-card h3{font-size:16px}.book-card>p{font-size:12px}.book-card .cover{margin-bottom:20px}.detail-header{gap:22px}.detail-header h1{font-size:27px}.auth-card{padding:23px}.trial-login{padding-top:8px}.trial-login .login-copy h1{font-size:35px}.trial-login .login-copy h1 br{display:block}.trial-benefits{margin:14px 0}.trial-benefits span{font-size:11px}.note-editor{padding:20px 16px;margin-top:30px}.note-editor h2{font-size:23px}.notebook-filters{grid-template-columns:1fr 120px;gap:10px}.note-card{padding:23px 20px}.journal-entry{padding:23px 20px}.journal-entry strong{font-size:22px}.reader-tools{gap:8px}.language-switch button{padding:8px 12px}.reader .prose.english{font-size:21px}.reader .prose{line-height:2}.account-card h2{font-size:21px;overflow-wrap:anywhere}.reader-top .text-button{max-width:78%}.header-actions{gap:10px}}
@media(max-width:370px){main{padding-left:16px;padding-right:16px}.hero{padding:20px 16px;gap:12px}.hero h1{font-size:23px}.hero .button{font-size:11px;padding:10px}.book-grid{gap:10px}.book-card{padding:12px 8px}.cover,.book-card .cover,.detail-header .cover,.hero .cover{width:102px;height:143px;flex-basis:102px}.hero{grid-template-columns:minmax(0,1fr) 102px}.notebook-filters{grid-template-columns:1fr}.topbar{padding:15px 16px}.brand{font-size:16px}}

/* Card stacks use height as their flex axis; retain the fixed book ratio. */
.book-card .cover{flex:0 0 auto}

/* Verified member and daily newsletter screens. */
.verification-card{max-width:560px;margin:32px auto}.auth-card form,.account-card form{display:grid;gap:12px}.auth-card input:not([type=checkbox]),.auth-card select,.account-card textarea{box-sizing:border-box;width:100%;padding:13px 15px;border:1px solid #c9c7bc;border-radius:10px;font:inherit;background:#fff;color:inherit}.auth-card input[type=checkbox],.account-card input[type=checkbox]{width:18px;height:18px;flex-shrink:0}.password-toggle{display:flex;align-items:flex-start;gap:8px;font-size:14px}.account-card textarea{resize:vertical;line-height:1.75}.auth-card h1{font-size:clamp(26px,5vw,40px)}.newsletter-reader{margin:45px auto 90px}.newsletter-reader .account-card{margin-top:40px}.customer-main{max-width:1200px;margin:45px auto;padding:0 24px}.customer-table{overflow-x:auto}.customer-table table{width:100%;border-collapse:collapse;font-size:14px}.customer-table th,.customer-table td{text-align:left;padding:15px 12px;border-bottom:1px solid #dcd9d0;white-space:nowrap}.customer-table th{background:#eeece5}.customer-private{display:inline-block;min-width:8ch}.customer-reveal{min-width:44px;padding:7px 2px}.customer-main .auth-card{max-width:480px}#news-verify{margin-top:20px}#news-status,#customer-status,#verify-message,#auth-error,#payment-message{min-height:24px;overflow-wrap:anywhere}button:disabled{cursor:default;opacity:.55}[hidden]{display:none!important}

/* Signup is a separate document reached from the login screen. */
.signup-page{max-width:560px;margin:32px auto}.signup-page .auth-back{display:inline-block;margin-bottom:28px}.signup-page h1{margin:12px 0 16px}.signup-entry{border-top:1px solid var(--line);margin-top:26px;padding-top:24px;text-align:center}.signup-entry p{font-size:14px;color:var(--muted);margin:0 0 14px}.auth-card>h2{margin-top:14px}.signup-page .auth-card>p.help{font-size:14px;line-height:1.7}@media(max-width:700px){.signup-page{margin:8px auto 32px}.signup-page .auth-back{margin-bottom:22px}}
.form-note{min-height:22px;margin:4px 0 0;font-size:14px;line-height:1.6;overflow-wrap:anywhere}.form-note:empty{min-height:0}.form-note[data-kind=ok]{color:var(--green)}.form-note[data-kind=error]{color:#854739}
/* 2026-09-27 signup: consents (전체 동의 + 필수 3 + 선택 2) and the skippable welcome questions. */
.auth-card .consents{display:grid;gap:10px;margin:8px 0 0;padding:14px 16px;border:1px solid var(--line);border-radius:10px;background:#fbfaf5}
.auth-card .consents label{display:flex;align-items:flex-start;gap:9px;margin:0;font-size:14px;font-weight:400;line-height:1.5;color:var(--ink)}
.auth-card .consents label span{flex:1;min-width:0}
.auth-card .consents label b{font-weight:600;color:var(--green)}
.auth-card .consents label a{flex-shrink:0;font-size:12px;color:var(--muted);text-decoration:underline;text-underline-offset:3px;padding:2px 0}
.auth-card .consents .consent-all{padding-bottom:10px;border-bottom:1px solid var(--line);font-weight:600}
.auth-card .consents .consent-all small{margin-left:6px;font-size:12px;font-weight:400;color:var(--muted)}
.welcome-card{max-width:560px;margin:32px auto}
.welcome-card .choice{border:0;margin:6px 0 10px;padding:0;min-width:0}
.welcome-card .choice legend{margin-bottom:10px;font-size:15px;font-weight:600;color:var(--ink)}
.welcome-card .chips{display:flex;flex-wrap:wrap;gap:8px}
.auth-card .chip{position:relative;display:block;margin:0;font-weight:400}
.auth-card .chip input{position:absolute;width:1px;height:1px;opacity:0;margin:0;padding:0;border:0}
.chip span{display:flex;flex-direction:column;gap:2px;min-width:92px;padding:10px 14px;border:1px solid var(--line);border-radius:10px;background:#fffefa;font-size:15px;font-weight:600;color:var(--ink);cursor:pointer}
.chip span small{font-size:12px;font-weight:400;color:var(--muted)}
.chip input:checked+span{background:var(--green);border-color:var(--green);color:#fff}
.chip input:checked+span small{color:#dfe6dc}
.chip input:focus-visible+span{outline:2px solid var(--gold);outline-offset:2px}
.welcome-card .text-button{margin-top:12px}
/* 2026-09-27 email-first signup: 1 이메일·약관 → 2 인증번호 → 3 비밀번호. */
.signup-steps{display:flex;gap:6px;list-style:none;margin:14px 0 18px;padding:0;counter-reset:none}
.signup-steps li{flex:1;display:flex;align-items:center;gap:6px;min-width:0;padding-top:8px;border-top:3px solid var(--line);font-size:12px;color:var(--muted);white-space:nowrap}
.signup-steps li b{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--line);color:var(--ink);font-size:11px;font-weight:600;flex-shrink:0}
.signup-steps li.done{border-top-color:var(--gold)}
.signup-steps li.done b{background:var(--gold);color:#fff}
.signup-steps li[aria-current=step]{border-top-color:var(--green);color:var(--ink);font-weight:600}
.signup-steps li[aria-current=step] b{background:var(--green);color:#fff}
/* Form controls (2026-09-27): one height, border and radius for every text field and select, so a select next to an input lines up exactly. Chevron is drawn with gradients: the page CSP blocks data: images. */
:root{--control-h:48px;--control-radius:10px;--control-line:#c9ccbf;--control-bg:#fffefa}
.search,.auth-card input:not([type=checkbox]):not([type=radio]),.account-card input:not([type=checkbox]):not([type=radio]),.auth-card select,.account-card select,.notebook-filters select,.explore-tools select,.flow-field>input,.flow-field>select{box-sizing:border-box;height:var(--control-h);min-height:var(--control-h);padding:0 14px;border:1px solid var(--control-line);border-radius:var(--control-radius);background-color:var(--control-bg);color:var(--ink);font:inherit;font-size:16px;line-height:normal;transition:border-color .15s,box-shadow .15s}
.auth-card select,.account-card select,.notebook-filters select,.explore-tools select,.flow-field>select{-webkit-appearance:none;appearance:none;width:100%;padding-right:40px;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background-image:linear-gradient(45deg,transparent 50%,var(--green) 50%),linear-gradient(135deg,var(--green) 50%,transparent 50%);background-position:calc(100% - 21px) 52%,calc(100% - 16px) 52%;background-size:5px 5px,5px 5px;background-repeat:no-repeat}
.auth-card select::-ms-expand,.account-card select::-ms-expand,.notebook-filters select::-ms-expand,.explore-tools select::-ms-expand,.flow-field>select::-ms-expand{display:none}
.search:hover,.auth-card input:not([type=checkbox]):not([type=radio]):hover,.account-card input:not([type=checkbox]):not([type=radio]):hover,.auth-card select:hover,.account-card select:hover,.notebook-filters select:hover,.explore-tools select:hover,.flow-field>input:hover,.flow-field>select:hover{border-color:#9aa68f}
.search:focus-visible,.auth-card input:not([type=checkbox]):not([type=radio]):focus-visible,.account-card input:not([type=checkbox]):not([type=radio]):focus-visible,.auth-card select:focus-visible,.account-card select:focus-visible,.notebook-filters select:focus-visible,.explore-tools select:focus-visible,.flow-field>input:focus-visible,.flow-field>select:focus-visible{outline:none;border-color:var(--green);box-shadow:0 0 0 3px #a97a3d40}
.search:disabled,.auth-card input:disabled,.auth-card select:disabled,.account-card select:disabled,.notebook-filters select:disabled,.explore-tools select:disabled,.flow-field>input:disabled,.flow-field>select:disabled{background-color:#f0efe8;color:var(--muted);cursor:default}
.search::placeholder,.auth-card input::placeholder,.flow-field>input::placeholder{color:#9a9c90}
select option{color:var(--ink);background:#fff}
.notebook-filters{align-items:end}.notebook-filters label{display:block;min-width:0}
.customer-table .customer-delete{color:#963e2e;min-height:36px}
.button.is-done:disabled{opacity:1;cursor:default;background:#e7efe5;border-color:var(--green);color:var(--green)}.note-feedback[data-kind=error],.complete[data-kind=error]{color:#854739}
.account-summary{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:24px 26px;margin:0 0 28px}.summary-name{font-size:22px;margin:0 0 14px}.summary-name strong{font-family:var(--serif);font-weight:500;font-size:26px}.account-summary dl,.info-list{margin:0}.info-row{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-top:1px solid var(--line)}.info-row:first-child{border-top:0}.info-row dt{color:var(--muted);font-size:14px;flex-shrink:0}.info-row dd{margin:0;text-align:right;font-weight:600;overflow-wrap:anywhere}.info-row dd small{display:block;font-weight:400;color:var(--muted);font-size:12px;margin-top:3px}
.menu-group{margin:0 0 26px}.menu-group h2{font-size:13px;letter-spacing:.5px;color:var(--muted);font-weight:600;margin:0 0 8px}.menu-group ul{list-style:none;margin:0;padding:0;background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden}.menu-group li+li{border-top:1px solid var(--line)}.menu-item{display:flex;align-items:center;gap:10px;width:100%;min-height:56px;padding:14px 20px;border:0;background:none;color:var(--ink);font-size:16px;text-align:left;text-decoration:none}.menu-item span{flex:1}.menu-item small{color:var(--muted);font-size:13px}.menu-item b{color:var(--muted);font-weight:400;font-size:20px}.menu-item:hover{background:#f3f2ea}
.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 20px;background:var(--card);border:1px solid var(--line);font-size:16px}.toggle-row:first-of-type{border-radius:12px 12px 0 0}.toggle-row+.toggle-row{border-top:0;border-radius:0 0 12px 12px}.toggle-row small{display:block;color:var(--muted);font-size:12px;margin-top:3px}.toggle-row input{width:22px;height:22px;flex-shrink:0;accent-color:var(--green)}
#password-form,.danger-zone{margin:0 0 22px}.danger-zone summary{cursor:pointer;font-weight:600;color:#854739;min-height:32px}.button.danger{background:#854739;border-color:#854739;color:#fff}
.prose{touch-action:manipulation}.quote-pill{position:fixed;left:50%;transform:translateX(-50%);bottom:92px;z-index:30;width:min(560px,calc(100% - 32px));display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--card);border:1px solid var(--green);border-radius:14px;box-shadow:0 8px 28px rgba(40,41,34,.18)}.quote-pill p{flex:1;margin:0;min-width:0;font-size:13px;line-height:1.5}.quote-pill b{display:block;color:var(--green);font-size:14px}.quote-pill span{display:block;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quote-pill div{display:flex;align-items:center;gap:8px;flex-shrink:0}.quote-pill .button{min-height:40px;padding:8px 14px;font-size:14px}
.menu-under{list-style:none;margin:10px 0 0;padding:0;background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden}.choice-row{border:0;margin:18px 0 6px;padding:0;display:flex;gap:18px;flex-wrap:wrap}.choice-row legend{font-size:14px;font-weight:600;margin-bottom:8px;padding:0}.choice-row label{display:flex;align-items:center;gap:6px;font-size:15px}.choice-row small{color:var(--muted)}.choice-row input{width:18px;height:18px;accent-color:var(--green)}
.news-complete{margin:30px 0 8px}.news-complete .text-button{display:inline-block;margin-top:6px}
/* 2026-09-28 my-page layout fixes: readable width, one-column info lists, stacked form fields, room above the bottom menu. */
.account-page{max-width:720px;margin:0 auto}.account-page>.text-button:first-child{display:inline-block;margin-bottom:14px}.account-page .page-intro{margin-bottom:22px}
.account-card dl.info-list,.account-summary dl{display:block;margin:0}.info-row dt{min-width:84px}.info-row dd{min-width:0}
form.account-card{display:grid;gap:8px}form.account-card h2{margin:0 0 6px;font-size:19px}form.account-card label:not(.password-toggle){display:block;margin:10px 0 0;font-size:14px;font-weight:600}form.account-card input:not([type=checkbox]):not([type=radio]){width:100%;box-sizing:border-box}form.account-card .password-toggle{margin:6px 0 4px}form.account-card .button{margin-top:6px}
.danger-zone form{display:grid;gap:8px;margin-top:12px}.danger-zone label:not(.password-toggle){display:block;font-size:14px;font-weight:600}
#platform-main{padding-bottom:calc(110px + env(safe-area-inset-bottom))}
@media(max-width:480px){.notebook-filters{grid-template-columns:1fr}.info-row{flex-wrap:wrap}.info-row dd{flex:1 1 60%}}
/* Admin customer table: one card per customer on phones instead of a sideways-scrolling table. */
@media(max-width:700px){.customer-table{overflow:visible}.customer-table table,.customer-table tbody,.customer-table tr,.customer-table td{display:block;width:100%}.customer-table thead{display:none}.customer-table tr{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:6px 14px;margin:0 0 12px}.customer-table td{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--line);white-space:normal;text-align:right;overflow-wrap:anywhere}.customer-table td:last-child{border-bottom:0}.customer-table td::before{content:attr(data-label);color:var(--muted);font-size:13px;text-align:left;flex-shrink:0}}
.audio-bar{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(84px + env(safe-area-inset-bottom));z-index:25;width:min(560px,calc(100% - 32px));display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--card);border:1px solid var(--green);border-radius:14px;box-shadow:0 8px 28px rgba(40,41,34,.18)}.audio-bar .button{min-height:40px;padding:8px 14px;font-size:14px;white-space:nowrap}.audio-bar .text-button{font-size:13px;white-space:nowrap}.audio-progress{flex:1;font-size:13px;color:var(--muted);text-align:center}.prose p.speaking{background:#efe8d8;border-radius:6px;box-shadow:0 0 0 6px #efe8d8}
.newsletter-reader~.audio-bar,body:not(:has(.bottom-nav:not([hidden]))) .audio-bar{bottom:calc(16px + env(safe-area-inset-bottom))}
.listen-button{display:flex;align-items:center;gap:10px;width:100%;min-height:52px;margin:0 0 22px;padding:12px 18px;border:1px solid var(--green);border-radius:12px;background:#eef1ea;color:var(--green);font:inherit;font-size:16px;font-weight:600;cursor:pointer}.listen-button span{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--green);color:#fff;font-size:12px}.listen-button small{margin-left:auto;font-weight:400;color:var(--muted);font-size:13px}.listen-button:disabled{opacity:.7}
.hero .next-up{margin:12px 0 0;font-size:13px;opacity:.9}
/* Admin insights (2026-09-29) */
.header-links{display:flex;gap:14px}.insights .insight-block{margin:34px 0}.insights h2{font-size:20px;margin:0 0 6px}.insights .help{margin:0 0 12px}
.stat-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}.stat-card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:4px}.stat-card span{font-size:13px;color:var(--muted)}.stat-card strong{font-size:26px;font-family:var(--serif);font-weight:500}.stat-card small{font-size:12px;color:var(--muted)}
.funnel{display:grid;gap:8px}.funnel-row{display:grid;grid-template-columns:110px 1fr 96px;align-items:center;gap:10px;font-size:14px}.funnel-bar{height:14px;border-radius:7px;background:linear-gradient(90deg,var(--green) var(--w,0%),#e6e7de var(--w,0%))}.funnel-num{text-align:right;color:var(--muted);font-size:13px}
.preparing{text-align:center;padding:40px 20px}.preparing strong{font-size:20px;color:var(--green)}
.preparing{text-align:center;padding:40px 20px}.preparing strong{font-size:20px;color:var(--green)}
.brand-symbol{font-family:var(--serif);font-weight:600;font-size:25px}
/* Browsing (2026-09-29): categories, sorting, 더 보기, progress on book cards, library tabs */
.category-chips{display:flex;gap:8px;overflow-x:auto;padding:4px 0 10px;margin:0 0 12px;scrollbar-width:none}.category-chips::-webkit-scrollbar{display:none}
.chip{flex-shrink:0;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:999px;padding:8px 14px;font:inherit;font-size:14px;min-height:38px;cursor:pointer}.chip.active,.chip[aria-pressed=true]{background:var(--green);border-color:var(--green);color:#fff}
.explore-tools{display:grid;grid-template-columns:1fr 150px;gap:10px;margin:0 0 6px}.explore-tools select{min-height:48px}
#explore-more{margin:18px 0 8px}
.book-meta{font-size:13px;color:var(--muted)}.badge.new{background:#f3e6cf;color:#7a5423}
.book-progress{display:flex;align-items:center;gap:8px;margin:6px 0 0;font-size:12px;color:var(--green)}.book-progress progress{flex:1;height:6px;appearance:none;-webkit-appearance:none;border:0;border-radius:3px;background:#e6e7de;overflow:hidden}.book-progress progress::-webkit-progress-bar{background:#e6e7de;border-radius:3px}.book-progress progress::-webkit-progress-value{background:var(--green);border-radius:3px}.book-progress progress::-moz-progress-bar{background:var(--green);border-radius:3px}
.finished-badge{display:inline-block;background:var(--green);color:#fff;border-radius:999px;padding:2px 10px;font-size:12px}
.library-tabs{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:26px 0 14px}.library-tabs .help{margin-left:auto}
.home-chips{margin-top:-6px}
@media(max-width:480px){.explore-tools{grid-template-columns:1fr}}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* Book card v2 (2026-09-29): status on the cover, one text column with fixed rhythm */
.book-card.v2{padding:16px 14px 18px;align-items:stretch;gap:0}
.book-card.v2 .card-cover{display:flex;justify-content:center;padding:4px 0 0;margin:0 0 16px}
.book-card.v2 .cover-wrap{position:relative;display:inline-block}
.book-card.v2 .cover{margin:0!important}
.book-card.v2 .cover-badge,.book-card.v2 .new-badge{position:absolute;top:10px;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:700;line-height:1.5;letter-spacing:.2px;box-shadow:0 2px 8px rgba(38,52,37,.22);white-space:nowrap}
.book-card.v2 .cover-badge{right:-8px;background:var(--green);color:#fff}
.book-card.v2 .new-badge{left:-8px;background:#f3e6cf;color:#7a5423}
.book-card.v2 .cover-progress{position:absolute;left:6px;right:6px;bottom:-12px;width:auto;height:4px;appearance:none;-webkit-appearance:none;border:0;border-radius:2px;background:#e3e4da;overflow:hidden}
.book-card.v2 .cover-progress::-webkit-progress-bar{background:#e3e4da;border-radius:2px}
.book-card.v2 .cover-progress::-webkit-progress-value{background:var(--green);border-radius:2px}
.book-card.v2 .cover-progress::-moz-progress-bar{background:var(--green);border-radius:2px}
.book-card.v2 .card-body{display:flex;flex-direction:column;gap:3px;min-width:0;padding:0 2px}
.book-card.v2 .card-title{font-size:16px;font-weight:700;line-height:1.35;color:var(--ink);letter-spacing:-.2px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:keep-all}
.book-card.v2 .card-author{font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.book-card.v2 .card-meta{margin-top:6px;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.book-card.v2 .card-meta{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.book-card.v2 .card-read{font-size:12px;color:var(--green);font-weight:700;font-variant-numeric:tabular-nums}
@media(min-width:701px){.book-card.v2{padding:20px 18px 22px}.book-card.v2 .card-title{font-size:17px}}
@media(hover:none){.book-card:hover{border-color:var(--line)}}
.insights .insight-sub{font-size:15px;margin:22px 0 10px;color:var(--ink)}
/* Admin customer list/detail (2026-09-29) */
.customer-list .customer-row{cursor:pointer}.customer-list .customer-row:hover td{background:#f4f3ee}.customer-list a{color:var(--green);font-weight:700;text-underline-offset:3px}
.customer-head h1{font-size:clamp(22px,4vw,30px);overflow-wrap:anywhere;margin:14px 0 8px}.customer-stage{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 6px}
.customer-facts{display:grid;grid-template-columns:max-content 1fr;gap:10px 18px;margin:0;font-size:14px}.customer-facts dt{color:var(--muted)}.customer-facts dd{margin:0;overflow-wrap:anywhere}
.customer-danger{border-top:1px solid var(--line);padding-top:22px}.customer-danger .customer-delete{color:#963e2e;border-color:#d9b3aa}
@media(max-width:480px){.customer-facts{grid-template-columns:1fr;gap:2px}.customer-facts dd{margin-bottom:10px}}
.customer-log{list-style:none;margin:0;padding:0;font-size:14px}.customer-log li{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;padding:9px 0;border-bottom:1px solid var(--line)}.customer-log time{color:var(--muted);font-variant-numeric:tabular-nums;min-width:82px}.customer-log span{color:var(--muted);overflow-wrap:anywhere}
