*{box-sizing:border-box}html{min-height:100%;background:#101827;color-scheme:dark}body{margin:0;min-height:100%;color:var(--color-text);background:linear-gradient(180deg,#192230 0%,#263042 55%,#111927 100%);font-family:var(--font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;line-height:1.45}a{color:inherit}button,.button-link,.door,.link-list a,.today-list a{min-height:48px;border-radius:18px;-webkit-tap-highlight-color:transparent}button,.button-link{border:1px solid var(--color-line);background:linear-gradient(145deg,rgba(243,238,228,.08),rgba(38,48,66,.92));color:var(--color-text);font:inherit;padding:1rem;text-decoration:none;box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 8px 24px rgba(0,0,0,.22)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--aurora-teal);outline-offset:3px}.app-shell{width:min(100%,820px);margin:0 auto;padding:max(1rem,env(safe-area-inset-top)) 1rem max(1.5rem,env(safe-area-inset-bottom));position:relative;z-index:1}.hero,.page-header{display:grid;gap:1rem;padding:1rem 0 1.2rem}.hero h1,.page-header h1{font-family:var(--font-heading);font-size:var(--text-xl);line-height:.9;margin:.1rem 0 0;letter-spacing:.06em;text-shadow:0 4px 28px rgba(0,0,0,.42)}.page-header p,.state-note,.weather-placeholder,footer{color:var(--color-muted)}.eyebrow{margin:0;color:var(--color-accent-strong);text-transform:uppercase;letter-spacing:.14em;font-size:var(--text-xs);font-family:var(--font-ui)}.status-card,.panel{background:linear-gradient(145deg,rgba(243,238,228,.095),var(--color-surface));border:1px solid var(--color-line);border-radius:26px;box-shadow:var(--shadow-soft);backdrop-filter:blur(var(--glass-blur)) saturate(1.18);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(1.18);position:relative;overflow:hidden}.status-card::before,.panel::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,rgba(255,255,255,.08),transparent 35%,rgba(84,166,163,.045) 70%,transparent),radial-gradient(circle at 90% 0%,rgba(197,161,93,.10),transparent 30%);opacity:.9}.status-card>* , .panel>*{position:relative}.status-card{padding:1rem;display:grid;gap:.35rem}.panel{padding:1rem;margin:1rem 0}h2{margin:0 0 .8rem;font-size:var(--text-lg);font-family:var(--font-heading);color:#fff4dc}.state-grid,.door-grid,.today-list,.link-list,.action-row{display:grid;gap:.75rem}.state-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.state-button{width:100%;font-weight:800;text-transform:uppercase;letter-spacing:.055em}.state-button[aria-pressed="true"]{border-color:var(--color-accent-strong);box-shadow:0 0 0 2px rgba(241,211,122,.25) inset,0 0 24px rgba(84,166,163,.16)}.door-grid{grid-template-columns:1fr}.door,.link-list a,.today-list a{display:flex;align-items:center;justify-content:space-between;padding:1.1rem;background:linear-gradient(145deg,rgba(55,85,96,.72),rgba(25,34,48,.92));border:1px solid var(--color-line);text-decoration:none;font-weight:850;letter-spacing:.05em;text-transform:uppercase;box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 12px 30px rgba(0,0,0,.24)}.door::after,.link-list a::after,.today-list a::after{content:"→";color:var(--color-accent-strong)}.door.is-promoted{border-color:var(--color-accent-strong);box-shadow:0 0 0 1px rgba(197,161,93,.16),0 0 28px rgba(197,161,93,.14),inset 0 1px 0 rgba(255,255,255,.1)}.door.is-muted{opacity:.54}.today-list a,.link-list a{text-transform:none;letter-spacing:0;font-weight:700}.back-link{color:var(--color-muted);text-decoration:none;width:fit-content;padding:.55rem .8rem;border:1px solid rgba(197,161,93,.22);border-radius:999px;background:rgba(25,34,48,.45)}.primary-action{width:100%;min-height:104px;font-size:1.12rem;font-weight:950;text-transform:uppercase;letter-spacing:.08em;border-color:var(--color-accent-strong);background:radial-gradient(circle at 50% 0%,rgba(224,184,106,.24),transparent 42%),linear-gradient(145deg,rgba(84,166,163,.24),rgba(114,80,108,.45) 45%,rgba(38,48,66,.94));}.wonder-card{margin-top:1rem;padding:1rem;border:1px solid var(--color-line);border-radius:22px;background:rgba(14,23,36,.52)}.wonder-card h2{font-family:var(--font-heading);font-size:2rem;margin-top:.35rem}.action-row{grid-template-columns:1fr;margin-top:1rem}.saved-list{display:grid;gap:.75rem}.saved-item{padding:.9rem;border:1px solid var(--color-line);border-radius:18px;background:rgba(255,255,255,.045)}footer{text-align:center;padding:1.5rem .5rem .5rem;font-size:var(--text-sm);position:relative}.hero-title{display:flex;align-items:center;gap:.9rem}.observatory-seal{width:76px;height:76px;border-radius:50%;box-shadow:0 0 0 1px rgba(197,161,93,.35),0 0 32px rgba(197,161,93,.22);object-fit:cover}.motto{margin:.3rem 0 0;color:var(--color-accent-strong);font-family:var(--font-heading)}.stacked-cards{display:grid;gap:.75rem}.mini-card{padding:.95rem;border:1px solid var(--color-line);border-radius:18px;background:rgba(255,255,255,.045)}.mini-card-title{color:var(--color-accent-strong);text-transform:uppercase;letter-spacing:.12em;font-size:var(--text-xs);margin-bottom:.35rem}.mini-card small,.reminder-item small,.saved-item small{color:var(--color-muted);display:block;margin-top:.25rem}.section-heading-row{display:flex;justify-content:space-between;align-items:center;gap:.75rem}.small-button{min-height:40px;padding:.5rem .8rem;border-radius:999px}.reminder-form{display:grid;gap:.75rem;margin:1rem 0}.reminder-form label,.dropdown-label{display:grid;gap:.35rem;color:var(--color-muted);font-size:var(--text-sm)}input,select,textarea{width:100%;border:1px solid var(--color-line);background:rgba(12,18,28,.74);color:var(--color-text);border-radius:14px;padding:.8rem;font:inherit}.reminder-group{margin-top:1rem}.reminder-group h3,.wonder-feedback h3{margin:.5rem 0;color:var(--color-accent-strong);font-size:var(--text-base)}.reminder-item{display:grid;grid-template-columns:auto 1fr;gap:.5rem .75rem;align-items:start;padding:.75rem 0;border-top:1px solid rgba(255,255,255,.12)}.reminder-item button{min-height:36px;padding:.35rem .55rem;border-radius:999px}.reminder-item small{grid-column:2}.impossible-question p:last-child{font-family:var(--font-heading);font-size:1.25rem;line-height:1.35}.secret-note{text-align:center;color:var(--color-accent-strong);letter-spacing:.08em}.wonder-feedback{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--color-line);display:grid;gap:.8rem}.rating-row,.tag-cloud{display:flex;flex-wrap:wrap;gap:.5rem}.rating-row button,.tag-button{min-height:38px;border-radius:999px;padding:.45rem .75rem;font-size:var(--text-sm)}.rating-row button.is-active,.tag-button.is-active{border-color:var(--color-accent-strong);background:rgba(197,161,93,.18)}.birthday-watch{border-color:var(--color-accent-strong)}
/* State backgrounds */
body[data-state="recovery"]::before{background-image:linear-gradient(rgba(25,34,48,.45),rgba(25,34,48,.72)),url('assets/bg-recovery.webp');opacity:.46;mix-blend-mode:normal}body[data-state="curious"]::before{background-image:linear-gradient(rgba(25,34,48,.42),rgba(25,34,48,.72)),url('assets/bg-curious.webp');opacity:.43;mix-blend-mode:normal}body[data-state="building"]::before{background-image:linear-gradient(rgba(25,34,48,.36),rgba(25,34,48,.77)),url('assets/bg-building.webp');opacity:.44;mix-blend-mode:normal}body[data-state="social"]::before{background-image:linear-gradient(rgba(25,34,48,.33),rgba(25,34,48,.72)),url('assets/bg-social.webp');opacity:.48;mix-blend-mode:normal}body[data-state="bureaucracy"]::before{background-image:linear-gradient(rgba(25,34,48,.32),rgba(25,34,48,.78)),url('assets/bg-admin.webp');opacity:.43;mix-blend-mode:normal}body[data-page="library"]::before{background-image:linear-gradient(rgba(25,34,48,.42),rgba(25,34,48,.78)),url('assets/bg-library.webp');opacity:.46;mix-blend-mode:normal}body[data-page="wonder"]::before{background-image:linear-gradient(rgba(25,34,48,.38),rgba(25,34,48,.76)),url('assets/bg-wonder.webp');opacity:.46;mix-blend-mode:normal}body[data-page="admin"]::before{background-image:linear-gradient(rgba(25,34,48,.38),rgba(25,34,48,.78)),url('assets/bg-admin.webp');opacity:.46;mix-blend-mode:normal}.app-shell::before{content:"";position:fixed;left:50%;bottom:5.5rem;width:min(45vw,260px);aspect-ratio:1;background:url('assets/splash-seal.webp') center/cover no-repeat;border-radius:50%;opacity:.055;transform:translateX(-50%);pointer-events:none;filter:saturate(.8)}.app-shell::after{content:"THIS HOUSE REMEMBERS NOT WHAT YOU KNEW, BUT WHAT MADE YOU LOVE THE WORLD.";position:fixed;left:50%;bottom:12%;transform:translateX(-50%) rotate(-4deg);width:min(80vw,560px);pointer-events:none;text-align:center;color:rgba(243,238,228,.045);font-family:var(--font-heading);font-size:clamp(1.4rem,7vw,3.2rem);line-height:1.05;z-index:-1}.a11y-panel{position:fixed;right:.75rem;bottom:calc(.75rem + env(safe-area-inset-bottom));z-index:20;display:flex;gap:.35rem;align-items:center;padding:.35rem;border:1px solid rgba(197,161,93,.35);border-radius:999px;background:rgba(16,24,37,.78);backdrop-filter:blur(14px);box-shadow:0 12px 38px rgba(0,0,0,.35)}.a11y-panel button{min-height:38px;padding:.35rem .55rem;border-radius:999px;font-size:.8rem}.secret-sticker{position:fixed;z-index:2;pointer-events:none;opacity:.88;filter:drop-shadow(0 10px 25px rgba(0,0,0,.35))}.secret-moth{width:42px;right:7%;bottom:8.5rem}.secret-shooting-star{width:86px;left:8%;top:11%;opacity:.7}.secret-pawprints{width:96px;right:7%;bottom:4.1rem;opacity:.54}body[data-state="recovery"] .state-note::after{content:" Nothing here is a moral test."}body[data-state="curious"] .state-note::after{content:" Open the cabinet. Poke reality gently with a stick."}body[data-state="building"] .state-note::after{content:" Tools first. Wizard code last. Preferably never."}body[data-state="social"] .state-note::after{content:" Hearth mode."}body[data-state="bureaucracy"] .state-note::after{content:" Tiny grumpy goblin deployed."}@media (min-width:620px){.hero{grid-template-columns:1fr 1fr;align-items:end}.door-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.action-row{grid-template-columns:repeat(3,1fr)}.stacked-cards{grid-template-columns:repeat(3,minmax(0,1fr))}.panel{padding:1.1rem 1.2rem}}@media (max-width:430px){.app-shell{padding-inline:.78rem}.panel{border-radius:22px}.hero-title{align-items:flex-start}.observatory-seal{width:64px;height:64px}.state-grid{grid-template-columns:1fr}}@supports not (backdrop-filter:blur(1px)){.status-card,.panel,.a11y-panel{background:rgba(25,34,48,.95)}}