:root{--bg: #efe9dc;--card: #fffdf8;--paper: #fffdfa;--sunk: #fdfbf5;--tint: #fdf9f1;--line: #ece4d2;--line2: #e3ded1;--edge: #d9c9ae;--stone: #c8bda6;--green: #2a7f6a;--green-soft: #e2efe9;--gold: #9c6a1e;--ink: #33302a;--ink2: #5c554a;--muted: #8f8471;--faint: #a89a80;--sans: Nunito, -apple-system, BlinkMacSystemFont, sans-serif;--serif: Lora, Georgia, serif;--hand: Caveat, cursive}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-weight:700;-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}input,textarea{font:inherit;color:inherit}input:focus-visible,textarea:focus-visible,button:focus-visible{outline:2px solid var(--green);outline-offset:2px}.shell{max-width:470px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column;background:var(--bg);position:relative}@media (min-width: 700px){body{background:#e6dfd0}.shell{min-height:100dvh;box-shadow:0 0 60px #3d322921}}.scroll{flex:1;overflow-y:auto;padding-bottom:16px}.pad{padding:0 18px}.eyebrow{font:800 10.5px var(--sans);color:var(--faint);letter-spacing:.06em;text-transform:uppercase}.caps{font:800 11px var(--sans);color:var(--green);letter-spacing:.08em;text-transform:uppercase}.h1{font:600 27px/1.15 var(--serif);color:var(--ink)}.h2{font:600 20px/1.2 var(--serif);color:var(--ink)}.h3{font:600 17px var(--serif);color:var(--ink)}.body{font:600 13.5px/1.55 var(--sans);color:var(--muted)}.hand{font-family:var(--hand);font-weight:600}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px 16px}.dashed{background:var(--tint);border:1px dashed var(--edge);border-radius:12px;padding:10px 14px}.btn{display:block;width:100%;background:var(--green);color:#fdfbf5;font:800 15px var(--sans);text-align:center;padding:15px;border-radius:14px}.btn:disabled{opacity:.4;cursor:not-allowed}.btn.ghost{background:var(--card);color:var(--ink2);border:1.5px solid var(--stone)}.btn.quiet{background:none;color:var(--muted);font-size:13px;padding:12px}.btn.small{font-size:13px;padding:11px;border-radius:12px}.row{display:flex;align-items:center;gap:10px}.between{display:flex;align-items:center;justify-content:space-between;gap:10px}.chip{font:800 12px var(--sans);color:var(--muted);border:1.5px solid var(--line2);background:var(--card);padding:7px 13px;border-radius:999px}.chip.on{color:var(--green);background:var(--green-soft);border-color:var(--green)}.field{font:700 15px var(--sans);border:none;border-bottom:1.5px solid var(--line2);padding:6px 0;width:100%;background:transparent;color:var(--ink)}.field.script{font:600 18px var(--hand);color:var(--ink2)}.field::placeholder{color:var(--stone);font-weight:600}.stepper{display:flex;align-items:center;gap:10px}.stepper button{width:30px;height:30px;border-radius:50%;border:1.5px solid var(--stone);background:var(--card);color:var(--ink2);font:800 16px var(--sans);display:grid;place-items:center}.stepper .val{font:600 18px var(--serif);color:var(--green);min-width:56px;text-align:center;border:none;background:transparent;padding:2px 4px;border-bottom:1.5px dashed transparent;border-radius:4px}.stepper .val:hover{border-bottom-color:var(--stone)}.stepper .val:focus{outline:none;border-bottom-color:var(--green);background:var(--green-soft)}.back{width:32px;height:32px;border-radius:50%;background:#f3eee1;color:var(--ink2);font:800 15px var(--sans);display:grid;place-items:center;flex:none}.prog{display:flex;gap:5px}.prog i{flex:1;height:3px;border-radius:2px;background:var(--line)}.prog i.on{background:var(--green)}.tabs{display:flex;border-top:1px solid var(--line);background:#fffdf8eb;backdrop-filter:blur(12px) saturate(180%);-webkit-backdrop-filter:blur(12px) saturate(180%);padding:8px 0 max(8px,env(safe-area-inset-bottom));position:sticky;bottom:0}.tabs button{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;font:800 10px var(--sans);color:var(--faint);padding:2px 0}.tabs button.on{color:var(--green)}.tabs svg{width:22px;height:22px}.check{display:flex;gap:11px;align-items:center;font:700 13.5px var(--sans);color:var(--ink2);text-align:left;width:100%}.check .dot{width:22px;height:22px;border-radius:50%;flex:none;border:1.5px solid var(--stone);display:grid;place-items:center;font-size:12px;color:transparent}.check.on .dot{background:var(--green);border-color:var(--green);color:#fff}.check.on{color:var(--faint);text-decoration:line-through;text-decoration-color:var(--stone)}.mouth{background:var(--sunk);border:1px solid var(--line);border-radius:12px;padding:9px 8px 8px}.mouth .lbl{text-align:center;font:800 9.5px var(--sans);color:var(--stone);letter-spacing:.14em}.mouth .arch{display:flex;justify-content:center;gap:3px}.mouth .arch.upper{align-items:flex-start;padding-top:6px}.mouth .arch.lower{align-items:flex-end;padding-bottom:6px}.tooth{border:1.5px solid var(--line2);background:#fff;display:grid;place-items:center;font:800 11px var(--sans);color:var(--green);padding:0}.tooth.on{border:2px solid var(--green);background:var(--green-soft)}.mouth .mid{text-align:center;padding:4px 0;font:700 9.5px var(--sans);color:var(--faint)}.cert{background:var(--paper);border-radius:6px;box-shadow:0 6px 24px #3d32292e;padding:22px 20px;display:flex;flex-direction:column;min-height:440px}.cert .head{text-align:center;border-bottom:2px solid var(--green);padding-bottom:11px}.cert .official{font:800 9px var(--sans);color:var(--gold);letter-spacing:.28em;text-transform:uppercase}.cert .title{font:600 24px/1.1 var(--serif);color:var(--green);margin-top:4px}.cert .sub{font:600 15px var(--hand);color:var(--muted);margin-top:2px}.cert .rows{display:flex;flex-direction:column;gap:9px;margin-top:14px}.cert .lbl{color:var(--faint);text-transform:uppercase;font:700 9.5px var(--sans);letter-spacing:.08em;padding-top:4px;flex:none}.cert .fill{flex:1;border-bottom:1.5px dashed var(--edge);font:600 16px var(--hand);color:var(--ink);min-height:22px}.cert .adj{display:flex;gap:8px;align-items:center;flex-wrap:wrap;background:#f4f0e5;border-radius:8px;padding:8px 10px}.cert .adjchip{font:600 15px var(--hand);color:var(--ink)}.cert .amount{font:600 20px var(--serif);color:var(--green)}.cert .foot{margin-top:auto;display:flex;justify-content:space-between;align-items:flex-end;padding-top:16px}.cert .seal{width:58px;height:58px;border-radius:50%;border:2.5px solid var(--green);display:grid;place-items:center;font:800 8.5px/1.25 var(--sans);color:var(--green);letter-spacing:.1em;transform:rotate(-8deg);text-align:center}.cert .sig{font:600 19px var(--hand);color:var(--green)}.cert .sigline{width:140px;border-top:1px solid var(--stone);font:700 8px var(--sans);color:var(--faint);letter-spacing:.1em;text-transform:uppercase;padding-top:3px}.cert.note .notelines{display:flex;flex-direction:column;gap:10px;margin-top:20px}.cert.note .noteline{font:600 19px/1.45 var(--hand);color:var(--ink)}.cert.note .seal{width:70px;height:70px;font-size:7.5px;line-height:1.25}.notearchive{margin-top:10px;padding:10px 12px;background:var(--sunk);border:1px solid var(--line);border-radius:10px;font:600 14px/1.5 var(--hand);color:var(--ink2)}.morning{background:var(--tint);border:1px dashed var(--edge);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:9px}.morning-head{font:800 12px var(--sans);color:var(--gold);letter-spacing:.04em;text-transform:uppercase}.morning-done{font:700 12.5px/1.45 var(--sans);color:var(--green);background:var(--green-soft);border-radius:10px;padding:9px 12px}.morning-card{border-color:#e8d3ac;border-width:1.5px}.season-card{border-color:var(--green);border-width:1.5px}.season-recall{margin-top:9px;padding:10px 13px;background:var(--green-soft);border-radius:10px;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;font:700 13px/1.45 var(--sans);color:var(--ink2)}.canonlist{display:flex;flex-direction:column;gap:9px;margin-top:14px}.canonrow{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.canonval{font:700 13px var(--sans);color:var(--ink2);text-align:right;display:flex;align-items:baseline;gap:7px;flex-wrap:wrap;justify-content:flex-end}.sincetag{font:700 9.5px var(--sans);font-style:normal;color:var(--green);background:var(--green-soft);padding:2px 7px;border-radius:999px;letter-spacing:.04em;white-space:nowrap}.lockpill{font:700 9px var(--sans);color:var(--green);background:var(--green-soft);padding:2px 6px;border-radius:999px;margin-left:6px;letter-spacing:.06em;text-transform:uppercase;vertical-align:1px}.matches{font:800 11.5px var(--sans);color:var(--green);background:var(--green-soft);border-radius:10px;padding:9px 13px;text-align:center;letter-spacing:.02em}.warn{background:#fdf4e6;border:1px solid #e8d3ac;border-radius:14px;padding:13px 15px;display:flex;flex-direction:column;gap:8px}.warn-head{font:800 12px var(--sans);color:var(--gold);letter-spacing:.04em;text-transform:uppercase}.warn-row{font:600 13px/1.5 var(--sans);color:var(--ink2)}.warn-row .was{color:var(--green);font-weight:800}.warn-row .now{color:var(--gold);font-weight:800}.warn-btn{align-self:flex-start;margin-top:2px;font:800 12px var(--sans);color:var(--gold);border:1.5px solid #e8d3ac;background:#fffdf8;padding:8px 13px;border-radius:999px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.tile{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:13px 14px;text-align:left;display:flex;flex-direction:column;gap:4px;min-height:96px}.tile-name{font:600 15px var(--serif);color:var(--ink)}.tile-blurb{font:600 11px/1.4 var(--sans);color:var(--muted);flex:1}.tile-state{font:800 9.5px var(--sans);color:var(--stone);letter-spacing:.06em;text-transform:uppercase}.tile-state.on{color:var(--green)}.moment{background:var(--card);border:1px solid var(--line);border-radius:16px;overflow:hidden}.moment img{width:100%;display:block;aspect-ratio:4 / 3;object-fit:cover}.moment .nophoto{aspect-ratio:4 / 3;background:repeating-linear-gradient(45deg,#f8f4e9,#f8f4e9 8px,#fdfbf5 8px,#fdfbf5 16px);display:grid;place-items:center;font:800 10.5px var(--sans);color:var(--faint);letter-spacing:.06em;text-transform:uppercase}.photodrop{height:96px;border:1.5px dashed var(--stone);border-radius:12px;background:repeating-linear-gradient(45deg,#f8f4e9,#f8f4e9 8px,#fdfbf5 8px,#fdfbf5 16px);display:grid;place-items:center;width:100%;font:500 10.5px ui-monospace,monospace;color:var(--faint);overflow:hidden}.photodrop img{width:100%;height:100%;object-fit:cover}.page{background:var(--paper);padding:22px 20px;display:flex;flex-direction:column;min-height:440px}.page .official{font:800 9px var(--sans);color:var(--gold);letter-spacing:.28em;text-transform:uppercase;text-align:center}.page-head{text-align:center;border-bottom:2px solid var(--green);padding-bottom:11px}.page-title{font:600 24px/1.15 var(--serif);color:var(--green);margin-top:4px}.page-sub{font:600 15px var(--hand);color:var(--muted);margin-top:2px}.cover{align-items:center;justify-content:center;text-align:center;gap:10px}.cover-name{font:600 40px/1.1 var(--hand);color:var(--ink)}.cover-title{font:600 26px/1.2 var(--serif);color:var(--green)}.cover-rule{width:64px;height:2px;background:var(--gold);margin:6px 0}.cover-span{font:700 13px var(--sans);color:var(--muted);letter-spacing:.18em}.cover-count{font:600 15px var(--hand);color:var(--muted)}.canonpages{display:flex;flex-direction:column;gap:16px;margin-top:18px}.canonblock-name{font:700 12px var(--sans);color:var(--green);letter-spacing:.1em;text-transform:uppercase;border-bottom:1px solid var(--edge);padding-bottom:4px;margin-bottom:6px}.canonblock-row{display:flex;align-items:baseline;gap:6px;padding:3px 0}.dots{flex:1;border-bottom:1px dotted var(--stone)}.canonblock-val{font:700 13px var(--sans);color:var(--ink2);display:flex;align-items:baseline;gap:7px}.page .lbl{color:var(--faint);text-transform:uppercase;font:700 9.5px var(--sans);letter-spacing:.08em;flex:none}.momentbody{flex:1;display:flex;flex-direction:column;justify-content:center}.momentphoto{margin-top:16px;border-radius:6px;overflow:hidden;border:1px solid var(--edge);background:var(--sunk)}.momentphoto img{width:100%;display:block;object-fit:cover}.momentquote{font:600 24px/1.4 var(--hand);color:var(--ink);margin-top:16px}.momentdetail{font:400 13px/1.6 var(--sans);color:var(--ink2);margin-top:10px}.momentnote{margin-top:14px;padding:12px 14px;background:var(--sunk);border:1px dashed var(--edge);border-radius:8px;font:600 15px/1.5 var(--hand);color:var(--ink2)}.momentnote-head{font:700 8.5px var(--sans);color:var(--faint);letter-spacing:.14em;text-transform:uppercase;margin-bottom:5px}.momentmeta{margin-top:auto;padding-top:14px;font:700 10px var(--sans);color:var(--faint);letter-spacing:.06em;text-transform:uppercase}.printroot{display:none}@media print{@page{size:auto;margin:14mm}body{background:#fff}.shell{display:none!important}.printroot{display:block}.printroot .cert{box-shadow:none;border:1.5px solid var(--edge);min-height:0;height:245mm;padding:18mm 16mm;break-inside:avoid}.printroot .cert .title{font-size:42px}.printroot .cert .sub{font-size:24px}.printroot .cert .official{font-size:13px}.printroot .cert .rows{flex:1;justify-content:space-evenly;gap:20px;margin-top:20px}.printroot .cert .lbl{font-size:12px}.printroot .cert .fill{font-size:27px;min-height:38px}.printroot .cert .adj{padding:14px 16px;gap:12px}.printroot .cert .adjchip{font-size:25px}.printroot .cert .amount{font-size:32px}.printroot .cert .seal{width:96px;height:96px;font-size:13px;border-width:3.5px}.printroot .cert .sig{font-size:32px}.printroot .cert .sigline{width:230px;font-size:11px}.printroot .cert.note .notelines{flex:1;justify-content:center;gap:20px;margin-top:0}.printroot .cert.note .noteline{font-size:27px;line-height:1.5}.printroot .cert.note .seal{width:104px;height:104px;font-size:11.5px}.printroot .page{height:245mm;padding:0;break-inside:avoid;break-after:page}.printroot .page:last-child{break-after:auto}.printroot .page .official{font-size:13px}.printroot .page-title{font-size:38px}.printroot .page-sub{font-size:21px}.printroot .page-head{padding-bottom:16px}.printroot .cover-name{font-size:76px}.printroot .cover-title{font-size:40px}.printroot .cover-rule{width:96px;height:3px}.printroot .cover-span{font-size:17px}.printroot .cover-count{font-size:22px}.printroot .canonpages{gap:26px;margin-top:30px}.printroot .canonblock-name{font-size:15px;padding-bottom:7px;margin-bottom:10px}.printroot .canonblock-row{padding:6px 0}.printroot .page .lbl{font-size:12px}.printroot .canonblock-val{font-size:18px}.printroot .momentphoto{margin-top:26px;max-height:118mm}.printroot .momentphoto img{max-height:118mm;object-fit:cover}.printroot .momentquote{font-size:34px;margin-top:26px}.printroot .momentdetail{font-size:17px;margin-top:16px}.printroot .momentnote{font-size:20px;margin-top:22px;padding:18px 20px}.printroot .momentnote-head{font-size:11px}.printroot .momentmeta{font-size:13px;padding-top:20px}}.backupwarn{color:var(--gold)!important;font-weight:800}.codefield{text-align:center;font:700 26px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.34em;text-indent:.34em}.storagewarn{background:#fdf4e6;border-bottom:2px solid var(--gold);padding:14px 18px;display:flex;flex-direction:column;gap:8px;position:sticky;top:0;z-index:20}.storagewarn-head{font:800 12px var(--sans);color:var(--gold);letter-spacing:.04em;text-transform:uppercase}.storagewarn p{font:600 12.5px/1.5 var(--sans);color:var(--ink2)}.storagewarn .btn{padding:11px;font-size:13px}.belief{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;text-align:left;padding:11px 4px;border-bottom:1px solid var(--line)}.belief:last-child{border-bottom:none}.belief-name{display:block;font:700 14.5px var(--sans);color:var(--faint)}.belief-blurb{display:block;font:600 12px var(--sans);color:var(--stone);margin-top:2px}.belief.on .belief-name{color:var(--ink)}.belief.on .belief-blurb{color:var(--muted)}.belief-tick{flex:none;width:24px;height:24px;border-radius:50%;border:1.5px solid var(--stone);display:grid;place-items:center;font:800 12px var(--sans);color:transparent}.belief.on .belief-tick{background:var(--green);border-color:var(--green);color:#fff}.previewbadge{background:var(--gold);color:#fffdf8;font:800 10.5px var(--sans);letter-spacing:.08em;text-transform:uppercase;text-align:center;padding:5px 10px;position:sticky;top:0;z-index:30}
