:root{--color-bg: #000000;--color-bg-elevated: #0a0a0a;--color-bg-card: rgba(10, 10, 10, .6);--color-surface: #2A2A2A;--color-gold: #D4AF37;--color-gold-dim: rgba(212, 175, 55, .3);--color-gold-glow: rgba(212, 175, 55, .15);--color-silver: #E5E5E5;--color-silver-dim: rgba(229, 229, 229, .6);--color-text-primary: #E5E5E5;--color-text-secondary: #999999;--color-text-muted: #666666;--color-overlay: rgba(0, 0, 0, .7);--color-border: rgba(229, 229, 229, .08);--font-heading: "Playfair Display", Georgia, "Times New Roman", serif;--font-body: "Pretendard Variable", "Pretendard", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "SF Mono", "Fira Code", "Consolas", monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.5rem;--text-2xl: 2rem;--text-3xl: 2.5rem;--text-hero: 3.5rem;--weight-thin: 200;--weight-light: 300;--weight-regular: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--leading-tight: 1.2;--leading-normal: 1.5;--leading-relaxed: 1.7;--leading-loose: 1.8;--tracking-wide: .05em;--tracking-wider: .1em;--tracking-widest: .2em;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-8: 3rem;--space-10: 4rem;--space-12: 5rem;--space-16: 8rem;--max-width: 720px;--container-padding: var(--space-5);--section-gap: var(--space-12);--card-padding: var(--space-6);--card-radius: 16px;--modal-radius: 20px;--glass-blur: 20px;--glass-bg: rgba(5, 5, 5, .6);--glass-border: 1px solid rgba(229, 229, 229, .06);--glass-shadow: 0 8px 32px rgba(0, 0, 0, .3);--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--duration-fast: .15s;--duration-normal: .3s;--duration-slow: .5s;--duration-glacial: .8s;--duration-reveal: 1.2s;--bar-height: 4px;--bar-radius: 2px;--bar-bg: rgba(229, 229, 229, .08);--bar-fill: var(--color-gold);--gauge-size: 160px;--gauge-stroke: 3;--gauge-track: rgba(229, 229, 229, .08);--gauge-fill: var(--color-gold)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;overflow:hidden;height:100%}body{height:100%;min-height:100dvh;overflow-y:auto;overflow-x:hidden;line-height:var(--leading-normal)}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:none;border:none}a{color:inherit;text-decoration:none}ul,ol{list-style:none}h1,h2,h3,h4,h5,h6{overflow-wrap:break-word;font-weight:var(--weight-bold)}p{overflow-wrap:break-word}blockquote{border:none}html{font-size:16px;scroll-behavior:smooth}body{background-color:var(--color-bg);color:var(--color-text-primary);font-family:var(--font-body);font-weight:var(--weight-light);line-height:var(--leading-normal)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--color-bg)}::-webkit-scrollbar-thumb{background:var(--color-text-muted);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-gold-dim)}*{scrollbar-width:thin;scrollbar-color:var(--color-text-muted) var(--color-bg)}::selection{background-color:var(--color-gold-dim);color:var(--color-silver)}.app{display:flex;flex-direction:column;min-height:100vh;min-height:100svh;position:relative}.container{width:100%;max-width:var(--max-width);margin-left:auto;margin-right:auto;padding-left:var(--container-padding);padding-right:var(--container-padding)}.dashboards,.life-grid-section,.moments-section,.constellation-section{padding-top:var(--section-gap);padding-bottom:var(--section-gap)}.dashboard-grid{display:grid;grid-template-columns:1fr;gap:var(--space-5)}.site-footer{margin-top:auto;padding:var(--space-16) 0 calc(var(--space-10) + env(safe-area-inset-bottom,0px))}.exit-section{text-align:center}.exit-section .container{display:flex;flex-direction:column;align-items:center;gap:var(--space-3)}.exit-exif{font-family:var(--font-heading);font-size:var(--text-sm);font-weight:var(--weight-bold);color:var(--color-gold);line-height:var(--leading-relaxed);letter-spacing:var(--tracking-wider)}.exit-brand-link{color:var(--color-gold);text-decoration:none;transition:opacity var(--duration-normal) var(--ease-out)}.exit-brand-link:hover{opacity:.7}.footer-pulse{display:flex;align-items:center;justify-content:center;gap:.5em;font-family:var(--font-heading);font-size:.7rem;font-style:italic;color:var(--color-gold);opacity:.4;letter-spacing:var(--tracking-wider);min-height:1.2em}.pulse-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:gold;animation:pulse-breathe 3s ease-in-out infinite}.shooting-star{position:fixed;width:2px;height:2px;border-radius:50%;background:#fff;box-shadow:0 0 4px 1px #fffc,0 0 12px 2px #d4af3799;pointer-events:none;z-index:9997;opacity:0;animation:shootingStar var(--star-duration, 1.4s) linear forwards}.shooting-star:after{content:"";position:absolute;top:0;right:0;width:60px;height:1px;background:linear-gradient(to left,rgba(212,175,55,.4),transparent);transform-origin:right center;transform:rotate(var(--trail-angle, 0deg))}@keyframes shootingStar{0%{opacity:0;transform:translate(0)}5%{opacity:1}75%{opacity:.3}to{opacity:0;transform:translate(var(--end-x, -200px),var(--end-y, 200px))}}.exif-stamp{position:fixed;bottom:calc(var(--space-3) + env(safe-area-inset-bottom,0px));left:var(--container-padding);right:var(--container-padding);z-index:9998;pointer-events:none;font-family:var(--font-mono);font-size:clamp(.55rem,1.2vw,.65rem);line-height:var(--leading-relaxed);color:var(--color-text-primary);opacity:.3;letter-spacing:.04em;text-align:center;white-space:normal;word-spacing:.1em}@media(min-width:768px){.exif-stamp{right:auto;text-align:left;white-space:nowrap;font-size:.65rem}}@keyframes pulse-breathe{0%,to{opacity:.4;box-shadow:0 0 3px #ffd7004d}50%{opacity:1;box-shadow:0 0 8px #ffd70099}}.hero{display:flex;align-items:center;justify-content:center;min-height:100vh;min-height:100svh;position:relative;overflow:hidden}.hero:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:600px;height:600px;background:radial-gradient(circle,var(--color-gold-glow) 0%,transparent 70%);pointer-events:none;opacity:.5}.hero-content{text-align:center;position:relative;z-index:1}.hero-label{font-family:var(--font-body);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:var(--tracking-widest);margin-bottom:var(--space-4)}.hero-value{font-family:var(--font-heading);font-size:clamp(2rem,9vw,6rem);font-weight:var(--weight-bold);color:var(--color-gold);line-height:var(--leading-tight);white-space:nowrap;will-change:contents;animation:pulse-glow 4s ease-in-out infinite;margin-bottom:var(--space-4)}.hero-value>.td{display:inline-block;width:.64em;text-align:center}.hero-value>.ts{display:inline-block}@keyframes pulse-glow{0%,to{text-shadow:0 0 20px var(--color-gold-glow)}50%{text-shadow:0 0 40px var(--color-gold-dim)}}.hero-sublabel{font-family:var(--font-heading);font-style:italic;font-size:var(--text-base);color:var(--color-text-muted);letter-spacing:var(--tracking-wide)}.scroll-indicator{position:fixed;bottom:var(--space-6);left:50%;transform:translate(-50%);z-index:50;display:flex;flex-direction:column;align-items:center;gap:var(--space-2);color:var(--color-text-muted);font-size:var(--text-xs);letter-spacing:var(--tracking-wider);text-transform:uppercase;animation:float 3s ease-in-out infinite;opacity:.6;transition:opacity .5s var(--ease-out);pointer-events:none}.scroll-indicator svg{width:16px;height:16px;stroke:var(--color-text-muted)}.scroll-indicator.is-hidden{opacity:0}@keyframes float{0%,to{transform:translate(-50%) translateY(0)}50%{transform:translate(-50%) translateY(6px)}}.card{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:var(--glass-border);border-radius:var(--card-radius);box-shadow:var(--glass-shadow);padding:var(--card-padding);transition:transform var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}.card:hover{transform:scale(1.02);box-shadow:0 12px 40px #0006}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-5)}.card-title{font-family:var(--font-heading);font-size:var(--text-lg);font-weight:var(--weight-bold);color:var(--color-silver)}.card-badge{font-family:var(--font-body);font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-gold);text-transform:uppercase;letter-spacing:var(--tracking-wider);padding:var(--space-1) var(--space-3);border:1px solid var(--color-gold-dim);border-radius:100px}.card-stats{display:flex;align-items:baseline;gap:var(--space-2);margin-top:var(--space-4)}.stat-value{font-family:var(--font-body);font-size:var(--text-2xl);font-weight:var(--weight-semibold);color:var(--color-gold);font-variant-numeric:tabular-nums}.stat-label{font-size:var(--text-sm);color:var(--color-text-secondary);text-transform:lowercase;letter-spacing:var(--tracking-wide)}.card-detail{font-size:var(--text-sm);color:var(--color-text-muted);margin-top:var(--space-3)}.progress-bar__track{width:100%;height:var(--bar-height);background:var(--bar-bg);border-radius:var(--bar-radius);overflow:hidden}.progress-bar__fill{height:100%;background:var(--bar-fill);border-radius:var(--bar-radius);transition:width 1s linear;box-shadow:0 0 8px var(--color-gold-glow)}.gauge-wrapper{position:relative;display:flex;align-items:center;justify-content:center;margin:var(--space-4) auto}.day-gauge{width:var(--gauge-size);height:var(--gauge-size);transform:rotate(-90deg)}.gauge-track{fill:none;stroke:var(--gauge-track);stroke-width:var(--gauge-stroke)}.gauge-fill{fill:none;stroke:var(--gauge-fill);stroke-width:var(--gauge-stroke);stroke-linecap:round;stroke-dasharray:339.292;stroke-dashoffset:339.292;transition:stroke-dashoffset 1s linear;filter:drop-shadow(0 0 4px var(--color-gold-glow))}.gauge-center-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-family:var(--font-body);font-size:var(--text-xl);font-weight:var(--weight-semibold);color:var(--color-gold);font-variant-numeric:tabular-nums}.life-grid-section{padding-top:var(--section-gap);padding-bottom:var(--section-gap)}.life-grid-header{text-align:center;margin-bottom:var(--space-5)}.life-grid-title{font-family:var(--font-heading);font-size:var(--text-2xl);color:var(--color-silver);margin-bottom:var(--space-3)}.life-grid-subtitle{font-size:var(--text-sm);color:var(--color-text-muted);letter-spacing:var(--tracking-wide)}.life-grid{width:100%;max-width:100%;margin:0 auto;box-sizing:border-box;overflow:hidden}.life-grid-canvas{display:block;max-width:100%}.life-grid{--sunset-opacity: 0;position:relative}.life-grid.golden-active:after{content:"";position:absolute;top:29.4%;left:0;right:0;height:41.2%;background:radial-gradient(ellipse 80% 60% at 50% 50%,rgba(212,175,55,.25) 0%,rgba(212,175,55,.08) 50%,transparent 100%);opacity:var(--sunset-opacity);pointer-events:none;z-index:1;transition:opacity 1s ease}.canvas-now-marker{position:absolute!important;pointer-events:none;display:none}.life-block--now{background:var(--color-gold)!important;border-radius:2px;z-index:2;animation:now-appear .8s var(--ease-out) forwards,pulse-now 3s cubic-bezier(.37,0,.63,1) infinite .8s}@keyframes now-appear{0%{transform:scale(1);box-shadow:0 0 0 transparent;opacity:.3}40%{transform:scale(1.2);box-shadow:0 0 12px #d4af37cc,0 0 28px #d4af3766,0 0 48px #d4af3726;opacity:1}to{transform:scale(1);box-shadow:0 0 4px #d4af3759,0 0 12px #d4af3726;opacity:1}}@keyframes pulse-now{0%,to{transform:scale(1);box-shadow:0 0 6px #d4af3780,0 0 14px #d4af3740}50%{transform:scale(1.15);box-shadow:0 0 14px #d4af37cc,0 0 28px #d4af3766,0 0 48px #d4af371f}}.life-grid-wrapper{position:relative}.ceremony-active .life-grid{display:none!important}.life-grid-wrapper.ceremony-active~.life-grid-legend{display:none}.ceremony-stage{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);padding:var(--space-3) 0}.ceremony-block{width:36px;height:36px;border-radius:4px;background:var(--color-gold);box-shadow:0 0 16px #d4af3799,0 0 32px #d4af374d;cursor:grab;touch-action:none;user-select:none;animation:ceremony-float 3s ease-in-out infinite;z-index:10;position:relative}.ceremony-block.is-dragging{cursor:grabbing;animation:none;box-shadow:0 0 24px #d4af37cc,0 0 48px #d4af3766}.ceremony-block.is-snapped{animation:none;box-shadow:0 0 30px #d4af37,0 0 60px #d4af3799}@keyframes ceremony-float{0%,to{transform:translate(0)}50%{transform:translateY(-6px)}}.ceremony-instruction{font-family:var(--font-body);font-size:var(--text-xs);color:var(--color-text-muted);opacity:.4;letter-spacing:var(--tracking-wider);pointer-events:none}.ceremony-slot{width:36px;height:36px;border-radius:4px;border:2px dashed rgba(212,175,55,.3);box-shadow:inset 0 0 12px #d4af3714,0 0 20px #d4af370d;animation:slot-pulse 2s ease-in-out infinite;cursor:pointer;transition:border-color .3s ease,box-shadow .3s ease}.ceremony-slot.is-near{border-color:#d4af37b3;box-shadow:inset 0 0 20px #d4af3733,0 0 30px #d4af3726;animation:none}@keyframes slot-pulse{0%,to{border-color:#d4af3733;box-shadow:inset 0 0 8px #d4af370d,0 0 12px #d4af3708}50%{border-color:#d4af3780;box-shadow:inset 0 0 16px #d4af3726,0 0 24px #d4af3714}}.ceremony-flash{position:fixed;inset:0;z-index:10002;background:#d4af3714;pointer-events:none;animation:ceremony-flash-anim .6s ease-out forwards}@keyframes ceremony-flash-anim{0%{opacity:0}30%{opacity:1}to{opacity:0}}.life-grid-legend{display:flex;justify-content:center;gap:var(--space-6);margin-top:var(--space-6);flex-wrap:wrap}.legend-item{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--color-text-muted);letter-spacing:var(--tracking-wide);text-transform:uppercase}.legend-swatch{width:10px;height:10px;border-radius:2px}.legend-swatch--education{background:#3b6da0}.legend-swatch--career{background:#8a6d2a}.legend-swatch--freedom{background:#5050a0}.legend-swatch--now{background:var(--color-gold)}.life-grid-phases{display:none}@media(min-width:1024px){.life-grid-wrapper{display:flex;gap:var(--space-5);align-items:flex-start;justify-content:center}.life-grid{flex:1;min-width:0}.life-grid-phases{display:flex;flex-direction:column;flex-shrink:0;width:120px}.phase-label{font-size:var(--text-xs);color:var(--color-text-muted);letter-spacing:var(--tracking-wide);text-transform:uppercase;text-align:right;padding-right:var(--space-3)}.phase-label--education{height:29.4%}.phase-label--career{height:41.2%}.phase-label--freedom{height:29.4%}}.settings-trigger{position:fixed;bottom:var(--space-5);right:var(--space-5);z-index:100;width:44px;height:44px;display:flex;align-items:center;justify-content:center;opacity:.3;transition:opacity var(--duration-normal) var(--ease-out),transform var(--duration-normal) var(--ease-out)}.state-new .settings-trigger{opacity:0;pointer-events:none}.settings-trigger:hover{opacity:.7;transform:rotate(15deg)}.settings-trigger svg{width:20px;height:20px;stroke:var(--color-silver);stroke-width:1.5;fill:none}.settings-overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:flex-end;justify-content:center;background:var(--color-overlay);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);opacity:0;visibility:hidden;transition:opacity var(--duration-normal) var(--ease-out),visibility var(--duration-normal) var(--ease-out)}.settings-overlay.is-open{opacity:1;visibility:visible}.settings-modal{background:var(--glass-bg);backdrop-filter:blur(40px);-webkit-backdrop-filter:blur(40px);border:var(--glass-border);border-radius:var(--modal-radius) var(--modal-radius) 0 0;box-shadow:0 -8px 40px #0006;padding:var(--space-8) var(--space-6) var(--space-6);width:100%;max-width:440px;max-height:90vh;overflow-y:auto;transform:translateY(100%);transition:transform var(--duration-slow) var(--ease-out)}.settings-overlay.is-open .settings-modal{transform:translateY(0)}.settings-title{font-family:var(--font-heading);font-size:var(--text-2xl);color:var(--color-silver);margin-bottom:var(--space-2)}.settings-subtitle{font-size:var(--text-sm);color:var(--color-text-muted);margin-bottom:var(--space-8)}.settings-form{display:flex;flex-direction:column;gap:var(--space-6)}.form-field{display:flex;flex-direction:column;gap:var(--space-2)}.form-field label{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:var(--tracking-wider)}.form-field input{background:transparent;border:none;border-bottom:1px solid var(--color-border);padding:var(--space-3) 0;font-size:var(--text-lg);color:var(--color-silver);outline:none;transition:border-color var(--duration-normal) var(--ease-out);-webkit-appearance:none;appearance:none}.form-field input:focus{border-bottom-color:var(--color-gold)}.form-field input[type=date]::-webkit-calendar-picker-indicator{filter:invert(.7);cursor:pointer}.form-field input[type=number]::-webkit-inner-spin-button,.form-field input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.form-field input[type=number]{-moz-appearance:textfield}.settings-save{margin-top:var(--space-4);padding:var(--space-4) var(--space-6);border:1px solid var(--color-gold);border-radius:8px;background:transparent;color:var(--color-gold);font-size:var(--text-base);font-weight:var(--weight-medium);letter-spacing:var(--tracking-wide);text-transform:uppercase;transition:background var(--duration-normal) var(--ease-out),color var(--duration-normal) var(--ease-out)}.settings-save:hover{background:var(--color-gold);color:var(--color-bg)}.app:not(.state-new):not(.state-returning) .locked-overlay{opacity:0;pointer-events:none}.locked-overlay{position:absolute;inset:0;z-index:10;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);background:#000000f2;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:var(--card-radius);opacity:1;transition:opacity .8s var(--ease-out);pointer-events:auto;padding:var(--space-8) var(--space-6);text-align:center}.hero,.life-grid-section,.moments-section{position:relative}.state-new .life-grid-header,.state-new .life-grid-wrapper,.state-new .life-grid-legend,.state-new .moments-title,.state-new .moments-list{display:none!important}.state-new .life-grid-section,.state-new .moments-section{min-height:360px}.state-returning .locked-overlay{opacity:0;pointer-events:none;backdrop-filter:none;-webkit-backdrop-filter:none}.state-revealing .locked-overlay{opacity:0;transition:opacity 1.2s var(--ease-out)}.locked-eyebrow{font-family:var(--font-body);font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:var(--tracking-widest)}.locked-icon{width:32px;height:32px;stroke:var(--color-gold);stroke-width:1.5;fill:none;opacity:.6}.locked-message{font-family:var(--font-heading);font-style:italic;font-size:var(--text-xl);color:var(--color-silver);line-height:var(--leading-relaxed);max-width:400px}.locked-cta{display:inline-block;padding:var(--space-3) var(--space-8);border:1px solid var(--color-gold-dim);border-radius:100px;background:transparent;color:var(--color-gold);font-family:var(--font-body);font-size:var(--text-sm);font-weight:var(--weight-medium);letter-spacing:var(--tracking-wider);text-transform:uppercase;cursor:pointer;transition:border-color var(--duration-normal) var(--ease-out),background var(--duration-normal) var(--ease-out),color var(--duration-normal) var(--ease-out),transform var(--duration-fast) var(--ease-out)}.locked-cta:hover{border-color:var(--color-gold);background:#d4af3714;transform:scale(1.03)}.locked-sublabel{font-size:var(--text-xs);color:var(--color-text-muted);letter-spacing:var(--tracking-wide)}.onboarding-overlay{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;background:#000000f7;backdrop-filter:blur(30px);-webkit-backdrop-filter:blur(30px);opacity:0;visibility:hidden;transition:opacity var(--duration-slow) var(--ease-out),visibility var(--duration-slow) var(--ease-out)}.onboarding-overlay.is-open{opacity:1;visibility:visible}.onboarding-content{max-width:600px;width:100%;padding:var(--space-6);text-align:center;transform:translateY(20px);transition:transform var(--duration-slow) var(--ease-out)}.onboarding-overlay.is-open .onboarding-content{transform:translateY(0)}.onboarding-brand{font-family:var(--font-heading);font-size:var(--text-3xl);color:var(--color-gold);letter-spacing:var(--tracking-wide);margin-bottom:var(--space-2)}.onboarding-tagline{font-size:var(--text-sm);color:var(--color-text-muted);letter-spacing:var(--tracking-wider);text-transform:uppercase;margin-bottom:var(--space-16)}.onboarding-form{display:flex;flex-direction:column;align-items:center;gap:var(--space-6)}.onboarding-label{font-family:var(--font-heading);font-size:var(--text-2xl);font-style:italic;color:var(--color-silver-dim);margin-bottom:var(--space-2)}.onboarding-fields{display:flex;flex-direction:row;align-items:flex-start;gap:var(--space-5)}.onboarding-field{display:flex;flex-direction:column;align-items:center;gap:var(--space-2)}.onboarding-field-hint{font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:var(--tracking-wider)}.onboarding-input{display:block;width:4ch;background:transparent;border:none;border-bottom:2px solid var(--color-border);color:var(--color-gold);font-family:var(--font-heading);font-size:var(--text-3xl);font-weight:var(--weight-bold);text-align:center;padding:var(--space-2) var(--space-2);outline:none;transition:border-color var(--duration-normal) var(--ease-out);-webkit-appearance:none;-moz-appearance:textfield;appearance:none}.onboarding-input:focus{border-bottom-color:var(--color-gold)}.onboarding-input--year{width:5.5ch}.onboarding-input::-webkit-inner-spin-button,.onboarding-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.onboarding-save{display:inline-block;padding:var(--space-4) var(--space-10);border:1px solid var(--color-gold-dim);border-radius:100px;background:transparent;color:var(--color-gold);font-family:var(--font-body);font-size:var(--text-sm);font-weight:var(--weight-medium);letter-spacing:var(--tracking-wider);text-transform:uppercase;cursor:pointer;opacity:.3;pointer-events:none;transition:opacity var(--duration-normal) var(--ease-out),border-color var(--duration-normal) var(--ease-out),background var(--duration-normal) var(--ease-out),color var(--duration-normal) var(--ease-out),transform var(--duration-fast) var(--ease-out)}.onboarding-save.is-active{opacity:1;pointer-events:auto}.onboarding-save.is-active:hover{border-color:var(--color-gold);background:var(--color-gold);color:var(--color-bg);transform:scale(1.03)}.onboarding-error{font-size:var(--text-xs);color:#cf6679;margin-top:var(--space-4);min-height:1.5em;letter-spacing:var(--tracking-wide)}.onboarding-skip{display:block;margin-top:var(--space-8);font-size:var(--text-xs);color:var(--color-text-muted);letter-spacing:var(--tracking-wide);cursor:pointer;background:none;border:none;text-decoration:none;transition:color var(--duration-normal) var(--ease-out)}.onboarding-skip:hover{color:var(--color-text-secondary)}.odometer{display:inline-flex;overflow:hidden;font-variant-numeric:tabular-nums;vertical-align:baseline}.odo-digit{display:inline-block;height:1.2em;overflow:hidden;position:relative}.odo-strip{display:block;line-height:1.2;transition:transform .4s cubic-bezier(.16,1,.3,1);white-space:pre}.odo-static{display:inline-block}.moments-section{text-align:center}.moments-title{font-family:var(--font-heading);font-size:var(--text-2xl);font-style:italic;font-weight:var(--weight-bold);color:var(--color-gold);line-height:var(--leading-tight);letter-spacing:var(--tracking-wide);margin-bottom:var(--space-12)}.moments-list{display:flex;flex-direction:column;gap:var(--space-10)}.moments-item{display:flex;flex-direction:column;align-items:center;gap:var(--space-3)}.moments-count{font-family:var(--font-heading);font-size:3rem;font-weight:var(--weight-bold);color:var(--color-gold);line-height:1;font-variant-numeric:tabular-nums;letter-spacing:.02em}.moments-desc{font-family:var(--font-heading);font-size:var(--text-base);font-weight:var(--weight-bold);font-style:italic;color:var(--color-text-secondary);line-height:var(--leading-loose);letter-spacing:var(--tracking-wide);max-width:520px}@media(min-width:768px){.moments-count{font-size:3.5rem}.moments-desc{font-size:var(--text-lg)}}@media(min-width:1024px){.moments-count{font-size:4rem}.moments-title{font-size:var(--text-3xl)}}[data-animate]{opacity:0;transform:translateY(24px);transition:opacity var(--duration-reveal) var(--ease-out),transform var(--duration-reveal) var(--ease-out)}[data-animate].is-visible{opacity:1;transform:translateY(0)}[data-animate-stagger]>*{opacity:0;transform:translateY(16px);transition:opacity var(--duration-reveal) var(--ease-out),transform var(--duration-reveal) var(--ease-out)}[data-animate-stagger].is-visible>*:nth-child(1){transition-delay:0ms;opacity:1;transform:none}[data-animate-stagger].is-visible>*:nth-child(2){transition-delay:.2s;opacity:1;transform:none}[data-animate-stagger].is-visible>*:nth-child(3){transition-delay:.4s;opacity:1;transform:none}[data-animate-stagger].is-visible>*:nth-child(4){transition-delay:.6s;opacity:1;transform:none}@keyframes darkroomFade{0%{filter:blur(20px) brightness(0);opacity:0}to{filter:blur(0px) brightness(1);opacity:1}}@keyframes darkroomReveal{0%{filter:blur(20px) brightness(0)}to{filter:blur(0) brightness(1)}}body{background-color:#000}.app>.hero{animation:darkroomFade 3s cubic-bezier(.22,1,.36,1) 0s both}.app>.life-grid-section{animation:darkroomFade 3s cubic-bezier(.22,1,.36,1) .5s both}.app>.dashboards,.app>.moments-section,.app>.constellation-section{animation:darkroomFade 3s cubic-bezier(.22,1,.36,1) 1s both}.app>.site-footer{animation:darkroomReveal 3s cubic-bezier(.22,1,.36,1) 1.5s both}.app>.exif-stamp{animation:darkroomReveal 3s cubic-bezier(.22,1,.36,1) 1.5s both}.film-grain{position:fixed;inset:0;z-index:9999;pointer-events:none;opacity:.07;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");background-size:200px 200px;animation:grain-drift .2s steps(1) infinite}@keyframes grain-drift{0%{background-position:0 0}20%{background-position:-47px 83px}40%{background-position:91px -32px}60%{background-position:-63px -71px}80%{background-position:37px 52px}to{background-position:-19px -97px}}.shutter-top,.shutter-bottom{position:fixed;left:0;right:0;height:51vh;background:#000;z-index:10001;pointer-events:none;transition:transform .4s cubic-bezier(.7,0,.3,1)}.shutter-top{top:0;transform:translateY(-100%)}.shutter-bottom{bottom:0;transform:translateY(100%)}.shutter-active .shutter-top,.shutter-active .shutter-bottom{transform:translateY(0)}.exit-section{opacity:0;transform:translateY(20px);transition:opacity 2s var(--ease-out),transform 2s var(--ease-out)}.exit-section.is-visible{opacity:1;transform:translateY(0)}.ending-overlay{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;background:#000;opacity:0;visibility:hidden;pointer-events:none;transition:opacity 3s var(--ease-out),visibility 0s 3s}.ending-overlay.is-active{opacity:1;visibility:visible;pointer-events:auto;transition:opacity 3s var(--ease-out),visibility 0s}.ending-content{text-align:center;padding:var(--space-6);display:flex;flex-direction:column;align-items:center;gap:var(--space-5)}.ending-primary{font-family:var(--font-heading);font-size:var(--text-3xl);font-style:italic;font-weight:var(--weight-bold);color:var(--color-gold);letter-spacing:var(--tracking-wide);opacity:0;transform:translateY(12px);transition:opacity 1.5s var(--ease-out),transform 1.5s var(--ease-out)}.ending-secondary{font-family:var(--font-heading);font-size:var(--text-xl);font-style:italic;font-weight:var(--weight-regular);color:var(--color-gold);letter-spacing:var(--tracking-wide);line-height:var(--leading-relaxed);max-width:500px;opacity:0;transform:translateY(12px);transition:opacity 1.5s var(--ease-out),transform 1.5s var(--ease-out)}.ending-overlay.is-active .ending-primary,.ending-overlay.show-secondary .ending-secondary{opacity:1;transform:translateY(0)}.ending-overlay.is-fading .ending-primary,.ending-overlay.is-fading .ending-secondary{opacity:0;transition:opacity 2s var(--ease-out)}.ending-overlay.is-gone{opacity:0;visibility:hidden;pointer-events:none;transition:opacity 2s var(--ease-out),visibility 0s 2s}.app.is-transitioning>*:not(.ending-overlay):not(.film-grain){opacity:0!important;pointer-events:none!important;transition:opacity .8s var(--ease-out)!important}.app.ending-mode>*:not(.constellation-section):not(.site-footer):not(.ending-overlay){display:none!important}.app.ending-mode .constellation-ui,.app.ending-mode .constellation-tooltip{display:none!important}.app.ending-mode{--ending-footer-h: 60px}.app.ending-mode .constellation-section{position:fixed;inset:0;bottom:var(--ending-footer-h);padding:0;z-index:1}.app.ending-mode .constellation-canvas-wrapper{display:block!important;border-radius:0}.app.ending-sky-visible .constellation-canvas-wrapper{opacity:1;pointer-events:auto}.app.ending-mode .site-footer{position:fixed;bottom:0;left:0;right:0;height:var(--ending-footer-h);z-index:2;display:flex;align-items:center;justify-content:center;padding:0;margin-top:0;background:#000;border:none;opacity:0;transition:opacity 2s var(--ease-out)}.app.ending-mode.ending-sky-visible .site-footer{opacity:1}.app.ending-mode .exit-exif{opacity:.4}.app.ending-mode .film-grain{opacity:.06}.new-star{position:absolute;width:8px;height:8px;border-radius:50%;background:gold;box-shadow:0 0 10px gold,0 0 20px gold,0 0 35px #ffd70080;opacity:0;pointer-events:none;transform:translate(-50%,-50%);z-index:5}.new-star.is-rising{animation:star-rise 2.5s var(--ease-out) forwards,star-pulse 2s ease-in-out infinite 2.5s}@keyframes star-rise{0%{opacity:0;transform:translate(-50%,calc(-50% + 80px))}to{opacity:1;transform:translate(-50%,-50%)}}@keyframes star-pulse{0%,to{box-shadow:0 0 10px gold,0 0 20px gold,0 0 35px #ffd70080}50%{box-shadow:0 0 15px gold,0 0 30px gold,0 0 50px #ffd70099}}.constellation-section{position:relative;overflow:hidden;padding-top:8rem;background:#000}.constellation-header{text-align:center;margin-bottom:var(--space-8)}.constellation-title{font-family:var(--font-heading);font-size:var(--text-2xl);font-weight:var(--weight-bold);color:var(--color-gold);letter-spacing:var(--tracking-wide);margin-bottom:var(--space-2)}.constellation-subtitle{font-size:var(--text-sm);color:var(--color-text-muted);letter-spacing:var(--tracking-wider)}.constellation-canvas-wrapper{position:absolute;inset:0;z-index:0;overflow:hidden;display:none;background:#000;opacity:0;pointer-events:none;transition:opacity 2s var(--ease-out)}.constellation-canvas{display:block;width:100%;height:100%;cursor:crosshair}.constellation-tooltip{position:absolute;pointer-events:none;background:#000000f2;border:1px solid rgba(212,175,55,.2);border-radius:8px;padding:var(--space-2) var(--space-3);font-family:var(--font-body);font-size:var(--text-xs);color:var(--color-silver);letter-spacing:var(--tracking-wide);max-width:240px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:0;transform:translateY(4px);transition:opacity var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out);z-index:10}.constellation-tooltip.is-visible{opacity:1;transform:translateY(0)}.constellation-ui{position:relative;z-index:1;transition:opacity .8s var(--ease-out)}.constellation-ui.is-fading-out{opacity:0;pointer-events:none}.constellation-counter{text-align:center;font-size:var(--text-xs);color:var(--color-text-muted);letter-spacing:var(--tracking-wider);margin-bottom:var(--space-5);min-height:1.2em}.constellation-input{display:flex;flex-direction:column;gap:var(--space-3);max-width:500px;margin:0 auto}.constellation-message{flex:1;background:transparent;border:1px solid var(--color-border);border-radius:100px;padding:var(--space-3) var(--space-5);color:var(--color-silver);font-family:var(--font-body);font-size:var(--text-sm);outline:none;transition:border-color var(--duration-normal) var(--ease-out)}.constellation-message::placeholder{color:var(--color-text-muted)}.constellation-message:focus{border-color:var(--color-gold-dim)}.constellation-submit{flex-shrink:0;padding:var(--space-3) var(--space-6);border:1px solid var(--color-gold-dim);border-radius:100px;background:transparent;color:var(--color-gold);font-family:var(--font-body);font-size:var(--text-sm);font-weight:var(--weight-medium);letter-spacing:var(--tracking-wider);cursor:pointer;transition:border-color var(--duration-normal) var(--ease-out),background var(--duration-normal) var(--ease-out),color var(--duration-normal) var(--ease-out),opacity var(--duration-normal) var(--ease-out)}.constellation-submit:hover:not(:disabled){border-color:var(--color-gold);background:#d4af3714}.constellation-submit:disabled{opacity:.4;cursor:default}.constellation-cooldown{text-align:center;font-size:var(--text-xs);color:var(--color-text-muted);letter-spacing:var(--tracking-wide);margin-top:var(--space-3);min-height:1.2em}.constellation-return{text-align:center;margin-top:var(--space-5)}.constellation-return-text{font-family:var(--font-body);font-size:var(--text-sm);color:var(--color-text-muted);letter-spacing:var(--tracking-wide);margin-bottom:var(--space-4)}.constellation-return-btn{display:inline-block;padding:var(--space-3) var(--space-6);border:1px solid var(--color-gold-dim);border-radius:100px;background:transparent;color:var(--color-gold);font-family:var(--font-body);font-size:var(--text-sm);font-weight:var(--weight-medium);letter-spacing:var(--tracking-wider);cursor:pointer;transition:border-color var(--duration-normal) var(--ease-out),background var(--duration-normal) var(--ease-out)}.constellation-return-btn:hover{border-color:var(--color-gold);background:#d4af3714}.star-focus{position:absolute;inset:0;z-index:15;display:flex;align-items:center;justify-content:center;background:#000000bf;opacity:0;pointer-events:none;transition:opacity .6s var(--ease-out);cursor:default}.star-focus.is-visible{opacity:1;pointer-events:auto}.star-focus-message{font-family:var(--font-heading);font-size:var(--text-2xl);font-style:italic;font-weight:var(--weight-bold);color:var(--color-gold);letter-spacing:var(--tracking-wide);line-height:var(--leading-relaxed);text-align:center;padding:var(--space-6);max-width:600px;transform:translateY(10px);transition:transform .6s var(--ease-out)}.star-focus.is-visible .star-focus-message{transform:translateY(0)}@media(min-width:768px){:root{--container-padding: var(--space-6);--section-gap: var(--space-12);--text-hero: 4.5rem;--gauge-size: 140px}.dashboard-grid{grid-template-columns:1fr 1fr}.settings-overlay{align-items:center}.settings-modal{border-radius:var(--modal-radius);max-width:420px;transform:translateY(20px);opacity:0;transition:transform var(--duration-slow) var(--ease-out),opacity var(--duration-slow) var(--ease-out)}.settings-overlay.is-open .settings-modal{transform:translateY(0);opacity:1}.life-grid{gap:2px}.onboarding-label,.onboarding-input{font-size:var(--text-3xl)}.onboarding-fields{gap:var(--space-8)}.locked-message{font-size:var(--text-2xl)}.constellation-input{flex-direction:row}}@media(min-width:1024px){:root{--container-padding: var(--space-8);--section-gap: 6rem;--text-hero: 5.5rem;--gauge-size: 160px;--max-width: 900px}.hero:before{width:800px;height:800px}.onboarding-input{font-size:var(--text-4xl, 2.5rem)}.onboarding-input--year{width:5.5ch}}@media(min-width:1440px){:root{--container-padding: var(--space-10);--text-hero: 6rem;--max-width: 1000px}}
