.home-page{background:#f7f6f2}
.home-shell [hidden]{display:none!important}
.home-shell{width:min(1200px,calc(100% - 64px));margin:auto;padding:40px 0 72px;min-height:calc(100svh - 160px)}
.home-hero{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(260px,.8fr);grid-template-rows:auto 1fr;gap:16px 36px;padding:36px;border-radius:28px;background:#efeee6;position:relative;overflow:hidden}
.home-welcome{grid-column:1;grid-row:1;position:relative;z-index:1}
.home-welcome h1{margin:0 0 12px;font-size:clamp(2rem,3.5vw,3.3rem);line-height:1.16;letter-spacing:-.055em;overflow-wrap:anywhere;color:#173f35}
.home-illustration{grid-column:1;grid-row:2;width:100%;height:auto;aspect-ratio:3/2;object-fit:contain;border-radius:0;background:transparent}
.home-progress-area{grid-column:2;grid-row:1 / 3;display:flex;flex-direction:column;justify-content:center;gap:14px;min-width:0}
.home-dashboard-link{display:inline-flex;align-items:center;gap:10px;min-height:44px;font-size:.82rem;color:var(--forest,#173f35);font-weight:700;text-decoration:none}
.home-dashboard-link svg{width:19px;height:19px;flex:none}.home-dashboard-link:hover{text-decoration:underline;text-underline-offset:5px}
.home-level-card{padding:25px;border:1px solid #d9dfd6;border-radius:20px;background:#fffef9}
.home-level-top{display:flex;align-items:center;gap:18px;margin-bottom:22px}
.home-level-badge{position:relative;display:grid;place-items:center;flex:none;width:80px;height:88px;color:#fffef9}
.home-level-badge svg{width:80px;height:88px}.home-level-badge strong{position:absolute;top:26px;left:14px;right:14px;text-align:center;font-size:1.75rem;line-height:1.2;font-weight:800;font-variant-numeric:tabular-nums}
.home-level-top p{margin:0 0 4px;color:#536059;font-size:.8rem}.home-level-top b{font-size:1.8rem;letter-spacing:-.04em;color:#173f35;font-variant-numeric:tabular-nums}
.home-level-card progress{display:block;appearance:none;width:100%;height:9px;border:0;border-radius:99px;overflow:hidden;background:#dfebdf;color:#173f35}
.home-level-card progress::-webkit-progress-bar{background:#dfebdf;border-radius:99px}.home-level-card progress::-webkit-progress-value{background:#173f35;border-radius:99px}.home-level-card progress::-moz-progress-bar{background:#173f35;border-radius:99px}
#home-next-level{margin:12px 0 0;font-size:.82rem;font-weight:700;color:#173f35}
.home-xp-info{margin-top:8px;font-size:.75rem;color:#536059}.home-xp-info summary{cursor:pointer;min-height:44px;display:list-item;align-content:center}.home-xp-info p{margin:0;line-height:1.6}
.home-stat{display:flex;align-items:center;gap:20px;padding:22px 25px;min-height:112px;border:1px solid #d9dfd6;border-radius:18px;background:#e0e9db}.home-stat>strong{font-size:2.5rem;line-height:1;color:#173f35;font-variant-numeric:tabular-nums}.home-stat h2{margin:0;font-size:1rem;color:#173f35}
.home-year{display:flex;align-items:center;gap:16px;padding:17px 22px;border:1px solid #d9dfd6;border-radius:18px;background:#e0e9db}
.home-year>strong{font-size:2rem;letter-spacing:-.04em;color:#173f35;min-width:48px}.home-year h2{margin:0 0 4px;font-size:.95rem}.home-year p{margin:0;font-size:.73rem;line-height:1.6;color:#47564d}
.home-section-heading{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:36px 0 18px}.home-section-heading h2{margin:0;font-size:1.5rem;letter-spacing:-.035em;color:#173f35}
.home-tools{display:grid;grid-template-columns:repeat(var(--tool-columns,3),minmax(0,1fr));gap:22px;align-items:start}.home-tool-group{min-width:0}.home-tool-group>h3{font-size:.9rem;margin:0 0 12px;color:#536059;font-weight:600}
.home-tone-sage{--tile:#e4eddf;--tile-border:#ceddc5}.home-tone-peach{--tile:#f6e5d9;--tile-border:#ead0bc}.home-tone-lavender{--tile:#e9e6f2;--tile-border:#d8d1e7}
.home-tool{display:flex;align-items:center;gap:13px;padding:20px 16px;margin-bottom:12px;border:1px solid var(--tile-border);border-radius:15px;color:#173f35;background:var(--tile);text-decoration:none;min-height:92px;transition:transform .18s,border-color .18s}
.home-tool:hover{transform:translateY(-2px);border-color:#173f35}.home-tool-icon{display:grid;place-items:center;flex:none;width:36px;height:40px}.home-tool-icon svg{width:26px;height:26px}.home-tool-copy{flex:1;min-width:0}.home-tool-copy h4{margin:0;font-size:.95rem;letter-spacing:-.025em}.home-tool-copy>span{display:block;font-size:.75rem;line-height:1.6;color:#47564d}.home-tool-arrow{flex:none}.home-tool-arrow svg{width:19px;height:19px}
.home-discovery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.home-career{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;border-radius:17px;background:#173f35;color:white;text-decoration:none}.home-career img{width:100%;height:100%;object-fit:cover;transition:transform .25s}.home-career:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 20%,#091b16e6)}.home-career>span{position:absolute;bottom:20px;left:20px;right:20px;z-index:1;font-size:1rem;font-weight:800}.home-career:hover img{transform:scale(1.04)}
.home-shell :is(a,button,summary,select,input):focus-visible{outline:3px solid #173f35;outline-offset:4px}.home-career:focus-visible{outline-offset:5px}
.home-status{color:#536059;font-size:.85rem;line-height:1.6}.home-status:empty{display:none}.home-retry{min-height:44px;padding:10px 16px;border:1px solid #d9dfd6;border-radius:10px;background:#fffef9;color:#173f35;font:inherit;font-size:.8rem;font-weight:700;cursor:pointer}.home-settings-link{margin-top:24px}
.year-list{display:grid;gap:14px;margin-top:24px}
.year-row{display:flex;flex-wrap:wrap;align-items:center;gap:16px;padding:20px 24px;border:1px solid var(--line);border-radius:16px;background:var(--paper)}
.year-row>div{flex:1;min-width:180px}.year-row h2{margin:0;font-size:1rem}.year-row p{margin:5px 0 0;font-size:.75rem;color:var(--muted)}
.year-row label{margin:0;font-size:.75rem;font-weight:700}.year-row select{min-width:150px;min-height:44px;margin-top:6px;font:inherit}
.year-row.is-changed{border-color:var(--forest);box-shadow:0 0 0 1px var(--forest)}
.year-savebar{position:sticky;bottom:12px;z-index:5;display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;margin-top:18px;padding:14px 20px;border:1px solid var(--forest);border-radius:16px;background:var(--paper);box-shadow:0 8px 24px rgba(0,0,0,.14)}
.year-savebar[hidden]{display:none}
.year-savebar>svg{flex:none;width:22px;height:22px;color:var(--forest)}
.year-savebar-copy{flex:1;min-width:180px;display:grid;gap:2px}.year-savebar-copy strong{font-size:.9rem}.year-savebar-copy span{font-size:.8rem;color:var(--muted)}.year-savebar-copy span:empty{display:none}
.year-savebar-discard{min-height:44px;padding:0 18px;border:1px solid var(--line-strong);border-radius:12px;background:var(--paper);color:inherit;font:inherit;font-weight:700;cursor:pointer}
.year-savebar button:disabled{cursor:progress;opacity:.6}
.year-row .nr-select{min-width:170px;margin-top:6px}.year-row .nr-select-trigger{min-height:44px}
.year-switch{display:flex;flex-wrap:wrap;align-items:center;gap:14px 16px;margin-top:24px;padding:18px 24px;border:1px solid var(--line);border-radius:16px;background:var(--paper)}
.year-switch-icon{flex:none;width:26px;height:26px;color:var(--forest)}
.year-switch-copy{flex:1;min-width:200px}.year-switch-copy h2{margin:0;font-size:1rem}.year-switch-copy p{margin:4px 0 0;font-size:.8rem;color:var(--muted)}
.year-switch-button{position:relative;flex:none;width:52px;height:30px;padding:0;border:1px solid var(--line-strong);border-radius:999px;background:var(--line-strong);cursor:pointer;transition:background .15s,border-color .15s}
.year-switch-button[aria-checked="true"]{background:var(--forest);border-color:var(--forest-deep)}
.year-switch-knob{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:var(--paper);box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .15s}
.year-switch-button[aria-checked="true"] .year-switch-knob{transform:translateX(22px)}
.year-switch-button:focus-visible{outline:3px solid var(--forest-deep);outline-offset:2px}
.year-switch-button:disabled{cursor:progress;opacity:.6}
.year-switch .year-switch-note{flex:0 0 100%;margin:0}.year-switch .year-switch-note:empty{display:none}
.year-list.is-off{opacity:.5;filter:grayscale(1)}
@media(prefers-reduced-motion:reduce){.year-switch-button,.year-switch-knob{transition:none}}

@media(max-width:1000px){.home-shell{width:calc(100% - 40px)}.home-hero{padding:26px;gap:18px 24px}.home-tools{gap:16px}.home-tool{padding:16px 12px;gap:8px}.home-tool-icon{width:28px}.home-discovery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.home-shell{width:calc(100% - 32px);padding-top:24px}.home-hero{grid-template-columns:1fr;padding:22px;gap:16px}.home-welcome,.home-illustration,.home-progress-area{grid-column:1;grid-row:auto}.home-illustration{height:auto}.home-progress-area{display:grid;grid-template-columns:1fr}.home-tools{grid-template-columns:1fr;gap:18px}.home-tool{min-height:80px;padding:18px;gap:16px}.home-tool-icon{width:34px}.home-tool-copy h4{font-size:1rem}.home-tool-copy>span{font-size:.8rem}.home-section-heading{margin-top:28px}.home-section-heading h2{font-size:1.3rem}.year-row{padding:18px}.year-row>div{flex-basis:100%}}
@media(max-width:380px){.home-hero{padding:16px}.home-level-card{padding:19px}.home-illustration{height:auto}.home-discovery-grid{gap:10px}.home-career{aspect-ratio:1/1}.home-career>span{font-size:.85rem;left:12px;right:12px;bottom:14px}.home-tool{gap:10px;padding:16px 12px}}
@media(prefers-reduced-motion:reduce){.home-tool,.home-career img{transition:none;transform:none!important}}html.access-motion .home-tool,html.access-motion .home-career img{transition:none;transform:none!important}

.home-heading-links{display:flex;flex-wrap:wrap;gap:4px 22px}
.home-upcoming-list{display:grid;gap:12px;margin:0;padding:0;list-style:none}.home-upcoming-list>li{margin:0;min-width:0}
/* Keep the date, title and link aligned even when titles wrap on phones. */
.home-date-row{display:grid;grid-template-columns:56px minmax(0,1fr) 20px;grid-template-rows:auto auto;align-items:center;column-gap:18px;row-gap:7px;padding:18px 20px;min-height:104px;border:1px solid #dedfd7;border-radius:18px;background:#fffef9;color:#173f35;text-decoration:none;transition:border-color .18s,background .18s,box-shadow .18s}
.home-date-row:hover{border-color:#9fac9f;background:#fcfcf6;box-shadow:0 4px 16px #173f350a}.home-date-row:focus-visible{outline:3px solid #173f35;outline-offset:3px}
.home-date-badge{grid-column:1;grid-row:1 / 3;display:flex;flex-direction:column;align-items:center;justify-content:center;width:56px;height:64px;border:1px solid #d4ddcd;border-radius:12px;background:#edf1e7;color:#173f35;line-height:1}
.home-date-badge b{font-size:1.65rem;font-weight:800;letter-spacing:-.045em;font-variant-numeric:tabular-nums}.home-date-badge span{margin-top:6px;font-size:.75rem;font-weight:600}
.home-date-copy{grid-column:2;grid-row:1;min-width:0;align-self:end}.home-date-copy strong{display:block;font-size:.96rem;line-height:1.45;font-weight:700;letter-spacing:-.02em;overflow-wrap:anywhere}.home-date-copy>span{display:block;margin-top:4px;color:#536059;font-size:.8rem;line-height:1.5;overflow-wrap:anywhere}
.home-date-chips{grid-column:2;grid-row:2;display:flex;flex-wrap:wrap;align-self:start;gap:6px;min-width:0}
.home-chip{display:inline-flex;align-items:center;min-height:26px;padding:3px 11px;border-radius:99px;border:1px solid #d9dfd6;background:#f4f3ec;color:#3f4d45;font-size:.72rem;font-weight:700;white-space:nowrap}
.home-chip.is-kind-event{background:#e9e6f2;border-color:#d8d1e7}.home-chip.is-kind-experience{background:#e4eddf;border-color:#ceddc5}
.home-chip.is-good{background:#d7eadf;border-color:#b6d6c4;color:#173f35}.home-chip.is-wait{background:#f6e8cf;border-color:#e8d3a8;color:#5c4210}
.home-date-go{grid-column:3;grid-row:1 / 3;color:#536059;transition:transform .18s,color .18s}.home-date-go svg{width:20px;height:20px;display:block}.home-date-row:hover .home-date-go,.home-date-row:focus-visible .home-date-go{color:#173f35;transform:translateX(3px)}
.home-empty{display:flex;align-items:center;flex-wrap:wrap;gap:16px 20px;padding:22px 24px;border:1px dashed #b9c6bb;border-radius:18px;background:#fffef9}
.home-empty-icon{display:grid;place-items:center;flex:none;width:52px;height:52px;border-radius:16px;background:#e0e9db;color:#173f35}.home-empty-icon svg{width:26px;height:26px}
.home-empty>div{flex:1;min-width:220px}.home-empty h3{margin:0 0 4px;font-size:1rem;color:#173f35}.home-empty p{margin:0;font-size:.85rem;line-height:1.6;color:#47564d}
.home-empty-actions{display:flex;flex-wrap:wrap;align-items:center;gap:6px 18px}
.home-empty-button{display:inline-flex;align-items:center;min-height:44px;padding:10px 18px;border-radius:12px;background:#173f35;color:#fffef9;font-size:.82rem;font-weight:700;text-decoration:none}.home-empty-button:hover{background:#245a4a}.home-empty-button:focus-visible,.home-empty-link:focus-visible{outline:3px solid #173f35;outline-offset:3px}
.home-empty-link{display:inline-flex;align-items:center;min-height:44px;color:#173f35;font-size:.82rem;font-weight:700}
/* Placeholders of the final size, so nothing jumps when the real content arrives. */
.home-skel{display:block;background:linear-gradient(90deg,#e8e9e0 25%,#f2f2ea 50%,#e8e9e0 75%);background-size:200% 100%;animation:home-shimmer 1.4s ease-in-out infinite}
@keyframes home-shimmer{to{background-position:-200% 0}}
.home-date-skel{height:84px;border-radius:18px}.home-skel-tile{min-height:92px;margin-bottom:12px;border-radius:15px}
.home-skel-level{display:none}.home-level-card[aria-busy="true"] .home-skel-level{display:grid;grid-template-columns:80px 1fr;gap:12px 18px;align-items:center}
.home-skel-level i{grid-row:1 / 3;width:80px;height:88px;border-radius:20px;background:#e8e9e0}.home-skel-level .home-skel{height:18px;border-radius:9px}
.home-skel-level .home-skel+.home-skel{width:60%}
@media(max-width:720px){.home-date-row{column-gap:14px;padding:16px;min-height:100px}.home-empty{padding:18px}.home-empty-button{justify-content:center;flex:1 1 100%}}
@media(max-width:380px){.home-date-row{grid-template-columns:48px minmax(0,1fr) 16px;column-gap:10px;padding:14px 12px}.home-date-badge{width:48px;height:58px}.home-date-badge b{font-size:1.45rem}.home-date-copy strong{font-size:.9rem}.home-date-go svg{width:16px;height:16px}.home-chip{font-size:.7rem;padding:3px 8px}}
@media(prefers-reduced-motion:reduce){.home-skel{animation:none}.home-date-row,.home-date-go{transition:none;transform:none!important}}
html.access-motion .home-skel{animation:none}html.access-motion .home-date-row,html.access-motion .home-date-go{transition:none;transform:none!important}

/* Streak and "keeping moving" chips under the experience card. */
.home-streak{display:flex;flex-wrap:wrap;gap:10px}
.home-streak[hidden]{display:none}
.home-streak .planner-chips{display:contents}
.home-streak .planner-chip{display:flex;flex:1 1 180px;align-items:center;gap:12px;min-width:0;min-height:56px;padding:8px 16px 8px 12px;border:1px solid #d9dfd6;border-radius:999px;background:#fffef9;color:#173f35;text-decoration:none;transition:border-color .18s}
.home-streak .planner-chip:hover{border-color:#173f35}
.home-streak .planner-chip:focus-visible{outline:3px solid #173f35;outline-offset:3px}
.home-streak .planner-fire,.home-streak .planner-chip-art{display:grid;place-items:center;flex:none;width:40px;height:40px}
.home-streak .planner-art,.home-streak .planner-activity-art{display:block;width:100%;height:100%;object-fit:contain}
.home-streak .planner-chip-art svg{width:26px;height:26px}
.home-streak .planner-chip-copy{display:grid;gap:1px;min-width:0}
.home-streak .planner-chip-copy strong{font-size:.9rem;line-height:1.25}
.home-streak .planner-chip-copy small{color:#536059;font-size:.72rem}
@media(prefers-reduced-motion:reduce){.home-streak .planner-chip{transition:none}}
