@charset "UTF-8";
:root{color-scheme:light;--ink:#242420;--red:#c83024;--yellow:#ffe257;--paper:#f7f7f2;--line:#deded4;--muted:#66665b;font-family:"Noto Sans JP","Yu Gothic",Meiryo,system-ui,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;font-size:16px;line-height:1.75}button,input,textarea,select{font:inherit}a{color:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}[hidden]{display:none!important}:focus-visible{outline:3px solid #1462bd;outline-offset:4px}h1,h2,h3,p{margin:0}h1{font-size:clamp(1.5rem,3vw,2rem);line-height:1.45;letter-spacing:-.04em}h2{font-size:clamp(1.25rem,2.3vw,1.65rem);line-height:1.5;letter-spacing:-.04em}h3{font-size:1rem}p+p{margin-top:.7rem}small,.muted{font-size:.875rem;color:var(--muted)}.skip{position:fixed;top:-100px;background:white;padding:15px;z-index:100}.skip:focus{top:8px}.topbar{max-width:1200px;margin:auto;padding:22px 32px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;font-weight:900;line-height:1.4}.brand small{display:block;font-size:.75rem;letter-spacing:.06em;font-weight:400}.app-tag{font-size:.875rem;font-weight:700}.shell{max-width:1120px;margin:auto;padding:32px 32px 108px}.eyebrow{display:block;font-size:.75rem;letter-spacing:.15em;font-weight:800;color:#756f55;margin-bottom:8px}.section-head{display:flex;gap:16px;align-items:center;justify-content:space-between;margin-bottom:22px}.section-head>div{min-width:0}section{scroll-margin-top:20px}#dashboard>section{margin-bottom:40px}.hero-grid{display:grid;grid-template-columns:1.45fr 1fr;gap:20px}.time-card,.budget-card,.panel{border:1px solid var(--line);border-radius:22px;padding:28px;background:white}.time-card{background:var(--yellow);border-color:var(--yellow);position:relative}.card-top{display:flex;align-items:center;justify-content:space-between;font-weight:800}.pill{border:1px solid currentColor;padding:2px 10px;border-radius:30px;font-size:.75rem;letter-spacing:.1em}.hero-number{font-family:Arial,sans-serif;font-weight:800;font-size:clamp(3.5rem,7vw,6.6rem);line-height:1.2;letter-spacing:-.065em;margin:22px 0 0;font-variant-numeric:tabular-nums;white-space:nowrap}.unit{font-family:inherit;font-size:1rem;letter-spacing:0;margin-left:10px;font-weight:700}.time-sub{font-size:1.15rem;font-weight:700}.time-progress{height:7px;border-radius:10px;background:#ccaf35;margin-top:30px;overflow:hidden}.time-progress span{display:block;height:100%;background:var(--ink)}.time-foot{display:flex;justify-content:space-between;font-size:.875rem;margin-top:8px}.card-copy{border-top:1px solid #bba229;margin-top:22px;padding-top:18px;font-size:.875rem}.budget-card{display:flex;flex-direction:column;gap:15px}.budget-number{font-family:Arial,sans-serif;font-size:clamp(2rem,4vw,3.1rem);font-weight:800;line-height:1.2;letter-spacing:-.04em;overflow-wrap:anywhere}.budget-card .muted{line-height:1.65}.primary,.secondary,.danger{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:48px;padding:12px 20px;border:1px solid transparent;border-radius:10px;font-weight:700;line-height:1.5;text-decoration:none;text-align:center}.primary{background:var(--red);color:white}.primary:hover{background:#a42218}.dark{background:var(--ink);margin-top:auto}.secondary{background:white;color:var(--ink);border-color:#a7a79a}.secondary:hover{background:#f2f2e9}.danger{background:#fff0ed;color:#a62619;border-color:#de8c81}.text-button{border:0;background:none;color:var(--red);font-weight:700;min-height:48px;font-size:.875rem;padding:8px}.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}.stat-number{font-family:Arial,"Yu Gothic",sans-serif;font-weight:800;font-size:clamp(1.7rem,3.5vw,2.6rem);letter-spacing:-.04em;margin:10px 0;overflow-wrap:anywhere}.stat-grid p:not(.stat-number){font-size:.875rem;color:var(--muted)}.chart-panel svg{display:block;width:100%;height:auto;overflow:visible}.chart-summary{font-size:.875rem;border-radius:8px;background:#f6f6ef;padding:12px 16px;margin:8px 0 12px}.chart-panel details{margin-top:14px;font-size:.875rem}summary{cursor:pointer;font-weight:700;min-height:44px;padding:8px 0}details p{margin-top:10px}.summer-card{background:var(--red);color:white;border-radius:22px;padding:30px 36px;display:flex;justify-content:space-between;gap:16px;align-items:center}.summer-card strong{font-family:Arial,sans-serif;font-size:5.5rem;letter-spacing:-.06em;line-height:1.2;margin-right:14px}.summer-card>div>span:first-child{font-size:1.1rem;font-weight:700}.season-mark{font-family:Arial,sans-serif;font-size:clamp(1.8rem,5vw,3.5rem);line-height:.98;font-weight:900;letter-spacing:-.05em;transform:rotate(-5deg);color:var(--yellow)}.season-mark span{color:white}.summer-card+.muted{margin:14px 0 18px}.events-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px}.event-card{background:white;border:1px solid var(--line);border-radius:14px;padding:20px;position:relative;overflow-wrap:anywhere}.event-card h3{font-weight:500;padding-right:14px}.event-card p{font-size:.875rem;margin-top:8px}.event-card strong{font-family:Arial,sans-serif;font-size:1.7rem;margin:0 6px}.remove-event{background:none;border:0;color:#68685d;position:absolute;top:0;right:0;width:44px;height:44px}.event-form{display:grid;grid-template-columns:2fr .7fr .7fr auto;gap:14px;align-items:end;margin-top:14px}.event-form label{font-size:.875rem}label{display:block;font-weight:700}input,textarea,select{display:block;width:100%;border:1px solid #a7a79a;border-radius:9px;background:white;color:var(--ink);min-height:48px;padding:10px 13px;margin-top:6px}textarea{resize:vertical}.input-unit{display:flex;align-items:center;border:1px solid #a7a79a;border-radius:10px;margin-top:8px;background:white;padding-right:14px;gap:8px}.input-unit input{border:0;margin:0;min-width:0;font-size:1.4rem;font-weight:700;background:transparent}.input-unit>span{white-space:nowrap;color:var(--muted);font-size:.875rem}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:28px 0}.error{color:#b42116;display:block;font-size:.875rem;font-weight:500}.input-unit:has([aria-invalid="true"]){border-color:#b42116}.actions{display:flex;gap:12px;margin-top:24px}.setup{max-width:760px;margin:10px auto 36px;padding:36px}.setup>p{margin-top:10px}.welcome{text-align:center;padding:35px 0 20px}.welcome h1{font-size:clamp(2rem,5vw,3.5rem)}.welcome .lead{font-size:clamp(1.4rem,3.5vw,2.7rem);font-weight:800;letter-spacing:-.05em;line-height:1.6;margin:20px 0}.welcome>.primary{margin:28px 0 10px}.privacy{font-size:.875rem;color:var(--muted)}.intro-trio{display:grid;grid-template-columns:repeat(3,1fr);text-align:left;gap:24px;border-top:1px solid var(--line);padding:28px 0;margin-top:32px}.intro-trio span{display:block;color:var(--red);font-size:.75rem;font-weight:700;letter-spacing:.1em;margin-bottom:10px}.intro-trio p{font-size:.875rem;color:var(--muted);margin-top:8px}.memory-total{font-size:.875rem;white-space:nowrap}.memory-total strong{display:inline-block;font-size:1.8rem;margin-left:8px}.log-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px}#log-form{margin-top:20px}.log-entry{padding:18px 0;border-top:1px solid var(--line);margin-top:18px}.log-entry p{white-space:pre-wrap;overflow-wrap:anywhere}.log-entry time{font-size:.875rem;color:var(--muted)}.share-section{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}.share-section h2{font-size:1.2rem}.share-section p{font-size:.875rem}.install-card{background:#eeeee4;border-radius:18px;padding:26px;display:flex;justify-content:space-between;align-items:center;gap:20px;margin:34px 0}.install-card h2{font-size:1.1rem}.install-card p{font-size:.875rem}.install-card button{flex-shrink:0}.explanation{max-width:800px;margin:64px auto 0}.explanation h2{margin-bottom:20px}.explanation h3{margin:28px 0 8px}.explanation>p{color:#55554c;font-size:.9375rem;line-height:1.95}.disclaimer{border:1px solid var(--line);padding:22px;border-radius:12px;margin-top:32px;font-size:.875rem;color:#55554c}.disclaimer p{margin-top:8px}footer{display:flex;gap:20px;justify-content:space-between;font-size:.75rem;color:var(--muted);border-top:1px solid var(--line);padding-top:26px;margin-top:40px}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:550px;display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:18px 18px 0 0;background:rgba(255,255,255,.98);padding:6px 8px calc(6px + env(safe-area-inset-bottom));z-index:20;box-shadow:0 -5px 30px #2424200a}.bottom-nav a{display:flex;flex-direction:column;align-items:center;text-decoration:none;font-size:.75rem;font-weight:700;padding:6px;min-height:52px;color:#66665b}.bottom-nav a span{font-size:1.3rem;line-height:1.25}.bottom-nav a[aria-current]{color:var(--red)}#notice:not(:empty){position:sticky;top:12px;z-index:30;background:#252521;color:white;padding:14px 20px;border-radius:10px;font-size:.875rem;margin-bottom:18px;box-shadow:0 4px 16px #0002}.return-message{background:#fff5cb;padding:16px 20px;margin-bottom:20px;border-radius:12px;font-size:.875rem}.settings p{margin:16px 0}.settings hr{border:0;border-top:1px solid var(--line);margin:28px 0}.settings{max-width:760px;margin:auto}.empty-log{padding-top:22px;color:var(--muted);font-size:.875rem}.memory-pop{animation:pop .5s ease}@keyframes pop{50%{transform:scale(1.25);color:var(--red)}}
@media(max-width:700px){.shell{padding:24px 18px 108px}.topbar{padding:16px 18px}.brand small{display:none}.app-tag{font-size:.75rem}.hero-grid,.stat-grid{grid-template-columns:1fr}.time-card,.budget-card,.panel{padding:22px;border-radius:18px}.hero-number{font-size:clamp(3.5rem,16vw,5.5rem)}.budget-number{font-size:2.5rem}.section-head{gap:8px}.section-head>.muted{display:none}.events-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.event-card{padding:16px}.event-card h3{font-size:.875rem}.event-card strong{font-size:1.5rem}.summer-card{padding:26px 22px}.summer-card strong{font-size:4.6rem}.summer-card>div>span:last-child{font-size:.875rem}.season-mark{font-size:1.8rem}.summer-card>div:first-child{flex:1}.form-grid{gap:18px}.setup{padding:24px 18px}.input-unit input{font-size:1.15rem;padding:12px 8px}.input-unit{padding-right:9px;gap:0}.event-form{grid-template-columns:1fr 1fr}.event-form label:first-child,.event-form button{grid-column:1/-1}.log-actions{align-items:stretch;flex-direction:column}.memory-total{white-space:normal;text-align:right;max-width:100px}.memory-total strong{display:block;font-size:1.6rem;line-height:1.2}.install-card{flex-direction:column;align-items:stretch;padding:22px}.intro-trio{grid-template-columns:1fr;gap:20px}.intro-trio>div{padding-bottom:14px;border-bottom:1px solid var(--line)}.intro-trio span{margin-bottom:4px}.intro-trio p{margin-top:2px}.welcome{padding:15px 0}.welcome>p:not(.lead){font-size:.875rem}.welcome .primary{width:100%}.desktop{display:none}.share-section{align-items:stretch;flex-direction:column}footer{flex-direction:column;gap:8px}.explanation{margin-top:42px}}
@media(max-width:370px){.form-grid{grid-template-columns:1fr}.season-mark{display:none}.hero-number{font-size:3.5rem}.unit{margin-left:5px}.section-head{align-items:flex-start}.text-button{max-width:105px}.actions{flex-direction:column}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;scroll-behavior:auto!important}}

/* RE:IGNITE welcome message. */
.welcome h1{font-family:Arial,"Yu Gothic",sans-serif;letter-spacing:.1em}
.welcome>p.welcome-description{max-width:760px;margin:18px auto 0;font-size:1.05rem;line-height:1.85}
.welcome>p.welcome-purpose{margin-top:24px;line-height:1.9}
.welcome>p.welcome-memento{max-width:600px;margin:26px auto 0;padding-top:20px;border-top:1px solid var(--line);color:var(--muted);font-size:.9rem;line-height:1.8}
.welcome-memento strong{display:block;color:var(--ink);font-family:Georgia,"Times New Roman",serif;letter-spacing:.08em}
@media(max-width:700px){.welcome h1{letter-spacing:.08em}.welcome>p.welcome-description{font-size:.95rem;line-height:1.75}.welcome>p.welcome-purpose{margin-top:20px;font-size:.95rem}.welcome>p.welcome-memento{margin-top:22px;padding-top:16px;font-size:.82rem}}

/* Keep the RE:IGNITE message visible above the dashboard for returning users. */
.dashboard-brand{padding:20px 0 8px;margin-bottom:28px!important}
.dashboard-brand h1{font-size:clamp(2rem,5vw,3rem)}
.dashboard-brand .lead{font-size:clamp(1.25rem,3vw,2rem);margin:10px 0}
.dashboard-brand .welcome-description{margin-top:10px}
.dashboard-brand .welcome-purpose{margin-top:14px}
.dashboard-brand .welcome-memento{margin-top:18px;padding-top:14px}
@media(max-width:700px){.dashboard-brand{padding:10px 0 4px;margin-bottom:28px!important}.dashboard-brand .welcome-description{font-size:.9rem}.dashboard-brand .welcome-purpose{margin-top:14px}.dashboard-brand .welcome-memento{margin-top:18px}}

.chart-legend{display:flex;flex-wrap:wrap;gap:10px 18px;margin:16px 0 4px;font-size:.8rem;font-weight:700}.chart-legend-item{display:inline-flex;align-items:center;gap:8px}.chart-legend-item i{display:inline-block;width:28px;height:14px;border-radius:4px}.chart-legend-health i{border-top:4px dashed #a86600;background:#a866001f}.chart-legend-lifespan i{border-top:4px solid #ba2e23;background:#ba2e231f}.year-time-section,.free-time-section{margin-top:40px}.year-time-card{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:28px 32px;border-radius:22px;background:var(--red);color:white;overflow:hidden}.year-time-kicker{font-weight:800;letter-spacing:.04em}.year-time-card p{margin-top:8px}.year-time-card p:first-of-type{display:flex;align-items:baseline;gap:10px}.year-time-card p:first-of-type strong{font-family:Arial,"Yu Gothic",sans-serif;font-size:clamp(3.6rem,8vw,6rem);line-height:1;font-weight:800;letter-spacing:-.06em}.year-time-card p:first-of-type span{font-size:1.15rem;font-weight:800}.year-time-hours{font-size:.95rem;color:#ffe7df}.year-time-hours strong{font-family:Arial,"Yu Gothic",sans-serif;color:var(--yellow);font-size:1.25rem}.year-time-mark{font-family:Arial,sans-serif;font-size:clamp(2rem,6vw,4.2rem);font-weight:900;line-height:.95;letter-spacing:-.06em;text-align:right;transform:rotate(-5deg);color:var(--yellow)}.free-time-intro{font-size:.95rem;color:var(--muted)}.true-free-card{margin-top:20px;padding:28px 22px;border:2px solid #7564ff;border-radius:24px;background:#17151e;color:#f8f7ff;text-align:center;box-shadow:0 12px 35px #7564ff14}.true-free-card>span{display:block;color:#aaa4c4;font-size:1.1rem}.true-free-card>p:not(.true-free-detail){display:flex;justify-content:center;align-items:baseline;gap:10px;margin-top:12px}.true-free-card strong{font-family:Arial,"Yu Gothic",sans-serif;color:#7564ff;font-size:clamp(4rem,10vw,6rem);line-height:1;font-weight:900;letter-spacing:-.08em}.true-free-card>p:not(.true-free-detail)>span{font-size:1.2rem;font-weight:800}.true-free-detail{color:#aaa4c4;font-size:1rem;margin-top:14px}.free-time-tip{margin:20px 0 0;padding:20px 22px;border:2px solid #00cbbd;border-radius:18px;background:#062829;color:#e7fffc;font-size:1rem;font-weight:700;line-height:1.6}.free-time-tip::first-letter{color:#00d8ca}.time-category-list{display:grid;gap:14px;margin-top:20px}.time-category-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 22px;border:1px solid #2b2938;border-radius:18px;background:#17151e;color:#f8f7ff}.time-category-copy{min-width:0}.time-category-copy strong{display:block;font-size:1.1rem}.time-category-copy small{display:block;color:#aaa4c4;margin-top:3px}.time-category-controls{display:flex;align-items:center;gap:14px;flex-shrink:0}.time-category-controls>strong{min-width:54px;text-align:center;font-family:Arial,"Yu Gothic",sans-serif;font-size:1.35rem}.round-control{width:48px;height:48px;border:1px solid #36324f;border-radius:50%;background:transparent;color:#f8f7ff;font-size:1.8rem;line-height:1}.round-control:hover{border-color:#7564ff;color:#7564ff}.round-control:disabled{color:#55516a;border-color:#2b2938;cursor:not-allowed}.people-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px}.person-card{padding:22px;border:1px solid var(--line);border-radius:18px;background:#fffdf9}.person-card h3{font-size:1.15rem}.person-count{margin-top:8px;font-size:1rem}.person-count strong{font-family:Arial,"Yu Gothic",sans-serif;color:var(--red);font-size:2.4rem;line-height:1}.person-card small{display:block;margin-top:8px}.setup-extra{margin-top:26px;padding-top:20px;border-top:1px solid var(--line)}.setup-extra summary{font-size:1rem}.setup-extra>p{margin:6px 0 14px}.people-editor{display:grid;gap:12px;margin-bottom:14px}.person-row{display:grid;grid-template-columns:1.35fr .8fr .8fr .72fr auto;gap:10px;align-items:end;padding:16px;border:1px solid var(--line);border-radius:14px;background:#fffdf9}.person-row label{font-size:.8rem}.person-row .input-unit{margin-top:6px}.person-row .input-unit input{font-size:1rem}.person-row select{margin-top:6px;min-height:48px}.remove-person,.remove-bucket{border:0;background:transparent;color:#9b5145;font-size:.8rem;font-weight:700;min-height:44px;padding:8px}.bucket-form{display:grid;grid-template-columns:1fr .55fr auto;gap:14px;align-items:end;margin-top:20px}.bucket-form label{font-size:.875rem}.bucket-list{display:grid;gap:12px;margin-top:22px}.bucket-item{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:16px 18px;border:1px solid var(--line);border-radius:14px;background:#fffdf9}.bucket-item>input{width:22px;height:22px;min-height:22px;margin:0;accent-color:var(--red)}.bucket-item-copy{min-width:0}.bucket-item-copy label{display:block;font-size:1rem;line-height:1.45;overflow-wrap:anywhere;cursor:pointer}.bucket-item-copy small{display:block;margin-top:4px}.bucket-item.is-done .bucket-item-copy label{text-decoration:line-through;color:var(--muted)}.bucket-item.is-done .bucket-item-copy small{color:#9a9a8e}
@media(max-width:700px){.chart-legend{gap:8px 12px;font-size:.72rem}.year-time-card{padding:24px 20px}.year-time-mark{font-size:2rem}.year-time-card p:first-of-type strong{font-size:4.5rem}.true-free-card{padding:24px 16px}.free-time-tip{font-size:.88rem;padding:17px}.time-category-row{padding:16px;gap:10px}.time-category-copy strong{font-size:1rem}.time-category-copy small{font-size:.75rem}.time-category-controls{gap:8px}.time-category-controls>strong{min-width:46px;font-size:1.15rem}.round-control{width:42px;height:42px;font-size:1.55rem}.people-grid{grid-template-columns:1fr}.person-row{grid-template-columns:1fr 1fr;gap:12px}.person-row label:first-child{grid-column:1/-1}.person-row .remove-person{justify-self:start}.bucket-form{grid-template-columns:1fr}.bucket-item{grid-template-columns:auto 1fr}.bucket-item .remove-bucket{grid-column:2;justify-self:start;padding-left:0}}

/* RE:IGNITE dashboard hierarchy: summary first, then expandable life categories. */
.life-summary{margin-top:24px;padding:22px 24px 24px;border:1px solid #d6c59c;border-radius:22px;background:linear-gradient(145deg,#fffdf5,#fff8dc);box-shadow:0 12px 30px rgba(79,43,20,.08)}
.life-summary-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:14px}.life-summary-heading h2{font-size:1.35rem}.life-summary-heading .eyebrow{margin:0;color:#a45a1a}
.life-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.life-summary-card{min-width:0;padding:16px 17px 15px;border:1px solid rgba(186,46,35,.18);border-radius:16px;background:rgba(255,255,255,.78);box-shadow:inset 0 1px 0 rgba(255,255,255,.75)}.life-summary-card>span{display:block;font-size:.78rem;font-weight:800;color:#5f5747;white-space:nowrap}.life-summary-card>strong{display:block;margin-top:6px;color:#ba2e23;font-family:Arial,"Yu Gothic",sans-serif;font-size:clamp(1.45rem,3vw,2.05rem);line-height:1.12;letter-spacing:-.05em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.life-summary-card>small{display:block;margin-top:4px;color:#7e725f;font-size:.72rem}.life-summary-card--health{border-color:#e7b54d}.life-summary-card--health>strong{color:#9b5a0a}.life-summary-card--wakuwaku{background:#fff3c0;border-color:#e7b54d}.life-summary-card--wakuwaku>strong{color:#ba2e23}
.dashboard-controls{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:2px 8px;margin:4px 0 12px}.dashboard-controls-label{margin-right:auto;color:#8a5b26;font-size:.72rem;font-weight:900;letter-spacing:.18em}.dashboard-controls .text-button{color:#7b5b31;min-height:40px;padding:6px 9px;font-size:.78rem}.dashboard-controls .text-button:hover{color:var(--red);background:#fff7dd;border-radius:8px}
.dashboard-accordion-list{display:grid;gap:14px}.dashboard-accordion{border:1px solid #d3c5a7;border-radius:20px;background:rgba(255,253,247,.94);overflow:clip;box-shadow:0 8px 22px rgba(53,34,21,.06);transition:border-color .25s ease,box-shadow .25s ease}.dashboard-accordion.is-open{border-color:#d99b38;box-shadow:0 12px 28px rgba(89,42,26,.1)}.dashboard-accordion-toggle{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;width:100%;min-height:78px;padding:15px 20px;border:0;background:transparent;color:var(--ink);text-align:left;gap:14px}.dashboard-accordion-toggle:hover{background:rgba(255,242,196,.42)}.dashboard-accordion-toggle:focus-visible{outline-offset:-4px}.dashboard-accordion-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:13px;background:#fff2c7;font-size:1.45rem;box-shadow:inset 0 0 0 1px #eac36f}.dashboard-accordion-copy{min-width:0}.dashboard-accordion-title{display:block;font-size:1.08rem;line-height:1.4;overflow-wrap:anywhere}.dashboard-accordion-summary{display:block;margin-top:3px;color:#776e61;font-size:.8rem;line-height:1.45;overflow-wrap:anywhere}.dashboard-accordion-arrow{display:block;color:var(--red);font-family:Arial,sans-serif;font-size:2rem;font-weight:300;line-height:1;transform:rotate(0deg);transition:transform .28s ease,color .2s ease}.dashboard-accordion.is-open .dashboard-accordion-arrow{transform:rotate(90deg);color:#a45a1a}.dashboard-accordion-panel{display:grid;grid-template-rows:0fr;opacity:0;transform:translateY(-7px);transition:grid-template-rows .3s ease,opacity .22s ease,transform .3s ease}.dashboard-accordion-panel-inner{min-height:0;overflow:hidden;padding:0 20px}.dashboard-accordion.is-open .dashboard-accordion-panel{grid-template-rows:1fr;opacity:1;transform:none}.dashboard-accordion.is-open .dashboard-accordion-panel-inner{padding-bottom:24px}.dashboard-accordion-panel-inner>[data-ui-item]{margin-top:8px}.dashboard-accordion-panel-inner>[data-ui-item]~[data-ui-item]{margin-top:34px}.dashboard-accordion-panel-inner>.asset-section,.dashboard-accordion-panel-inner>section{scroll-margin-top:24px}
.dashboard-accordion-close{display:block;min-height:44px;margin:18px 0 0 auto;padding:7px 18px;border:1px solid #d7a29c;border-radius:999px;background:#fff7f4;color:var(--red);font-size:.78rem;font-weight:800;transition:background .18s ease,border-color .18s ease,transform .18s ease}.dashboard-accordion-close:hover{background:#ffe9e4;border-color:var(--red)}.dashboard-accordion-close:active{transform:translateY(1px)}
.dashboard-accordion-list + .share-section{margin-top:14px}
.display-preferences{margin:12px 0 16px;padding:20px 22px;border-color:#d7c59d;background:#fffdf5}.display-preferences .section-head{margin-bottom:8px}.display-preferences-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:18px 0}.display-preferences-group{min-width:0;margin:0;padding:12px 14px;border:1px solid #e3d7bd;border-radius:14px}.display-preferences-group legend{padding:0 4px;font-weight:800;font-size:.85rem;color:#855018}.display-preference-option{display:flex;align-items:center;gap:9px;min-height:44px;padding:3px 0;font-size:.82rem;font-weight:600;color:#514b42}.display-preference-option input{width:20px;height:20px;min-height:20px;margin:0;accent-color:var(--red);flex:none}.display-preferences>p{font-size:.8rem}.display-preferences-reset{min-height:44px;font-size:.8rem}
@media(max-width:700px){.life-summary{margin-top:18px;padding:18px 14px 16px;border-radius:18px}.life-summary-heading{margin-bottom:10px}.life-summary-heading h2{font-size:1.15rem}.life-summary-grid{gap:8px}.life-summary-card{padding:13px 10px 12px;border-radius:13px}.life-summary-card>span{font-size:.68rem}.life-summary-card>strong{font-size:clamp(1.08rem,5.6vw,1.55rem);margin-top:5px}.life-summary-card>small{font-size:.63rem}.dashboard-controls{justify-content:flex-start;gap:2px 5px;margin:2px 0 9px}.dashboard-controls-label{flex-basis:100%;margin-bottom:2px}.dashboard-controls .text-button{font-size:.71rem;padding:5px 7px;min-height:38px}.dashboard-accordion{border-radius:17px}.dashboard-accordion-toggle{min-height:72px;padding:13px 13px;gap:10px}.dashboard-accordion-icon{width:38px;height:38px;border-radius:11px;font-size:1.25rem}.dashboard-accordion-title{font-size:.93rem}.dashboard-accordion-summary{font-size:.72rem;margin-top:2px}.dashboard-accordion-arrow{font-size:1.7rem}.dashboard-accordion-panel-inner{padding:0 12px}.dashboard-accordion.is-open .dashboard-accordion-panel-inner{padding-bottom:18px}.dashboard-accordion-panel-inner>[data-ui-item]~[data-ui-item]{margin-top:28px}.dashboard-accordion-close{margin-top:14px;padding:6px 15px;font-size:.72rem}.display-preferences{padding:16px 14px;border-radius:16px}.display-preferences-list{grid-template-columns:1fr;gap:10px;margin:14px 0}.display-preferences-group{padding:10px 12px}.display-preference-option{font-size:.78rem}}
@media(prefers-reduced-motion:reduce){.dashboard-accordion,.dashboard-accordion-panel,.dashboard-accordion-arrow{transition:none}}

/* Install action lives with the RE:IGNITE message so the next step is always visible. */
.hero-install-wrap{display:flex;align-items:center;flex-direction:column;gap:8px;margin:16px auto 10px}.hero-install-button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:50px;max-width:100%;padding:12px 24px;border:2px solid var(--yellow);border-radius:999px;background:linear-gradient(135deg,#d53a2b,#b5261d);color:#fff;font-weight:900;line-height:1.35;letter-spacing:.01em;box-shadow:0 4px 0 #8f241b,0 8px 20px rgba(130,32,24,.16);transition:transform .18s ease,box-shadow .18s ease,background .18s ease}.hero-install-button:hover{background:linear-gradient(135deg,#e04937,#c83024);transform:translateY(-1px);box-shadow:0 5px 0 #721a15,0 11px 24px rgba(130,32,24,.2)}.hero-install-button:active{transform:translateY(2px);box-shadow:0 2px 0 #721a15}.hero-install-button.is-focus{outline:3px solid var(--yellow);outline-offset:4px;box-shadow:0 0 0 8px rgba(255,226,87,.36),0 5px 0 #721a15,0 14px 30px rgba(130,32,24,.24)}.hero-install-button.is-unavailable{animation:install-unavailable .22s ease-out}.hero-install-help{display:block;max-width:620px;color:#3b342f;font-size:.76rem;font-weight:800;line-height:1.55;text-align:center;white-space:pre-line}.hero-install-help[hidden]{display:none!important}.dashboard-brand .hero-install-wrap{margin-top:14px;margin-bottom:12px}.dashboard-brand .hero-install-button{min-height:46px;padding:10px 20px;font-size:.88rem}.install-card{display:none!important}.topbar-install{display:none!important}
@keyframes install-unavailable{0%{transform:translateX(0)}35%{transform:translateX(-3px)}70%{transform:translateX(3px)}100%{transform:translateX(0)}}
@media(max-width:700px){.hero-install-wrap{margin:14px auto 8px;padding:0 6px}.hero-install-button{width:min(100%,360px);min-height:50px;padding:12px 16px;font-size:.9rem}.dashboard-brand .hero-install-wrap{margin-top:12px;margin-bottom:10px}.dashboard-brand .hero-install-button{width:min(100%,340px);font-size:.82rem}.hero-install-help{font-size:.78rem;padding:0 8px}}
@media(prefers-reduced-motion:reduce){.hero-install-button{transition:none}.hero-install-button.is-focus{box-shadow:0 0 0 5px rgba(255,226,87,.36)}}

.bucket-suggestions-panel{margin-top:24px;padding-top:18px;border-top:1px solid var(--line)}.bucket-suggestions-panel summary{font-size:1rem;font-weight:800;color:var(--ink)}.bucket-suggestions-panel>p{margin:8px 0 14px}.bucket-category-select{display:block;max-width:360px;font-size:.82rem;font-weight:700}.bucket-category-select select{margin-top:6px}.bucket-candidates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:14px}.bucket-suggestion{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:48px;padding:10px 12px;border:1px solid #d8c8a2;border-radius:12px;background:#fffaf0;color:var(--ink);font-size:.82rem;font-weight:700;line-height:1.4;text-align:left;transition:background .18s ease,border-color .18s ease,opacity .18s ease}.bucket-suggestion:hover{border-color:var(--red);background:#fff0e9}.bucket-suggestion:focus-visible{outline:3px solid #f2c94c;outline-offset:2px}.bucket-suggestion:disabled{opacity:.5;cursor:not-allowed;color:#8a8276;background:#f0ede8;border-color:#d8d0c7}.bucket-suggestion small{flex-shrink:0;color:#9a6d1c;font-size:.68rem;white-space:nowrap}.bucket-suggestion:disabled small{color:#8a8276}.edit-bucket{margin-top:8px;min-height:34px;padding:5px 10px;font-size:.72rem}.bucket-due-editor{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:8px}.bucket-due-editor input{min-height:36px;width:auto}.save-bucket-due,.cancel-bucket-due{min-height:36px;padding:5px 10px;font-size:.72rem}
@media(max-width:700px){.bucket-candidates{grid-template-columns:1fr}.bucket-category-select{max-width:none}.bucket-suggestion{min-height:46px}.bucket-due-editor input{width:100%}}

/* RE:IGNITE life world: a quiet, responsive sky that grows from saved actions. */
body{position:relative;background:var(--paper)}
.topbar,.shell{position:relative;z-index:2}.topbar{background:linear-gradient(180deg,rgba(247,247,242,.96),rgba(247,247,242,.78));backdrop-filter:blur(5px)}
.life-world{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none;isolation:isolate;background:#15152b;transition:filter 1.5s ease}
.life-world>div{position:absolute;inset:0}
.life-world-base-sky{background:linear-gradient(180deg,#0d1735 0%,#241a36 42%,#6a3031 76%,#d08a45 100%);opacity:.46;transition:opacity 1.4s ease,filter 1.4s ease}
.life-world-distant-glow{background:radial-gradient(ellipse at 50% 82%,#ffd36c 0%,#e5723d 17%,transparent 55%);opacity:.16;transition:opacity 1.4s ease,transform 1.4s ease}
.life-world-readability{background:linear-gradient(180deg,rgba(247,247,242,.89) 0%,rgba(247,247,242,.76) 44%,rgba(247,247,242,.9) 100%);z-index:20;transition:background 1.4s ease,opacity 1.4s ease}
.life-world-stars,.life-world-city-lights,.life-world-birds,.life-world-balloons,.life-world-particles,.life-world-fireworks,.life-world-effects{z-index:4}
.world-star{position:absolute;left:var(--x);top:var(--y);width:var(--size);height:var(--size);border-radius:50%;background:#fff6cf;box-shadow:0 0 8px #fff6cf99;opacity:0;animation:world-twinkle 7s ease-in-out var(--delay) infinite}
.life-world-mountains{z-index:5;top:auto!important;height:39%;bottom:0;background:transparent}
.life-world-mountain{position:absolute;inset:auto 0 0;height:100%;clip-path:polygon(0 74%,8% 62%,16% 70%,27% 42%,38% 68%,49% 50%,59% 73%,70% 46%,80% 66%,90% 54%,100% 72%,100% 100%,0 100%);transition:filter 1.4s ease,opacity 1.4s ease}
.life-world-mountain-back{background:#4b2b3c;opacity:.36;transform:scale(1.08);transform-origin:bottom}
.life-world-mountain-front{background:#291f34;opacity:.52;clip-path:polygon(0 83%,10% 67%,22% 79%,34% 58%,45% 80%,58% 61%,70% 82%,83% 64%,92% 78%,100% 69%,100% 100%,0 100%)}
.world-city-light{position:absolute;left:var(--x);top:var(--y);width:4px;height:7px;border-radius:1px;background:#ffd86c;box-shadow:0 0 7px #ffc84f;opacity:0;animation:world-window 5s ease-in-out var(--delay) infinite}
.life-world-birds{z-index:6}.world-bird{position:absolute;left:var(--x);top:var(--y);font-size:1.2rem;line-height:1;color:#3b2940;opacity:0;transform:rotate(-8deg);animation:world-bird-float 16s ease-in-out var(--delay) infinite}
.world-balloon{position:absolute;left:var(--x);top:var(--y);width:24px;height:32px;border-radius:50% 50% 45% 45%;background:linear-gradient(145deg,#ffe58a,#d94b31);box-shadow:0 5px 10px #5c242355;opacity:0;animation:world-balloon-float 14s ease-in-out var(--delay) infinite}
.world-balloon::after{content:"";position:absolute;left:50%;top:100%;width:1px;height:24px;background:#643a37;transform:translateX(-50%)}.world-balloon::before{content:"";position:absolute;left:50%;top:calc(100% + 22px);width:9px;height:5px;background:#7d4a30;transform:translateX(-50%)}
.world-particle{position:absolute;left:var(--x);top:var(--y);width:4px;height:4px;border-radius:50%;background:#ffd66a;box-shadow:0 0 10px #ffae43;opacity:0;animation:world-particle-rise var(--duration) ease-in-out var(--delay) infinite}
.life-world-fireworks i{position:absolute;width:34px;height:34px;border:2px solid #ffc957;border-radius:50%;opacity:0;transform:scale(.2)}.life-world-fireworks i:first-child{left:22%;top:32%}.life-world-fireworks i:last-child{right:18%;top:42%;border-color:#e45a3c}
.life-world-fireworks i::after{content:"";position:absolute;inset:7px;border:1px solid currentColor;border-radius:50%;color:inherit}.life-world-fireworks i:first-child::after{color:#ffe99c}.life-world-fireworks i:last-child::after{color:#ffb04c}
.life-world-effects{z-index:40}.life-world.is-stage-changing{filter:saturate(1.18) brightness(1.08)}
.life-world-toast{position:fixed;left:50%;bottom:max(78px,calc(env(safe-area-inset-bottom) + 70px));z-index:60;max-width:min(90vw,520px);padding:10px 18px;border:1px solid #f0c45a;border-radius:999px;background:rgba(43,28,34,.94);color:#fff8df;box-shadow:0 8px 28px #3b1d2640;font-size:.86rem;font-weight:700;line-height:1.5;text-align:center;opacity:0;transform:translate(-50%,12px);transition:opacity .26s ease,transform .26s ease;pointer-events:none}.life-world-toast.is-visible{opacity:1;transform:translate(-50%,0)}
.life-world-intro{position:fixed;left:50%;bottom:max(92px,calc(env(safe-area-inset-bottom) + 84px));z-index:55;width:min(92vw,520px);padding:18px 20px;border:1px solid #edc75f;border-radius:16px;background:rgba(44,29,37,.96);color:#fff8df;box-shadow:0 14px 38px #32192355;transform:translateX(-50%);font-size:.88rem;line-height:1.65}.life-world-intro strong{display:block;color:#ffe488;font-size:1rem}.life-world-intro p{margin-top:6px}.life-world-intro button{margin-top:12px;min-height:40px;padding:7px 16px;border-color:#f0c45a;background:transparent;color:#fff8df}

/* Stage 0: a sparse, quiet sky. Each later stage reveals another layer. */
#life-world[data-stage="0"] .world-star:nth-child(-n+10),#life-world[data-stage="1"] .world-star:nth-child(-n+18),#life-world[data-stage="2"] .world-star:nth-child(-n+30),#life-world[data-stage="3"] .world-star:nth-child(-n+40),#life-world[data-stage="4"] .world-star:nth-child(-n+48),#life-world[data-stage="5"] .world-star:nth-child(-n+56),#life-world[data-stage="6"] .world-star:nth-child(-n+62),#life-world[data-stage="7"] .world-star{opacity:.68}
#life-world[data-stage="1"] .life-world-distant-glow{opacity:.24}#life-world[data-stage="2"] .life-world-distant-glow{opacity:.32}#life-world[data-stage="3"] .life-world-distant-glow{opacity:.42}#life-world[data-stage="4"] .life-world-distant-glow{opacity:.52}#life-world[data-stage="5"] .life-world-distant-glow{opacity:.64}#life-world[data-stage="6"] .life-world-distant-glow{opacity:.74}#life-world[data-stage="7"] .life-world-distant-glow{opacity:.84}
#life-world[data-stage="1"] .world-particle:nth-child(-n+3),#life-world[data-stage="2"] .world-particle:nth-child(-n+5),#life-world[data-stage="3"] .world-particle:nth-child(-n+7),#life-world[data-stage="4"] .world-particle:nth-child(-n+9),#life-world[data-stage="5"] .world-particle:nth-child(-n+11),#life-world[data-stage="6"] .world-particle:nth-child(-n+13),#life-world[data-stage="7"] .world-particle{opacity:.55}
#life-world[data-stage="3"] .world-city-light,#life-world[data-stage="4"] .world-city-light{opacity:.62}#life-world[data-stage="5"] .world-city-light,#life-world[data-stage="6"] .world-city-light,#life-world[data-stage="7"] .world-city-light{opacity:.82}
#life-world[data-stage="4"] .world-bird,#life-world[data-stage="5"] .world-bird,#life-world[data-stage="6"] .world-bird,#life-world[data-stage="7"] .world-bird{opacity:.62}
#life-world[data-stage="6"] .world-balloon,#life-world[data-stage="7"] .world-balloon{opacity:.72}
#life-world[data-stage="7"] .life-world-fireworks i{animation:world-distant-firework 18s ease-in-out infinite}.life-world-fireworks i:last-child{animation-delay:-8s}
#life-world[data-stage="5"] .life-world-base-sky{background:linear-gradient(180deg,#111b39 0%,#332139 42%,#924032 76%,#e4a348 100%)}#life-world[data-stage="6"] .life-world-base-sky,#life-world[data-stage="7"] .life-world-base-sky{background:linear-gradient(180deg,#182044 0%,#42253b 40%,#a54a35 75%,#f1bd5d 100%)}#life-world[data-stage="7"] .life-world-readability{background:linear-gradient(180deg,rgba(247,247,242,.84),rgba(247,247,242,.7) 44%,rgba(247,247,242,.86))}

.life-celebration{position:fixed;left:var(--celebration-x);top:var(--celebration-y);width:0;height:0;pointer-events:none}.life-celebration-fireworks::before,.life-celebration-fireworks::after,.life-celebration-ring::before,.life-celebration-ring::after{content:"";position:absolute;left:0;top:0;border-radius:50%;transform:translate(-50%,-50%) scale(.2);opacity:0}.life-celebration-fireworks::before{width:20px;height:20px;border:2px solid #ffe16e;box-shadow:0 0 0 2px #e65b3b,0 0 28px #ffd66c;animation:celebration-burst 1.2s ease-out}.life-celebration-fireworks::after{width:14px;height:14px;border:1px solid #fff8dc;animation:celebration-burst .9s .15s ease-out}.life-celebration-ring::before{width:18px;height:18px;border:2px solid #e65b3b;box-shadow:0 0 18px #ffc857;animation:celebration-ring .75s ease-out}.life-celebration-ring::after{width:18px;height:18px;border:1px solid #ffe16e;animation:celebration-ring .75s .12s ease-out}
.celebration-piece{position:absolute;left:0;top:0;width:6px;height:6px;border-radius:50%;background:#ffe16e;box-shadow:0 0 9px #ffe16e;animation:celebration-piece 1.05s var(--delay) ease-out forwards}.life-celebration-embers .celebration-piece{width:5px;height:9px;border-radius:60% 40% 60% 40%;background:#e65b3b;box-shadow:0 0 10px #ffba43}.life-celebration-particles .celebration-piece{background:#fff8dc}.life-celebration-shooting-star::before{content:"";position:absolute;left:0;top:0;width:105px;height:2px;background:linear-gradient(90deg,transparent,#fff8dc 60%,#ffe16e);transform:translate(-10px,-10px) rotate(-24deg);transform-origin:right center;animation:celebration-shooting-star 1s ease-out forwards}

@keyframes world-twinkle{0%,100%{transform:scale(.75);opacity:.35}50%{transform:scale(1.35);opacity:.9}}@keyframes world-window{0%,100%{filter:brightness(.7)}50%{filter:brightness(1.35)}}@keyframes world-particle-rise{0%{transform:translateY(12px);opacity:0}25%{opacity:.8}100%{transform:translateY(-46px);opacity:0}}@keyframes world-bird-float{0%,100%{transform:translateX(-12px) translateY(3px) rotate(-8deg)}50%{transform:translateX(18px) translateY(-9px) rotate(5deg)}}@keyframes world-balloon-float{0%,100%{transform:translateY(8px) rotate(-2deg)}50%{transform:translateY(-16px) rotate(3deg)}}@keyframes world-distant-firework{0%,83%,100%{opacity:0;transform:scale(.2)}88%{opacity:.75;transform:scale(1)}94%{opacity:.1;transform:scale(1.6)}}@keyframes celebration-burst{0%{opacity:0;transform:translate(-50%,-50%) scale(.2)}30%{opacity:1}100%{opacity:0;transform:translate(-50%,-50%) scale(4.8)}}@keyframes celebration-ring{0%{opacity:.8;transform:translate(-50%,-50%) scale(.3)}100%{opacity:0;transform:translate(-50%,-50%) scale(5.5)}}@keyframes celebration-piece{0%{opacity:0;transform:rotate(var(--angle)) translateY(4px) scale(.6)}22%{opacity:1}100%{opacity:0;transform:rotate(var(--angle)) translateY(var(--distance)) scale(.2)}}@keyframes celebration-shooting-star{0%{opacity:0;transform:translate(-10px,-10px) rotate(-24deg) scaleX(.2)}22%{opacity:1}100%{opacity:0;transform:translate(130px,70px) rotate(-24deg) scaleX(1)}}
body.life-world-paused .life-world *{animation-play-state:paused!important}
@media(max-width:700px){.life-world-readability{background:linear-gradient(180deg,rgba(247,247,242,.9),rgba(247,247,242,.8) 52%,rgba(247,247,242,.92))}.life-world-mountains{height:34%}.world-star:nth-child(n+45){display:none}.world-city-light:nth-child(n+15){display:none}.world-bird:nth-child(n+4){display:none}.world-balloon:nth-child(n+2){display:none}.world-particle:nth-child(n+10){display:none}.life-world-intro{bottom:max(86px,calc(env(safe-area-inset-bottom) + 76px));padding:16px}.life-world-toast{max-width:calc(100vw - 28px);font-size:.8rem}}
@media(prefers-reduced-motion:reduce){.life-world,.life-world *{animation:none!important;transition:none!important}.life-world-toast{transition:opacity .2s ease,transform .2s ease}.life-celebration{display:none}}

/* Celebration effects are portaled to body so they always sit above the app UI. */
.life-world-effects.is-portal{position:fixed!important;inset:0!important;z-index:50!important;overflow:visible;pointer-events:none!important}
.life-world-effects.is-portal .life-celebration{z-index:51}
.life-world-effects.is-portal .life-celebration-fireworks::before{width:34px;height:34px;border-width:3px;box-shadow:0 0 0 3px #e65b3b,0 0 38px #ffd66c}
.life-world-effects.is-portal .life-celebration-fireworks::after{width:24px;height:24px;border-width:2px}
.life-world-effects.is-portal .life-celebration-ring::before{width:32px;height:32px;border-width:3px;box-shadow:0 0 26px #ffc857}
.life-world-effects.is-portal .life-celebration-ring::after{width:28px;height:28px;border-width:2px}
.life-world-effects.is-portal .celebration-piece{width:8px;height:8px;box-shadow:0 0 14px #ffe16e}
.life-world-effects.is-portal .life-celebration-embers .celebration-piece{width:7px;height:13px;box-shadow:0 0 16px #ffba43}
.life-world-effects.is-portal .life-celebration-shooting-star::before{width:140px;height:3px;box-shadow:0 0 14px #fff8dc}
.life-world-effects.is-portal{z-index:70!important}
.life-world-effects.is-portal .life-celebration{z-index:71;filter:drop-shadow(0 3px 6px rgba(128,28,19,.55))}
.life-world-effects.is-portal .celebration-piece{background:#d73a29;box-shadow:0 0 0 2px rgba(255,248,220,.92),0 0 16px #e65b3b}
.life-world-effects.is-portal .life-celebration-particles .celebration-piece{background:#ffe16e;box-shadow:0 0 0 2px #c83024,0 0 16px #ffd66c}
.life-world-effects.is-portal .life-celebration-shooting-star::before{filter:drop-shadow(0 0 4px #c83024)}
.life-world-effects.is-portal .life-celebration-stars::before,.life-world-effects.is-portal .life-celebration-embers::before,.life-world-effects.is-portal .life-celebration-particles::before{content:"";position:absolute;left:0;top:0;width:16px;height:16px;border-radius:50%;background:#ffe16e;box-shadow:0 0 0 3px #c83024,0 0 28px #ffd66c;transform:translate(-50%,-50%) scale(.2);opacity:0;animation:celebration-core 1.8s ease-out}
@keyframes celebration-core{0%{opacity:0;transform:translate(-50%,-50%) scale(.2)}22%{opacity:1}100%{opacity:0;transform:translate(-50%,-50%) scale(4.4)}}
.life-world-canvas{position:fixed!important;inset:0!important;width:100%!important;height:100%!important;z-index:70!important;pointer-events:none!important;display:block;mix-blend-mode:normal}
body.life-world-paused .life-world-canvas{display:none}
.life-world.is-celebrating .life-world-distant-glow{opacity:.82!important;transform:none;filter:none}
.life-world.is-celebrating .world-star{animation-duration:2.2s!important}
.life-world.is-stage-up{filter:none!important}
.life-world[data-fx-quality="light"].is-celebrating .world-star,.life-world[data-fx-quality="light"].is-celebrating .world-city-light,.life-world[data-fx-quality="light"].is-celebrating .world-bird,.life-world[data-fx-quality="light"].is-celebrating .world-balloon,.life-world[data-fx-quality="light"].is-celebrating .world-particle,.life-world[data-fx-quality="light"].is-celebrating .life-world-fireworks i{animation-play-state:paused!important}
.life-world[data-fx-quality="light"].is-celebrating .world-star:nth-child(n+25){display:none}
.life-world-toast{z-index:90;min-height:48px;padding:14px 28px;border-width:3px;background:linear-gradient(110deg,rgba(53,27,34,.98),rgba(105,42,27,.97) 56%,rgba(53,27,34,.98));box-shadow:0 0 0 2px rgba(255,225,110,.2),0 14px 44px rgba(126,42,24,.58),0 0 58px rgba(255,193,73,.38);text-shadow:0 1px 12px rgba(255,218,133,.48);font-size:1rem;letter-spacing:.025em}
.life-world-toast[data-rarity="super-rare"]{border-color:#ffe16e;box-shadow:0 0 0 3px rgba(230,91,59,.42),0 16px 58px rgba(126,42,24,.68),0 0 70px rgba(255,193,73,.52);font-size:1.08rem;letter-spacing:.04em}
.life-world-toast.is-stage-up{border-radius:14px;padding:13px 24px;color:#fff8dc;letter-spacing:.05em}
.event-card.is-recent,.person-card.is-recent,.bucket-item.is-recent,.log-entry.is-recent{animation:life-card-reward 1.5s cubic-bezier(.22,.9,.35,1);border-color:#e65b3b;box-shadow:0 0 0 2px rgba(255,225,110,.48),0 10px 30px rgba(198,48,36,.16)}
@keyframes life-card-reward{0%{transform:scale(.96);filter:brightness(1)}30%{transform:scale(1.025);filter:brightness(1.12)}62%{transform:scale(.995);filter:brightness(1.04)}100%{transform:scale(1);filter:brightness(1)}}
@media(prefers-reduced-motion:reduce){.event-card.is-recent,.person-card.is-recent,.bucket-item.is-recent,.log-entry.is-recent{animation:none;box-shadow:0 0 0 2px rgba(255,225,110,.55)}}

/* Dashboard refinements: compact action cards, readable progress bars, and inline editors. */
.year-time-card{align-items:stretch}
.year-time-main{min-width:0;flex:1}
.year-consumed-summary{margin-top:16px;color:#fff2e9;font-size:.92rem}
.year-consumed-summary strong{margin-left:6px;color:#fff8d7;font-family:Arial,"Yu Gothic",sans-serif;font-size:1.35rem}
.year-progress-list{display:grid;gap:12px;margin-top:18px}
.year-progress-label{display:flex;align-items:baseline;justify-content:space-between;gap:12px;color:#fff7f2;font-size:.78rem;font-weight:800}
.year-progress-label strong{color:#fff8d7;font-size:.8rem;font-weight:700;white-space:nowrap}
.year-progress-track{height:10px;margin-top:6px;border-radius:999px;background:#7b1f1b;overflow:hidden;box-shadow:inset 0 1px 2px #3b0806}
.year-progress-track>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#ffe46b,#ffb02e);transition:width .25s ease}
.year-progress:nth-child(2) .year-progress-track>span{background:linear-gradient(90deg,#ffd15a,#fff0ae)}
.true-free-card{background:#2a2119;color:#fffdf5;border-color:#ffcf4a;box-shadow:0 12px 35px #7d4d001f}
.true-free-card>span,.true-free-card strong,.true-free-card>p:not(.true-free-detail)>span,.true-free-detail{color:#fffdf5}
.true-free-card strong{color:#ffe05c}
.free-time-tip{background:#0b3030;color:#fff;}
.time-category-copy small{color:#e9e3f5}
.events-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.event-card-action{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"title count" "detail action";align-items:center;column-gap:12px;row-gap:3px;min-height:92px;padding:13px 16px 12px;cursor:pointer;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}
.event-card-action:hover,.event-card-action:focus-visible{border-color:var(--red);box-shadow:0 7px 18px #ba2e2314;transform:translateY(-1px)}
.event-card-action h3{grid-area:title;font-size:1rem;font-weight:800;line-height:1.35;padding-right:0}
.event-card-action .event-detail{grid-area:detail;color:var(--muted);font-size:.78rem}
.event-card-action .event-count{grid-area:count;margin:0;text-align:right;white-space:nowrap;font-size:.78rem;color:var(--muted)}
.event-card-action .event-count strong{font-size:1.85rem;color:var(--red);margin:0 4px;font-variant-numeric:tabular-nums}
.event-actions{grid-area:action;display:flex;justify-content:flex-end;gap:6px;min-height:32px}
.event-adjust{min-height:32px;padding:3px 9px;border:1px solid #d7a29c;border-radius:999px;background:#fff7f4;color:var(--red);font-size:.72rem;font-weight:800;white-space:nowrap}
.event-adjust:hover{background:#ffe9e4}
.remove-event{z-index:1}
.event-add-panel{margin-top:16px}
.event-form{grid-template-columns:minmax(0,1fr) minmax(150px,.45fr) auto}
.event-examples-lead{margin-top:18px}
.event-examples{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px}
.event-example{min-height:42px;padding:8px 10px;font-size:.8rem;line-height:1.4}
.people-form{margin-top:18px;padding:20px;border:1px solid var(--line);border-radius:18px;background:#fffdf9}
.people-form-grid{display:grid;grid-template-columns:1.4fr repeat(3,.8fr);gap:14px;align-items:end}
.person-card-action{cursor:pointer;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}
.person-card-action:hover,.person-card-action:focus-visible{border-color:var(--red);box-shadow:0 7px 18px #ba2e2314;transform:translateY(-1px)}
.person-card-actions{display:flex;gap:8px;margin-top:14px}
.person-edit{min-height:36px;padding:5px 12px;border:1px solid #d7a29c;border-radius:999px;background:#fff7f4;color:var(--red);font-size:.78rem;font-weight:800}
.person-edit:hover{background:#ffe9e4}
.person-card-actions .remove-person{min-height:36px;padding:5px 12px}
@media(max-width:700px){
  .year-time-card{display:block;padding:24px 20px}
  .year-time-mark{margin-top:18px;text-align:left;font-size:2rem}
  .year-progress-label{font-size:.75rem}
  .events-grid{grid-template-columns:1fr}
  .event-card-action{min-height:82px;padding:12px 15px}
  .event-card-action h3{font-size:.95rem}
  .event-card-action .event-count strong{font-size:1.65rem}
  .event-form{grid-template-columns:1fr 1fr}
  .event-form label:first-child,.event-form button{grid-column:1/-1}
  .event-examples{grid-template-columns:repeat(2,minmax(0,1fr))}
  .people-form-grid{grid-template-columns:1fr 1fr;gap:12px}
  .people-form-grid label:first-child{grid-column:1/-1}
  .people-form .actions{flex-direction:column;align-items:stretch}
}

/* Event and life-log controls stay explicit and reversible. */
.event-card-action{cursor:default}
.event-card-action:hover,.event-card-action:focus-visible{border-color:var(--line);box-shadow:none;transform:none}
.event-adjust:disabled{opacity:.42;cursor:not-allowed;color:#968c82;border-color:#d8d0c7;background:#f0ede8}
.event-example.is-added,.event-example:disabled{opacity:.46;cursor:not-allowed;color:#958b81;border-color:#d8d0c7;background:#eeeae4;filter:saturate(.55)}
.event-example.is-added{text-decoration:line-through;text-decoration-thickness:1px}
.log-entry{position:relative;padding-right:5rem}
.remove-log{position:absolute;top:13px;right:0;min-height:34px;padding:5px 11px;border:1px solid #d7a29c;border-radius:999px;background:#fff7f4;color:var(--red);font-size:.76rem;font-weight:800}
.remove-log:hover{background:#ffe9e4}
@media(max-width:700px){.log-entry{padding-right:4.5rem}.remove-log{top:11px;padding:5px 9px;font-size:.72rem}}

/* Reorderable experience cards: drag on desktop, long-press on touch screens. */
.event-card-action{cursor:grab;user-select:none;touch-action:pan-y}
.event-card-action:active{cursor:grabbing}
.event-card-action.is-dragging{opacity:.58;cursor:grabbing}
.event-card-action.is-drag-over{border-color:var(--red);box-shadow:0 0 0 3px #ba2e2326;transform:translateY(-1px)}
.event-order-controls{display:flex;align-items:center;gap:4px;margin-left:2px}
.event-order-control{width:30px;height:30px;min-height:30px;padding:0;border:1px solid #d7a29c;border-radius:8px;background:#fff7f4;color:var(--red);font-size:.9rem;font-weight:900;line-height:1}
.event-order-control:hover{background:#ffe9e4}
.event-order-control:disabled{opacity:.4;cursor:not-allowed;color:#968c82;border-color:#d8d0c7;background:#f0ede8}
.people-add-row{display:flex;justify-content:flex-end;margin-top:14px}
@media(max-width:700px){.event-order-controls{gap:3px;margin-left:0}.event-order-control{width:28px;height:28px;min-height:28px;font-size:.82rem}.people-add-row{justify-content:flex-start;margin-top:10px}}

/* Life log tools and people card reordering. */
.year-time-prefix{font-size:1.15rem;font-weight:800;white-space:nowrap}
.log-search{display:block;margin-top:24px;font-size:.875rem}
.log-search input{margin-top:6px}
.log-list-controls{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:14px}
.log-entry{padding-right:0}
.log-entry-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px}
.edit-log,.remove-log,.save-log,.cancel-log{position:static;min-height:36px;padding:5px 12px;border:1px solid #d7a29c;border-radius:999px;font-size:.76rem;font-weight:800}
.edit-log,.remove-log{background:#fff7f4;color:var(--red)}
.edit-log:hover,.remove-log:hover{background:#ffe9e4}
.log-edit-input{margin-top:10px}
.person-card-action{cursor:grab;user-select:none;touch-action:pan-y}
.person-card-action:active{cursor:grabbing}
.person-card-action.is-dragging{opacity:.58;cursor:grabbing}
.person-card-action.is-drag-over{border-color:var(--red);box-shadow:0 0 0 3px #ba2e2326;transform:translateY(-1px)}
.person-order-controls{display:flex;align-items:center;gap:4px;margin-left:auto}
.person-order-control{width:30px;height:30px;min-height:30px;padding:0;border:1px solid #d7a29c;border-radius:8px;background:#fff7f4;color:var(--red);font-size:.9rem;font-weight:900;line-height:1}
.person-order-control:hover{background:#ffe9e4}
.person-order-control:disabled{opacity:.4;cursor:not-allowed;color:#968c82;border-color:#d8d0c7;background:#f0ede8}
@media(max-width:700px){
  .year-time-prefix{font-size:1rem}
  .log-list-controls{justify-content:flex-start}
  .person-order-controls{gap:3px;margin-left:0}
  .person-order-control{width:28px;height:28px;min-height:28px;font-size:.82rem}
}

/* Life expectancy card: compact, dark app-like treatment inspired by the supplied mobile reference. */
.hero-grid{grid-template-columns:1fr}
.life-card{border:1px solid #4a3e31;border-radius:22px;padding:28px 32px;background:#211d18;color:#fffdf5;box-shadow:0 18px 45px #211d181c}
.life-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.life-card-kicker{display:block;color:#ffe257;font-size:.72rem;font-weight:800;letter-spacing:.16em;margin-bottom:7px}.life-card h2{color:#fffdf5;font-size:clamp(1.3rem,3vw,1.7rem)}.life-card-subtitle{margin-top:4px;color:#cfc5b6;font-size:.9rem}.life-card-badge{border:1px solid #887652;border-radius:99px;color:#ffe257;font-size:.7rem;font-weight:800;letter-spacing:.12em;padding:4px 10px;white-space:nowrap}
.life-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;max-width:560px;margin:22px auto 8px;padding:4px;border:1px solid #4b4033;border-radius:12px;background:#151310}.life-tabs button{border:0;border-radius:8px;min-height:48px;background:transparent;color:#a9a092;font-weight:800;transition:background .2s,color .2s,transform .2s}.life-tabs button:hover{color:#fffdf5}.life-tabs button.is-active{background:var(--red);color:white;box-shadow:0 4px 0 #872117}.life-tabs button:active{transform:translateY(1px)}
.life-meter{outline:none}.life-ring{width:min(70vw,320px);aspect-ratio:1;margin:18px auto 16px;position:relative}.life-ring svg{display:block;width:100%;height:100%;overflow:visible}.life-ring-track,.life-ring-progress{fill:none;stroke-width:13}.life-ring-track{stroke:#4b4035}.life-ring-progress{stroke:#ffe257;stroke-linecap:round;transform:rotate(-90deg);transform-origin:120px 120px;transition:stroke-dashoffset .45s ease}.life-ring-value{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.1}.life-ring-value strong{font-family:Arial,"Yu Gothic",sans-serif;font-size:clamp(3rem,10vw,4.8rem);font-weight:800;letter-spacing:-.06em;font-variant-numeric:tabular-nums}.life-ring-value span{font-weight:800;font-size:1rem;margin-top:8px}.life-ring-value small{color:#cfc5b6;font-size:.9rem;margin-top:8px}.life-subcount-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(7px,1.8vw,12px);border-top:1px solid #4b4035;padding:22px 0 0;max-width:620px;margin:auto}.life-subcount-card{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;min-height:72px;padding:12px 6px 10px;border:1px solid #80662f;border-radius:15px;background:linear-gradient(145deg,#30251d 0%,#1a1714 72%);box-shadow:0 8px 18px #08060438,inset 0 1px 0 #ffe2571a;overflow:hidden}.life-subcount-card::before{content:"";position:absolute;inset:0 0 auto;height:2px;background:linear-gradient(90deg,#ba2e23,#ffe257);opacity:.9}.life-subcount-card strong{display:block;color:#fffdf5;font-family:Arial,"Yu Gothic",sans-serif;font-size:clamp(1.35rem,3.9vw,2rem);font-weight:850;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.045em;white-space:nowrap}.life-subcount-card span{display:block;margin-top:8px;color:#ffe257;font-size:.72rem;font-weight:800;letter-spacing:.08em;line-height:1}.life-card-note{max-width:680px;border-top:1px solid #4b4035;margin:20px auto 0;padding-top:15px;color:#cfc5b6;font-size:.84rem;text-align:center;line-height:1.65}
@media(max-width:700px){.life-card{padding:22px 18px;border-radius:18px}.life-card-head{gap:10px}.life-card-subtitle{font-size:.82rem}.life-tabs{margin-top:18px}.life-ring{width:min(72vw,300px);margin-top:16px}.life-subcount-grid{gap:6px;padding-top:18px}.life-subcount-card{min-height:67px;padding:11px 3px 9px;border-radius:13px}.life-subcount-card strong{font-size:clamp(1.18rem,6vw,1.65rem)}.life-subcount-card span{margin-top:7px;font-size:.67rem}.life-card-note{font-size:.78rem}}
.budget-stack{display:grid;gap:20px;align-content:start}.budget-card--living{background:#fffdf9;border-color:#ddd3c8}.budget-card--wakuwaku{background:#fff3b1;border-color:#ffe257;position:relative}.budget-card--wakuwaku .pill{color:#9b4f1f;border-color:#c88133}.budget-card-lead{font-size:.92rem;line-height:1.7}.budget-compare{display:grid;grid-template-columns:1fr 1fr;gap:14px;border-top:1px solid #e2d8cd;padding-top:14px}.budget-compare div{display:flex;flex-direction:column;gap:2px}.budget-compare span{font-size:.75rem;color:#777064}.budget-compare strong{font-family:Arial,"Yu Gothic",sans-serif;font-size:1.35rem;line-height:1.2;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.budget-compare small{font-size:.72rem;color:#777064}.budget-message{font-size:.84rem;font-weight:700;line-height:1.65}.budget-card--living .budget-message{color:#7b5a1c}.budget-card--wakuwaku .budget-number{color:#bf3526}.wakuwaku-surplus{display:flex;align-items:center;justify-content:space-between;gap:14px;border-top:1px solid #dfbf55;padding-top:14px;font-size:.8rem;color:#6b5720}.wakuwaku-surplus strong{font-family:Arial,"Yu Gothic",sans-serif;font-size:1.45rem;color:#a52c20;white-space:nowrap}.wakuwaku-intro{border:1px solid #e2bd4d;border-radius:12px;background:#fff9d9;padding:14px 15px;font-size:.8rem;line-height:1.7}.wakuwaku-intro strong{display:block;font-size:.9rem;color:#8d3b1d}.wakuwaku-intro p{margin-top:5px}.intro-dismiss{margin-top:9px;border:0;border-bottom:1px solid currentColor;background:transparent;color:#8d3b1d;font-size:.78rem;font-weight:700;padding:2px 0}.budget-zero-note{margin-top:-3px;color:#865d32;font-size:.8rem;font-weight:700}.budget-card--wakuwaku.is-zero .budget-number{color:#c83024}@media(max-width:700px){.budget-compare{gap:9px}.budget-compare strong{font-size:1.15rem}.wakuwaku-surplus{align-items:flex-start;flex-direction:column;gap:4px}.wakuwaku-surplus strong{font-size:1.3rem}}
.topbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px}.topbar-install{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 14px;border:1px solid #c83024;border-radius:999px;background:#c83024;color:#fff;font-size:.78rem;font-weight:800;line-height:1.2;white-space:nowrap;box-shadow:0 3px 0 #8f241b;transition:transform .18s ease,background .18s ease,box-shadow .18s ease}.topbar-install:hover{background:#a42218;box-shadow:0 4px 0 #721a15;transform:translateY(-1px)}.topbar-install:active{transform:translateY(1px);box-shadow:0 1px 0 #721a15}.install-card--focus{outline:3px solid #c83024;outline-offset:3px;box-shadow:0 0 0 7px #ffe257aa,0 14px 30px #c8302433;animation:install-focus-pulse .85s ease-in-out 2}.install-card--focus .secondary{background:#c83024;color:#fff;border-color:#c83024}@keyframes install-focus-pulse{50%{transform:translateY(-2px)}}
@media(max-width:700px){.topbar-actions{gap:8px}.app-tag{font-size:.7rem}.topbar-install{min-height:42px;padding:8px 10px;font-size:.72rem}.install-card--focus{outline-offset:2px}}
@media(prefers-reduced-motion:reduce){.topbar-install,.home-install-link{transition:none}.install-card--focus{animation:none}}

/* Bucket list organization and device-to-device transfer. */
.bucket-form{grid-template-columns:minmax(0,1.45fr) minmax(150px,.72fr) minmax(150px,.72fr) auto}
.bucket-group{display:grid;gap:10px;margin-top:24px}.bucket-group:first-child{margin-top:0}.bucket-group-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 2px 2px;border-bottom:1px solid #e3d7bd}.bucket-group-head h3{font-size:1rem;line-height:1.4}.bucket-group-count{color:#9a6d1c;font-size:.75rem;font-weight:800;white-space:nowrap}.bucket-group-list{display:grid;gap:10px}.bucket-item-category{display:flex;align-items:center;gap:8px;margin-top:8px;color:#777064;font-size:.72rem;font-weight:700}.bucket-item-category select{width:auto;min-width:0;max-width:100%;min-height:34px;margin:0;padding:5px 28px 5px 9px;border-radius:8px;background:#fff;color:var(--ink);font-size:.72rem;font-weight:700}.data-transfer-panel{margin:26px 0;padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.data-transfer-panel h2{font-size:1.15rem}.data-transfer-panel>p{margin-top:8px;font-size:.875rem}.data-transfer-actions{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0 8px}.data-import-label{cursor:pointer}.data-transfer-panel>small{display:block;line-height:1.6}
@media(max-width:700px){.bucket-form{grid-template-columns:1fr}.bucket-group{gap:8px;margin-top:22px}.bucket-group-head h3{font-size:.93rem}.bucket-item-category{align-items:flex-start;flex-direction:column;gap:4px}.bucket-item-category select{width:100%;min-height:40px}.data-transfer-actions{align-items:stretch;flex-direction:column}.data-transfer-actions>*{width:100%}}

