@charset "UTF-8";
:root{color-scheme:light;--bg:#f5f2eb;--paper:#fffcf6;--ink:#302f2b;--muted:#65665b;--line:#dedbd1;--accent:#455e50;--accent-text:#fffdf7;--soft:#e6ece2;--rose:#805348;--shadow:0 8px 40px #302f2b09;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:16px;line-height:1.65}
:root[data-theme=dark]{color-scheme:dark;--bg:#1d211f;--paper:#252b27;--ink:#eeeae0;--muted:#b7bcae;--line:#434b43;--accent:#b3c8ab;--accent-text:#19221c;--soft:#344237;--rose:#e3b5a4;--shadow:0 8px 40px #0002}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg:#1d211f;--paper:#252b27;--ink:#eeeae0;--muted:#b7bcae;--line:#434b43;--accent:#b3c8ab;--accent-text:#19221c;--soft:#344237;--rose:#e3b5a4;--shadow:0 8px 40px #0002}}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink)}[hidden]{display:none!important}button,input,textarea,select{font:inherit}button,.button{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:44px;padding:.55rem .95rem;border:1px solid var(--line);border-radius:12px;color:var(--ink);background:var(--paper);text-decoration:none;cursor:pointer;line-height:1.35;transition:background .15s,transform .15s}button:hover,.button:hover{background:var(--soft)}button:disabled{opacity:.5;cursor:not-allowed}button.primary,.button.primary{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}button.primary:hover,.button.primary:hover{filter:brightness(1.08)}input,textarea,select{width:100%;min-height:46px;border:1px solid var(--line);border-radius:10px;background:var(--paper);color:var(--ink);padding:.7rem .8rem}textarea{min-height:105px;resize:vertical;line-height:1.7}input[type=checkbox]{width:20px;min-height:20px;height:20px;accent-color:var(--accent);flex:none}input[type=file]{padding:.5rem}input::placeholder,textarea::placeholder{color:var(--muted);opacity:.85}label{display:block;font-size:.9rem;font-weight:550;margin:1rem 0 .6rem}label input,label textarea,label select{display:block;margin-top:.4rem;font-weight:400}label.check{display:flex;gap:.7rem;align-items:center;font-weight:400;padding:.3rem 0;margin:.4rem 0}label.check input{margin:0}:focus-visible{outline:3px solid var(--rose);outline-offset:4px}h1,h2,h3{line-height:1.2;font-weight:450;margin:.4em 0 .55em}h1,h2{font-family:Georgia,"Times New Roman",serif;letter-spacing:-.035em}h1{font-size:clamp(2.2rem,4.6vw,3.75rem)}h2{font-size:1.85rem}h3{font-size:1.18rem;font-weight:550}p{margin:.7rem 0 1.1rem}p,.hint{overflow-wrap:anywhere}a{color:var(--accent)}.hint,small{color:var(--muted);font-size:.84rem}.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;font-weight:650;color:var(--muted);font-family:system-ui,sans-serif}.error{color:var(--rose)}.skip{position:fixed;top:-100px;left:1rem;background:var(--paper);padding:1rem;z-index:100}.skip:focus{top:1rem}.actions{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem}.site-header{display:flex;align-items:center;justify-content:space-between;gap:1.25rem;padding:1.1rem 3vw;border-bottom:1px solid var(--line);background:var(--bg)}.wordmark{font-family:Georgia,serif;font-size:1.4rem;border:0;background:none;padding:0;white-space:nowrap}.mark{font-size:2.5rem;line-height:1;color:var(--accent);margin-right:.3rem}.site-header nav{display:flex;gap:.2rem;flex-wrap:wrap}.site-header nav button{border:0;background:none;color:var(--muted)}.site-header nav button[aria-current=page]{background:var(--soft);color:var(--ink)}#main{max-width:1180px;min-height:75vh;margin:auto;padding:3.5rem 2rem 6rem}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;margin-bottom:2.4rem}.page-head h1{max-width:720px}.page-head p:not(.eyebrow){color:var(--muted)}.page-head>.actions{flex-shrink:0}.card{background:var(--paper);padding:1.7rem;border-radius:20px;box-shadow:var(--shadow)}.filters{background:var(--paper);border-radius:18px;padding:1rem 1.5rem;margin-bottom:1.5rem}.filters label{margin:.4rem 0}.filter-row{display:flex;gap:1rem;flex-wrap:wrap;align-items:end}.filter-row>label{flex:1;min-width:125px}.search-label input{border:0;background:var(--bg)}details{margin:1rem 0}summary{cursor:pointer;color:var(--accent);padding:.6rem 0;font-weight:550;min-height:44px}.selection-bar{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin:1.2rem 0;font-size:.82rem;color:var(--muted)}.selection-bar button{font-size:.82rem;min-height:40px;background:none}.year-marker{font-size:1.6rem;color:var(--muted);padding:2rem 0 .75rem 2.6rem;margin:0;position:relative}.year-marker:before{content:'';position:absolute;left:1rem;top:2.5rem;width:.5rem;height:.5rem;border-radius:50%;background:var(--accent)}.memory-card{display:flex;align-items:flex-start;gap:.5rem;background:var(--paper);border-radius:18px;margin:0 0 1rem 2.6rem;padding:.6rem 1rem;box-shadow:var(--shadow);position:relative}.memory-card:before{position:absolute;content:'';left:-1.45rem;top:-1rem;bottom:-1rem;width:1px;background:var(--line)}.memory-card.covered{background:var(--soft);box-shadow:none}.select-memory{padding:.7rem 0;margin:0}.memory-open{flex:1;display:block;text-align:left;border:0;background:none;padding:.7rem .6rem;min-width:0}.memory-open:hover{background:none}.memory-open h3{font-family:Georgia,serif;font-size:1.65rem;font-weight:400;letter-spacing:-.02em;margin:.35rem 0 .6rem}.memory-open p{font-size:.96rem;line-height:1.7;color:var(--muted);margin:.3rem 0 .7rem;white-space:pre-wrap}.chips{display:flex;gap:.45rem;flex-wrap:wrap}.chips span{background:var(--bg);color:var(--muted);font-size:.72rem;border-radius:6px;padding:.12rem .5rem}.empty{text-align:center;max-width:700px;margin:3rem auto;padding:3rem 1rem}.empty h2{font-size:2.2rem}.empty p{color:var(--muted)}.empty-mark{display:block;color:var(--accent);font-family:Georgia,serif;font-size:5rem;line-height:1;margin-bottom:1.5rem}.empty .hint{margin-top:2rem}.overview-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1.2rem}.overview-grid>.card{text-align:left}.overview-grid p{color:var(--muted)}.year-tile{display:block;min-height:150px}.section-title{margin-top:3rem}.editor{max-width:820px;margin:auto;padding:2rem 2.5rem}.editor>label:first-child input{font-size:1.15rem}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:0 1.4rem}fieldset{border:0;border-top:1px solid var(--line);padding:1.5rem 0;margin:1.5rem 0}legend{padding-right:1rem;font-family:Georgia,serif;font-size:1.4rem}.reflection-fields{margin:2rem 0}.editor-footer{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;margin-top:2rem;padding-top:1rem;border-top:1px solid var(--line)}#save-status{font-size:.8rem;color:var(--muted)}.photo-edit{padding:1rem 0;border-bottom:1px solid var(--line)}.photo-edit img{height:130px;max-width:100%;object-fit:contain;border-radius:10px}.site-footer{border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.5rem 4vw;color:var(--muted);font-size:.85rem}.site-footer button{border:0;background:none}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.settings-grid .card{padding:2rem}.settings-grid p{font-size:.93rem}.session-picker{max-height:45vh;overflow:auto;padding:1rem 0;margin-bottom:1rem}.session-picker .check{padding:.7rem;border-bottom:1px solid var(--line)}dialog{color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:22px;padding:2rem;width:min(760px,92vw);max-height:90vh;box-shadow:0 30px 100px #0003}dialog::backdrop{background:#151b1788;backdrop-filter:blur(3px)}.modal-head{display:flex;gap:1rem;justify-content:space-between;align-items:center;margin-bottom:1rem}.modal-head h2{font-size:1.6rem}.modal-head button{border:0}.focused{padding:1rem 0 2rem}.focused h1{font-size:2.5rem}.reflection{margin:1.75rem 0}.reflection h3{font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.reflection p{white-space:pre-wrap}figure{margin:2rem 0}figure img{max-width:100%;max-height:60vh;display:block;object-fit:contain;border-radius:14px}figcaption{font-size:.88rem;color:var(--muted);margin-top:.75rem}#toast{position:fixed;bottom:1.5rem;left:50%;transform:translateX(-50%);max-width:min(700px,92vw);padding:.8rem 1.4rem;border-radius:14px;background:var(--ink);color:var(--bg);box-shadow:var(--shadow);z-index:20;font-size:.9rem}#toast:empty{display:none}#toast.error{background:var(--rose);color:var(--paper)}.login-layout{max-width:1250px!important;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:5rem;padding-top:7vh!important}.login-intro h1{font-size:clamp(3rem,5.7vw,5rem);line-height:1.1}.login-intro p:not(.eyebrow){color:var(--muted);margin-top:2rem}.leaf-mark{font-size:7rem;line-height:1;color:var(--accent)}.login-card{padding:2.5rem}.login-card .primary{width:100%;margin-top:1rem}.welcome{max-width:600px!important;text-align:center;padding-top:15vh!important}.presentation-bar{display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;gap:1rem;border-bottom:1px solid var(--line)}.brand{font-family:Georgia,serif;font-size:1.2rem}.presentation-content{max-width:980px;margin:auto;padding:3rem 2rem 10rem;outline:none}.slide{max-width:770px;margin:2.5rem auto;font-size:1.22rem;line-height:1.85}.slide h1{font-size:clamp(2.6rem,5vw,4.2rem);line-height:1.15}.slide .reflection{margin:2.3rem 0}.placeholder{text-align:center;margin:8vh 0 2rem;padding:4rem 2rem;background:var(--soft);border-radius:24px}.placeholder h2{font-size:2.4rem}.placeholder p{color:var(--muted)}.slide:has(.placeholder)>button{display:block;margin:auto}.presentation-footer{position:fixed;bottom:0;left:0;right:0;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 2rem;background:var(--bg);border-top:1px solid var(--line)}.presentation-footer [role=status]{padding:0 .7rem;color:var(--muted);font-size:.85rem}.current{outline:2px solid var(--accent)}kbd{font-size:.7rem;opacity:.7;border:1px solid var(--line);padding:0 .25rem;border-radius:4px}#curtain{position:fixed;inset:0;z-index:100;background:var(--bg);display:grid;place-items:center;padding:2rem;text-align:center}#curtain h1{font-size:3.5rem}#curtain p{color:var(--muted)}.screen-hidden #app,.screen-hidden #presentation,.screen-hidden #toast{visibility:hidden}.print-document{max-width:850px;margin:auto;padding:3rem 2rem}.print-event{background:var(--paper);border-radius:16px;margin:2rem 0;padding:2.5rem}.print-event h1{font-size:2.2rem}
@media(max-width:1050px){.site-header{flex-wrap:wrap}.site-header nav{order:3;width:100%;justify-content:center}.page-head{align-items:flex-start;flex-direction:column;gap:.8rem}.login-layout{gap:2rem}.login-card{padding:1.8rem}}
@media(max-width:650px){#main{padding:2rem 1rem 4rem}.site-header{padding:.8rem 1rem;gap:.65rem}.wordmark{font-size:1.2rem}.site-header>.actions{gap:.35rem}.site-header>.actions button{font-size:.82rem;padding:.5rem .65rem}.site-header nav{overflow:auto;justify-content:space-between;flex-wrap:nowrap}.site-header nav button{font-size:.86rem;padding:.5rem .7rem}.filters{padding:.8rem 1rem}.filter-row{gap:.5rem}.filter-row label{min-width:115px}.selection-bar{flex-direction:column;align-items:flex-start}.selection-bar .actions{gap:.3rem}.selection-bar button{font-size:.77rem;padding:.5rem .6rem}.memory-card{margin-left:1.4rem;padding:.5rem .7rem}.memory-card:before{left:-.85rem}.memory-open h3{font-size:1.4rem}.year-marker{padding-left:1.4rem}.year-marker:before{left:.35rem}.editor{padding:1rem 1.15rem}.two-col,.settings-grid{grid-template-columns:1fr}.settings-grid .card{padding:1.5rem}.login-layout{display:block;padding-top:3vh!important}.login-intro h1{font-size:2.8rem}.login-intro{margin-bottom:2rem}.login-intro p:not(.eyebrow){margin-top:1rem}.leaf-mark{display:none}.login-card{padding:1.4rem}.presentation-bar{padding:.75rem 1rem;flex-wrap:wrap}.presentation-bar button{font-size:.85rem}.presentation-content{padding:2rem 1.25rem 12rem}.slide{font-size:1.1rem}.presentation-footer{padding:.8rem 1rem}.presentation-footer>.actions{justify-content:center;width:100%}.presentation-footer button{font-size:.85rem}.placeholder{padding:2rem 1rem}.site-footer{font-size:.78rem}.site-footer span{max-width:55%}dialog{padding:1.2rem}.print-event{padding:1.4rem}.print-document{padding:1.5rem 1rem}.empty{padding:2rem .5rem;margin-top:1rem}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;scroll-behavior:auto!important;animation:none!important}}
@media print{@page{margin:18mm}body{background:white!important;color:#222!important;font-size:11pt}body:not(.print-preview)>*{display:none!important}body:not(.print-preview)::after{content:'Use Life Chapters presentation → Print / PDF preview to choose what to print.'}body.print-preview #app,body.print-preview #toast,body.print-preview dialog,body.print-preview #curtain,.no-print,.presentation-bar,.presentation-footer,.skip{display:none!important}body.print-preview #presentation{display:block!important}.print-document{padding:0;max-width:none}.print-event{background:white;color:#222;border-radius:0;padding:0;margin:0;break-after:page;box-shadow:none}.print-event h1{font-size:26pt}.print-event h3,.print-event .eyebrow,.print-event figcaption{color:#555}.reflection,figure{break-inside:avoid}.print-event img{max-height:140mm}.placeholder{background:#f1f1ed;color:#222}.screen-hidden>*{display:none!important}.screen-hidden::after{content:'Life Chapters — screen hidden.'!important}}
