:root{color-scheme:light;--bg:#f8f5ed;--ink:#1e2723;--muted:#696e66;--accent:#eb5a39;--card:#e6e7d9;--line:#d6d7ca;--focus:#914619;--quote-decoration:#ced2c3;--byline:#676f63;--button-hover:#b83f24;--button-text:#101714;font-family:Arial,Helvetica,sans-serif;font-synthesis:none}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased}button{font:inherit}a{color:inherit}.page-shell{max-width:1540px;margin:auto;padding:0 clamp(22px,6.5vw,108px)}.topbar{min-height:110px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:22px}.brand{text-decoration:none;font-weight:800;letter-spacing:.06em;font-size:13px;display:inline-flex;align-items:center;gap:11px}.brand-mark{font-size:33px;color:var(--accent);line-height:1}.edition,.eyebrow,.quote-label,.quote-counter,.hint,.about-marker,.footer,.generate-button{font-size:11px;letter-spacing:.14em;font-weight:700}.edition{color:var(--muted);text-align:right}.intro{padding:clamp(60px,8vw,110px) 0 clamp(54px,6vw,80px);max-width:940px}.eyebrow{display:flex;align-items:center;gap:12px;color:var(--accent);margin-bottom:25px}.eyebrow-line{width:30px;border-top:2px solid var(--accent)}h1,h2,.quote-text{font-family:Georgia,'Times New Roman',serif;font-weight:400}h1{font-size:clamp(68px,9.4vw,147px);line-height:.91;letter-spacing:-.075em;margin:0 0 30px}h1 em,h2 em{font-weight:400}.intro-copy{max-width:545px;color:var(--muted);line-height:1.8;font-size:16px;margin:0}.quote-section{padding-bottom:90px}.quote-label{display:flex;align-items:center;gap:12px;margin-bottom:14px;color:var(--muted)}.small-circle{width:7px;height:7px;border-radius:50%;background:var(--accent)}.quote-counter{margin-left:auto}.quote-card{min-height:345px;background:var(--card);padding:clamp(28px,5vw,68px);display:flex;flex-direction:column;position:relative;overflow:hidden}.big-quote{position:absolute;top:2px;right:46px;font:210px/1 Georgia,serif;color:var(--quote-decoration);pointer-events:none}.quote-text{position:relative;z-index:1;font-size:clamp(28px,4vw,58px);letter-spacing:-.04em;line-height:1.18;max-width:900px;margin:auto 0;overflow-wrap:break-word}.quote-card-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:45px}.quote-byline{font-family:Georgia,serif;font-size:15px;font-style:italic;color:var(--byline)}.quote-symbol{font-size:30px;color:var(--accent)}.action-row{display:flex;align-items:center;gap:24px;flex-wrap:wrap;margin-top:22px}.generate-button{background:var(--accent);color:var(--button-text);border:2px solid var(--accent);cursor:pointer;padding:22px 27px;display:flex;gap:13px;align-items:center;justify-content:center;transition:background-color .16s,border-color .16s}.generate-button:hover{background:var(--button-hover);border-color:var(--button-hover)}.generate-button span{font-size:21px;line-height:0}.hint{color:var(--muted)}kbd{border:1px solid var(--line);padding:5px 7px;margin:0 3px;font:inherit;letter-spacing:0}.about{border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 2fr;gap:45px;padding:65px 0 100px}.about-marker{color:var(--accent);padding-top:8px}.about h2{margin:0 0 24px;line-height:1.03;letter-spacing:-.05em;font-size:clamp(38px,5vw,73px)}.about p{max-width:620px;line-height:1.9;color:var(--muted);margin:0}.footer{border-top:1px solid var(--line);padding:30px 0 45px;display:flex;justify-content:space-between;gap:22px;color:var(--muted);font-size:9px;line-height:1.7}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}:focus-visible{outline:3px solid var(--focus);outline-offset:4px}
@media(max-width:760px){.topbar{min-height:86px}.edition{display:none}.intro{padding-top:65px}.quote-card{min-height:300px}.big-quote{font-size:140px;right:20px}.about{grid-template-columns:1fr;gap:20px;padding:50px 0 80px}.footer{flex-direction:column;gap:8px}.hint{font-size:10px}}
@media(max-width:420px){h1{font-size:clamp(54px,15vw,72px)}.intro-copy{font-size:15px}.generate-button{width:100%}.quote-card{padding:25px}.quote-text{font-size:29px}.quote-byline{font-size:13px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}

/* Leg 2.2: light/dark presentation; a single theme attribute controls every colour. */
:root[data-theme="dark"]{color-scheme:dark;--bg:#181e1c;--ink:#f1eee5;--muted:#b8c0b5;--accent:#ff8869;--card:#29332e;--line:#445048;--focus:#ffbe82;--quote-decoration:#405046;--byline:#c2cbbd;--button-hover:#c75e40;--button-text:#181e1c}
.topbar-right{display:flex;align-items:center;justify-content:flex-end;gap:25px}
.theme-toggle{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;padding:11px 13px;background:transparent;color:var(--ink);border:1px solid var(--line);font-size:11px;font-weight:700;letter-spacing:.1em;cursor:pointer;transition:background-color .16s,border-color .16s}
.theme-toggle:hover{background:var(--card);border-color:var(--accent)}
#theme-icon{font-size:18px;line-height:1}
@media(max-width:760px){.topbar-right{gap:0}.theme-toggle{padding:10px}}
@media(max-width:420px){.theme-toggle{font-size:10px;letter-spacing:.05em}}

/* Leg 3: utility actions, session timeline, and feedback. */
.secondary-actions{display:flex;flex-wrap:wrap;gap:9px}
.utility-button{background:transparent;color:var(--ink);border:1px solid var(--line);padding:13px 15px;cursor:pointer;font-size:11px;letter-spacing:.07em;font-weight:700;min-height:44px;transition:background-color .16s,border-color .16s}
.utility-button:hover:not(:disabled){background:var(--card);border-color:var(--accent)}
.utility-button:disabled{opacity:.42;cursor:not-allowed}
.action-status{color:var(--muted);font-size:13px;min-height:23px;margin:12px 0 0}
@media(max-width:620px){.action-row{align-items:stretch;gap:14px}.secondary-actions{width:100%}.secondary-actions .utility-button{flex:1 1 auto}.hint{width:100%;line-height:1.9}}

/* Leg 4: favourites library */
.library{border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 2fr;gap:45px;padding:60px 0 80px}
.library h2{margin:0 0 16px;font-size:clamp(35px,4.5vw,65px);line-height:1.07;letter-spacing:-.04em}
.library-intro{color:var(--muted);line-height:1.7;margin:0 0 22px}
.library-actions{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:32px}
.library-subtitle{font-family:Georgia,serif;font-weight:400;font-size:24px;margin:0 0 14px}
.empty-state{color:var(--muted);font-size:14px;line-height:1.6}
.favourites-list{padding:0;margin:0;list-style:none;display:grid;gap:12px}
.favourite-item{border:1px solid var(--line);padding:22px;background:var(--card)}
.favourite-item p{font-family:Georgia,serif;font-size:19px;line-height:1.5;margin:0 0 16px;overflow-wrap:anywhere}
.favourite-actions{display:flex;gap:8px;flex-wrap:wrap}
#favourite-button[aria-pressed="true"]{border-color:var(--accent);color:var(--accent)}
@media(max-width:760px){.library{grid-template-columns:1fr;gap:18px;padding:45px 0 60px}}

/* Leg 5: small-viewport stability and keyboard/touch accessibility. */
.page-shell,main,section{min-width:0} .brand,.topbar-right{min-width:0} .brand{overflow-wrap:anywhere} .quote-label{flex-wrap:wrap} .generate-button{min-height:48px;max-width:100%} .favourite-item{min-width:0} @media(max-width:360px){.page-shell{padding-inline:14px}.topbar{gap:8px}.brand{font-size:10px;letter-spacing:0}.theme-toggle{font-size:9px;padding:8px}.quote-counter{margin-left:0}.quote-card{padding:19px}.quote-text{font-size:25px}}
