:root{--abyss: #050b14;--deep: #0a1626;--tide: #122236;--foam: #d9d2c2;--moon: #f4ecd8;--brass: #b89968;--brass-dim: #6f5b3e;--rust: #a85a3a;--serif: "Cormorant Garamond", "Times New Roman", serif;--sans: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--safe-top: env(safe-area-inset-top, 0);--safe-bottom: env(safe-area-inset-bottom, 0)}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;background:var(--abyss);color:var(--foam);font-family:var(--sans);font-weight:300;-webkit-font-smoothing:antialiased;overscroll-behavior:none;min-height:100dvh}#root{min-height:100dvh;padding-top:var(--safe-top);padding-bottom:var(--safe-bottom);position:relative;isolation:isolate}.ambient{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 20% 10%,rgba(184,153,104,.08),transparent 50%),radial-gradient(ellipse at 80% 90%,rgba(18,34,54,.9),transparent 60%),linear-gradient(180deg,var(--abyss),var(--deep) 60%,var(--abyss))}.grain{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;opacity:.06;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.stars{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background-image:radial-gradient(1px 1px at 20% 30%,rgba(244,236,216,.6),transparent),radial-gradient(1px 1px at 70% 80%,rgba(244,236,216,.4),transparent),radial-gradient(1px 1px at 40% 60%,rgba(244,236,216,.5),transparent),radial-gradient(1px 1px at 85% 20%,rgba(244,236,216,.7),transparent),radial-gradient(1px 1px at 10% 80%,rgba(244,236,216,.4),transparent),radial-gradient(1px 1px at 55% 15%,rgba(244,236,216,.5),transparent),radial-gradient(1px 1px at 90% 55%,rgba(244,236,216,.3),transparent),radial-gradient(1px 1px at 30% 90%,rgba(244,236,216,.5),transparent);background-size:100% 100%;animation:drift 120s linear infinite}@keyframes drift{0%{background-position:0 0}to{background-position:-200px 100px}}.display{font-family:var(--serif);font-weight:300;letter-spacing:-.01em;line-height:1.05}.display.italic{font-style:italic}.eyebrow{font-family:var(--sans);font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--brass);font-weight:400}.body-text{font-family:var(--serif);font-size:19px;line-height:1.55;color:var(--foam);font-weight:400}.screen{min-height:100dvh;width:100%;max-width:540px;margin:0 auto;padding:32px 28px 48px;display:flex;flex-direction:column}.center{align-items:center;justify-content:center;text-align:center}.lock{gap:48px}.lighthouse{width:180px;height:180px;position:relative}.lock-words{display:flex;flex-direction:column;gap:14px;text-align:center}.lock-words .display{font-size:38px;font-style:italic}.lock-words .small{font-family:var(--serif);font-size:17px;font-style:italic;color:var(--moon);opacity:.7;max-width:32ch;margin:0 auto;line-height:1.5}.lock-peek{position:relative;align-self:center;background:none;border:1px solid rgba(184,153,104,.4);color:var(--brass);font-family:var(--serif);font-style:italic;font-size:16px;padding:12px 22px;border-radius:2px;cursor:pointer;letter-spacing:.02em;transition:all .3s ease}.lock-peek:hover,.lock-peek:active{background:#b8996814;border-color:#b89968b3}.update-button{position:fixed;top:calc(var(--safe-top) + 12px);left:12px;z-index:100;width:32px;height:32px;background:#050b148c;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid rgba(184,153,104,.25);color:var(--brass);border-radius:50%;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;transition:all .3s ease}.update-button:hover,.update-button:active{border-color:#b899688c;background:#050b14bf}.update-button.has-update{border-color:#b89968b3;animation:update-pulse 2.4s ease-in-out infinite}.update-button.busy svg{animation:update-spin 1s linear infinite}.update-dot{position:absolute;top:-2px;right:-2px;width:10px;height:10px;background:#d9534f;border-radius:50%;border:2px solid #050b14}.update-checked{position:absolute;top:50%;left:40px;transform:translateY(-50%);font-family:var(--serif);font-size:12px;font-style:italic;color:var(--moon);opacity:.7;white-space:nowrap;letter-spacing:.04em;pointer-events:none;animation:update-checked-fade 1.8s ease both}@keyframes update-spin{to{transform:rotate(360deg)}}@keyframes update-pulse{0%,to{box-shadow:0 0 #b8996873}50%{box-shadow:0 0 0 6px #b8996800}}@keyframes update-checked-fade{0%{opacity:0;transform:translate(-4px,-50%)}20%,70%{opacity:.7;transform:translateY(-50%)}to{opacity:0;transform:translateY(-50%)}}.peek{gap:28px;padding-top:64px}.peek-header{text-align:center;padding:8px 0 4px}.peek-header .title{font-size:44px;font-style:italic}.peek-header .sub{font-family:var(--serif);font-size:16px;font-style:italic;color:var(--moon);opacity:.65;margin-top:8px}.countdown{display:flex;gap:18px;margin-top:8px}.countdown-cell{display:flex;flex-direction:column;align-items:center;min-width:56px}.countdown-cell .num{font-family:var(--serif);font-size:36px;font-weight:400;color:var(--moon);font-feature-settings:"tnum"}.countdown-cell .lab{font-family:var(--sans);font-size:9px;letter-spacing:.24em;text-transform:uppercase;color:var(--brass-dim);margin-top:6px}.moment{gap:24px;padding-top:64px}.moment .greeting{font-size:56px;font-style:italic;text-align:center;background:linear-gradient(180deg,var(--moon),var(--brass));-webkit-background-clip:text;background-clip:text;color:transparent}.moment video{width:100%;border-radius:4px;box-shadow:0 0 0 1px #b8996833,0 30px 60px -20px #000c;background:#000}.moment .after{font-family:var(--serif);font-size:19px;line-height:1.6;font-style:italic;color:var(--foam);text-align:center;padding:0 8px}.moment-close{position:fixed;top:calc(var(--safe-top) + 12px);right:12px;z-index:5;width:32px;height:32px;background:#050b1480;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid rgba(184,153,104,.25);color:var(--brass);font-family:var(--serif);font-size:18px;cursor:pointer;border-radius:50%;padding:0;display:flex;align-items:center;justify-content:center;line-height:1}.timers-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:8px 0 4px}.timer-cell{position:relative;background:radial-gradient(120% 120% at 0% 0%,rgba(184,153,104,.08),transparent 60%),#12223673;border:1px solid rgba(184,153,104,.2);border-radius:2px;padding:18px 16px 14px;display:flex;flex-direction:column;gap:12px;min-height:102px;justify-content:space-between;overflow:hidden}.timer-cell:after{content:"";position:absolute;left:12px;right:12px;bottom:0;height:1px;background:linear-gradient(90deg,transparent,rgba(184,153,104,.35),transparent);opacity:.6}.timer-top{display:flex;flex-direction:column;gap:5px}.timer-cell .num-row{display:flex;align-items:baseline;flex-wrap:wrap;font-family:var(--serif);font-style:italic;color:var(--moon);letter-spacing:-.01em}.timer-cell .num-row .part{display:inline-flex;align-items:baseline;margin-right:9px}.timer-cell .num-row .part:last-child{margin-right:0}.timer-cell .num-row .num{font-size:32px;line-height:1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.timer-cell .num-row .unit{font-size:14px;color:var(--brass);margin-left:3px;line-height:1}.timer-cell .timer-days{font-family:var(--sans);font-size:10.5px;letter-spacing:.08em;color:var(--brass);opacity:.82;font-variant-numeric:tabular-nums}.timer-cell .label{font-family:var(--sans);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--brass);opacity:.92;line-height:1.5}.home{gap:32px}.home-nav{display:flex;flex-direction:column;gap:14px;margin-top:8px}.home-birthday-video{display:flex;flex-direction:column;gap:10px}.home-birthday-video video{width:100%;display:block;border-radius:4px;background:#000;box-shadow:0 0 0 1px #b8996833,0 24px 48px -20px #000000b3}.video-stage{position:relative}.video-end-card{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:24px;border:none;border-radius:4px;cursor:pointer;text-align:center;background:radial-gradient(120% 80% at 50% 30%,rgba(184,153,104,.18),transparent 70%),linear-gradient(160deg,#14233a,#0a1626 70%,#050b14);box-shadow:0 0 0 1px #b8996840,0 24px 48px -20px #000000b3;animation:end-card-fade .8s ease both}.video-end-card p{font-family:var(--serif);font-style:italic;font-size:22px;line-height:1.45;color:var(--moon);max-width:28ch;margin:0}.video-end-card .replay-hint{font-family:var(--serif);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--brass);opacity:.7}@keyframes end-card-fade{0%{opacity:0;transform:scale(.985)}to{opacity:1;transform:scale(1)}}.explore-cta{margin-top:4px;align-self:center;background:none;border:1px solid rgba(184,153,104,.4);color:var(--brass);font-family:var(--serif);font-style:italic;font-size:15px;padding:10px 20px;border-radius:2px;cursor:pointer;letter-spacing:.02em;transition:all .3s ease}.explore-cta:hover,.explore-cta:active{background:#b8996814;border-color:#b89968b3}.home-nav-icon{position:absolute;top:18px;right:18px;color:var(--brass);opacity:.75;display:inline-flex}.home-nav-badge{position:absolute;top:-6px;right:-8px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#d9534f;color:#fff;font-family:var(--serif);font-size:11px;font-weight:600;font-style:normal;display:inline-flex;align-items:center;justify-content:center;line-height:1;box-shadow:0 2px 6px #00000080}.home-nav-card{position:relative;width:100%;background:#12223680;border:1px solid rgba(184,153,104,.22);border-radius:2px;padding:22px 24px;display:flex;flex-direction:column;gap:6px;text-align:left;cursor:pointer;transition:all .4s cubic-bezier(.2,.8,.2,1)}.home-nav-card:hover,.home-nav-card:active{border-color:var(--brass);background:#122236bf;transform:translate(2px)}.home-nav-card .eyebrow{font-family:var(--sans);font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:var(--brass)}.home-nav-card .title{font-family:var(--serif);font-style:italic;font-size:22px;color:var(--moon);line-height:1.2}.home-nav-card .meta{font-family:var(--sans);font-size:11px;letter-spacing:.2em;color:var(--brass);opacity:.9;margin-top:4px}.home-header{text-align:center;padding:40px 0 8px}.home-header .title{font-size:44px;font-style:italic}.home-header .sub{font-family:var(--serif);font-size:16px;font-style:italic;color:var(--moon);opacity:.65;margin-top:8px}.section-title{display:flex;align-items:center;gap:16px;margin-bottom:20px}.section-title .rule{flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--brass-dim),transparent)}.section-cards{display:flex;flex-direction:column;gap:12px}.section-card{position:relative;padding:22px 24px;border:1px solid rgba(184,153,104,.18);background:#0a162680;border-radius:2px;cursor:pointer;transition:all .4s cubic-bezier(.2,.8,.2,1);text-align:left;display:flex;align-items:center;gap:18px;width:100%}.section-card:hover,.section-card:active{border-color:var(--brass);background:#122236b3;transform:translate(2px)}.section-card .index{font-family:var(--serif);font-style:italic;font-size:22px;color:var(--brass);width:24px;text-align:center;opacity:.75;flex-shrink:0}.section-card .name{font-family:var(--serif);font-style:italic;font-size:19px;color:var(--foam);flex:1}.section-card .arrow{font-family:var(--sans);color:var(--brass-dim);font-size:12px;letter-spacing:.2em}.card-new-dot{position:absolute;top:8px;right:8px;width:7px;height:7px;border-radius:50%;background:var(--rust);box-shadow:0 0 0 2px #a85a3a38;pointer-events:none}.page-screen{width:100%;max-width:540px;margin:0 auto;padding:calc(var(--safe-top) + 64px) 24px 64px;display:flex;flex-direction:column;gap:28px}.page-header{text-align:center;display:flex;flex-direction:column;gap:8px;margin-bottom:8px}.page-header .title{font-family:var(--serif);font-style:italic;font-size:32px;color:var(--moon);line-height:1.1}.page-header .sub{font-family:var(--serif);font-style:italic;font-size:14px;color:var(--brass);opacity:.75}.envelope-grid{display:flex;flex-direction:column;gap:12px}.envelope{position:relative;padding:14px 20px;border:1px solid rgba(184,153,104,.25);background:#12223666;border-radius:2px;cursor:pointer;transition:all .4s cubic-bezier(.2,.8,.2,1);text-align:left;font-family:var(--serif);font-size:17px;font-style:italic;color:var(--foam);display:flex;align-items:center;gap:14px}.envelope:hover,.envelope:active{border-color:var(--brass);background:#122236b3;transform:translate(2px)}.envelope.locked{opacity:.45;cursor:not-allowed;font-style:normal}.envelope.locked:hover{transform:none}.seal{width:14px;height:14px;border-radius:50%;background:var(--rust);flex-shrink:0;box-shadow:0 0 0 1px #a85a3a66,inset 0 0 4px #0000004d}.envelope.locked .seal{background:var(--brass-dim);box-shadow:none}.envelope .label{flex:1}.envelope .meta{font-family:var(--sans);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--brass-dim);font-style:normal}.letter-screen{gap:28px;padding-top:56px;position:relative}.letter-back{position:absolute;top:24px;left:24px;background:none;border:none;color:var(--brass);font-family:var(--sans);font-size:11px;letter-spacing:.24em;text-transform:uppercase;cursor:pointer;padding:8px}.letter-screen .label{font-size:32px;font-style:italic;text-align:center}.letter-screen .body-text{white-space:pre-wrap}audio{width:100%;margin-top:12px}.timeline{width:100%;max-width:540px;margin:0 auto;padding-bottom:64px}.section-back{position:fixed;top:calc(var(--safe-top) + 16px);left:16px;z-index:10;background:#050b148c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(184,153,104,.22);color:var(--brass);font-family:var(--sans);font-size:11px;letter-spacing:.24em;text-transform:uppercase;cursor:pointer;padding:8px 14px;border-radius:2px}.timeline-entry{min-height:88vh;min-height:88dvh;padding:24px 28px;display:flex;flex-direction:column;justify-content:center;gap:22px}.timeline-entry .when{font-family:var(--sans);font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--brass);text-align:center}.timeline-entry .heading{font-family:var(--serif);font-style:italic;font-size:32px;color:var(--moon);text-align:center;line-height:1.1}.timeline-entry .photo-wrap{position:relative;width:100%;aspect-ratio:4 / 5;overflow:hidden;border-radius:2px;box-shadow:0 0 0 1px #b8996833,0 30px 60px -20px #000c;background:var(--tide)}.timeline-entry .photo{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.timeline-entry .caption{font-family:var(--serif);font-style:italic;font-size:18px;color:var(--foam);line-height:1.55;text-align:center;max-width:36ch;margin:0 auto;opacity:.85}.section-empty{min-height:80vh;min-height:80dvh;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-style:italic;font-size:19px;color:var(--foam);opacity:.5;text-align:center;padding:0 32px;line-height:1.5}.playlist{width:100%;max-width:540px;margin:0 auto;padding:80px 24px 64px}.track-list{display:flex;flex-direction:column;gap:36px}.track{border-bottom:1px solid rgba(184,153,104,.12);padding-bottom:32px}.track:last-child{border-bottom:none}.track-head{display:flex;gap:18px;align-items:baseline;margin-bottom:16px}.track-head .num{font-family:var(--serif);font-style:italic;font-size:16px;color:var(--brass);opacity:.7;width:32px;flex-shrink:0}.track-text{flex:1}.track-text .title{font-family:var(--serif);font-style:italic;font-size:22px;color:var(--moon);line-height:1.2}.track-text .note{font-family:var(--serif);font-style:italic;font-size:15px;color:var(--foam);opacity:.65;line-height:1.4;margin-top:6px}.track-controls{display:flex;align-items:center;gap:14px;padding-left:50px}.track-controls .play{width:36px;height:36px;border-radius:50%;border:1px solid rgba(184,153,104,.4);background:#12223680;color:var(--brass);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s cubic-bezier(.2,.8,.2,1);flex-shrink:0;padding:0}.track-controls .play:hover{border-color:var(--brass);color:var(--moon)}.track-controls .play svg{fill:currentColor}.track-controls .progress{flex:1;height:2px;background:#b8996826;cursor:pointer;position:relative;overflow:hidden}.track-controls .progress-fill{height:100%;background:var(--brass)}.track-controls .time{font-family:var(--sans);font-size:11px;letter-spacing:.06em;color:var(--brass);opacity:.85;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;flex-shrink:0;min-width:64px;text-align:right}.track-controls.compact{padding-left:0}.voice-when{font-family:var(--sans);font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--brass);opacity:.9;margin-bottom:8px}.letter-voice{margin-top:36px;padding-top:22px;border-top:1px solid rgba(184,153,104,.18);display:flex;flex-direction:column;gap:14px}.letter-voice .eyebrow{color:var(--brass)}.starmap{width:100%;max-width:540px;margin:0 auto;padding:80px 24px 48px;display:flex;flex-direction:column;align-items:center;gap:32px}.starmap-header{text-align:center;display:flex;flex-direction:column;gap:10px}.starmap-header .title{font-family:var(--serif);font-style:italic;font-size:36px;color:var(--moon);line-height:1.1}.starmap-header .when{font-family:var(--sans);font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--brass)}.starmap-svg-wrap{width:100%;max-width:380px}.starmap-svg{width:100%;height:auto;display:block}.starmap-caption{font-family:var(--serif);font-style:italic;font-size:17px;color:var(--foam);text-align:center;max-width:32ch;line-height:1.5}.chat{width:100%;max-width:540px;margin:0 auto;height:100vh;height:100dvh;display:flex;flex-direction:column}.chat-messages{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:calc(var(--safe-top) + 64px) 18px 16px;display:flex;flex-direction:column}.chat-day{display:flex;flex-direction:column}.chat-day-sep{font-family:var(--serif);font-style:italic;font-size:12px;color:var(--brass-dim);text-align:center;margin:18px 0 12px;display:flex;align-items:center;gap:12px}.chat-day-sep:before,.chat-day-sep:after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,rgba(184,153,104,.18),transparent)}.chat-bubble-row{display:flex;flex-direction:column;margin-bottom:14px;max-width:82%}.chat-bubble-row.from-him{align-self:flex-start}.chat-bubble-row.from-her{align-self:flex-end;align-items:flex-end}.chat-bubble{padding:12px 16px;border-radius:4px;line-height:1.45;word-wrap:break-word}.chat-bubble.from-him{background:#122236b3;color:var(--foam);font-family:var(--serif);font-style:italic;font-size:17px}.chat-bubble.from-her{background:transparent;border:1px solid rgba(184,153,104,.35);color:var(--foam);font-family:var(--sans);font-weight:300;font-size:15px}.chat-bubble-time{font-family:var(--sans);font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--brass-dim);margin-top:4px;padding:0 4px}.chat-typing{align-self:flex-start;padding:14px 18px;background:#122236b3;border-radius:4px;display:flex;gap:5px;margin-bottom:14px}.chat-typing span{width:5px;height:5px;border-radius:50%;background:var(--brass-dim);animation:typing-bounce 1.2s infinite}.chat-typing span:nth-child(2){animation-delay:.18s}.chat-typing span:nth-child(3){animation-delay:.36s}@keyframes typing-bounce{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}.chat-empty{flex:1;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-style:italic;font-size:18px;color:var(--foam);opacity:.5;text-align:center;padding:0 32px;line-height:1.5;max-width:32ch;margin:0 auto}.chat-prompts{display:flex;gap:8px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:14px 18px calc(16px + var(--safe-bottom));border-top:1px solid rgba(184,153,104,.15);background:#050b14c7;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);scrollbar-width:none}.chat-prompts::-webkit-scrollbar{display:none}.chat-prompt-chip{flex-shrink:0;padding:8px 14px;border:1px solid rgba(184,153,104,.4);background:transparent;color:var(--foam);font-family:var(--serif);font-style:italic;font-size:14px;border-radius:2px;cursor:pointer;transition:all .3s cubic-bezier(.2,.8,.2,1);white-space:nowrap}.chat-prompt-chip:hover,.chat-prompt-chip:active{border-color:var(--brass);color:var(--moon)}.chat-prompt-chip:disabled{opacity:.35;cursor:default}.game{width:100%;max-width:540px;margin:0 auto;min-height:100dvh;position:relative;display:flex;flex-direction:column}.game-stage{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:calc(var(--safe-top) + 64px) 16px calc(var(--safe-bottom) + 32px);position:relative;gap:18px;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.way-home-scene{width:100%;display:flex;flex-direction:column;gap:10px}.way-home-svg{width:100%;max-width:480px;height:auto;display:block;border-radius:2px;box-shadow:0 0 0 1px #b8996838,0 30px 60px -20px #000000b3}.way-home-scene.compact .way-home-svg{box-shadow:0 0 0 1px #b8996826,0 16px 36px -16px #0009}.way-home-status{width:100%;max-width:480px;display:flex;align-items:center;gap:14px;padding:0 4px}.progress-track{flex:1;height:2px;background:#b8996826;position:relative;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--brass-dim),var(--brass));transition:width .6s cubic-bezier(.2,.8,.2,1)}.way-home-status .dist{font-family:var(--sans);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--brass-dim);font-variant-numeric:tabular-nums;min-width:84px;text-align:right}.way-home-overlay{text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px;padding:8px 16px 0}.way-home-overlay .title{font-family:var(--serif);font-style:italic;font-size:26px;color:var(--moon);line-height:1.2}.way-home-overlay .line{font-family:var(--serif);font-style:italic;font-size:16px;color:var(--foam);opacity:.75;line-height:1.5}.way-home-overlay .cta{margin-top:14px;background:transparent;border:1px solid var(--brass-dim);color:var(--brass);font-family:var(--sans);font-size:11px;letter-spacing:.28em;text-transform:uppercase;padding:10px 22px;border-radius:2px;cursor:pointer;transition:all .3s cubic-bezier(.2,.8,.2,1)}.way-home-overlay .cta:hover,.way-home-overlay .cta:active{border-color:var(--brass);color:var(--moon)}.notebook{width:100%;max-width:540px;margin:0 auto;min-height:100dvh;position:relative;padding-top:calc(var(--safe-top) + 64px)}.notebook-list{display:flex;flex-direction:column;gap:24px;padding:0 24px 64px}.notebook-header{text-align:center;display:flex;flex-direction:column;gap:8px;padding:8px 0 12px}.notebook-header .title{font-family:var(--serif);font-style:italic;font-size:32px;color:var(--moon);line-height:1.1}.notebook-header .sub{font-family:var(--serif);font-style:italic;font-size:14px;color:var(--brass);opacity:.75;max-width:32ch;margin:0 auto;line-height:1.4}.notebook-cards{display:flex;flex-direction:column;gap:10px}.notebook-card{width:100%;background:#12223673;border:1px solid rgba(184,153,104,.18);border-radius:2px;padding:16px 18px;display:flex;flex-direction:column;gap:6px;align-items:flex-start;cursor:pointer;text-align:left;transition:all .3s cubic-bezier(.2,.8,.2,1)}.notebook-card:hover,.notebook-card:active{border-color:var(--brass);background:#122236b3}.notebook-card .meta{font-family:var(--sans);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--brass-dim)}.notebook-card .preview{font-family:var(--serif);font-size:16px;color:var(--foam);line-height:1.4;font-style:italic}.notebook-empty{min-height:40vh}.notebook-new{align-self:center;margin-top:8px;background:transparent;border:1px solid var(--brass-dim);color:var(--brass);font-family:var(--serif);font-style:italic;font-size:16px;padding:12px 28px;border-radius:2px;cursor:pointer;transition:all .3s cubic-bezier(.2,.8,.2,1)}.notebook-new:hover,.notebook-new:active{border-color:var(--brass);color:var(--moon)}.notebook-editor{display:flex;flex-direction:column;padding:8px 24px calc(var(--safe-bottom) + 32px);gap:16px;min-height:calc(100dvh - var(--safe-top) - 64px)}.notebook-textarea{width:100%;min-height:60vh;background:transparent;border:none;outline:none;resize:none;overflow:hidden;font-family:var(--serif);font-size:19px;line-height:1.7;color:var(--foam);padding:0;caret-color:var(--brass)}.notebook-textarea::placeholder{color:var(--brass-dim);font-style:italic;opacity:.6}.notebook-delete{align-self:center;background:transparent;border:none;color:var(--brass-dim);font-family:var(--sans);font-size:11px;letter-spacing:.22em;text-transform:uppercase;cursor:pointer;padding:8px 16px;margin-top:32px;opacity:.55;transition:all .3s}.notebook-delete:hover,.notebook-delete:active{opacity:1;color:var(--rust)}.shipslog{width:100%;max-width:540px;margin:0 auto;padding:80px 24px 64px}.shipslog-header{text-align:center;display:flex;flex-direction:column;gap:8px;margin-bottom:32px}.shipslog-header .title{font-family:var(--serif);font-style:italic;font-size:32px;color:var(--moon);line-height:1.1}.shipslog-header .sub{font-family:var(--serif);font-style:italic;font-size:14px;color:var(--brass);opacity:.75;max-width:30ch;margin:0 auto;line-height:1.4}.shipslog-entries{display:flex;flex-direction:column}.log-entry{padding:24px 0 28px;border-bottom:1px solid rgba(184,153,104,.12)}.log-entry:last-child{border-bottom:none}.log-entry-meta{display:flex;gap:8px;align-items:baseline;margin-bottom:14px;flex-wrap:wrap}.log-entry-meta .day{font-family:var(--sans);font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--brass)}.log-entry-meta .date{font-family:var(--serif);font-style:italic;font-size:13px;color:var(--brass-dim)}.log-entry-title{font-family:var(--serif);font-style:italic;font-size:24px;color:var(--moon);line-height:1.2;margin-bottom:16px}.log-entry-body{font-family:var(--serif);font-size:18px;line-height:1.7;color:var(--foam);white-space:pre-wrap}.distance-map-svg{width:100%;max-width:380px;margin:0 auto 16px;display:block;height:auto;aspect-ratio:400 / 480;border-radius:2px;background:radial-gradient(ellipse at 30% 20%,rgba(184,153,104,.06),transparent 60%),#0a162680;box-shadow:0 0 0 1px #b899682e,0 16px 36px -16px #0009}.distance-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}.distance-summary .summary-cell{background:#12223673;border:1px solid rgba(184,153,104,.18);border-radius:2px;padding:18px 16px;text-align:center}.distance-summary .num{font-family:var(--serif);font-style:italic;font-size:30px;color:var(--moon);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1}.distance-summary .lab{font-family:var(--sans);font-size:9px;letter-spacing:.22em;text-transform:uppercase;color:var(--brass-dim);margin-top:8px}.distance-entries{display:flex;flex-direction:column}.distance-row{padding:16px 0 18px;border-bottom:1px solid rgba(184,153,104,.1)}.distance-row:last-child{border-bottom:none}.distance-row .row-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px;gap:12px}.distance-row .when{font-family:var(--sans);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--brass);flex-shrink:0}.distance-row .dist{font-family:var(--serif);font-style:italic;font-size:17px;color:var(--moon);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.distance-row.together .when{color:var(--rust)}.distance-row.together .dist{color:var(--rust);font-style:italic}.distance-row .bar-track{height:4px;background:#b8996814;border-radius:1px;overflow:hidden;position:relative}.distance-row .bar-fill{height:100%;background:linear-gradient(90deg,var(--brass-dim),var(--brass) 60%,var(--rust))}.distance-row.together .bar-track{background:#a85a3a2e}.distance-row.together .bar-track:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(50% 200% at 50% 50%,rgba(168,90,58,.55),transparent 70%)}.distance-row .where{font-family:var(--serif);font-style:italic;font-size:14px;color:var(--foam);opacity:.8;margin-top:10px;line-height:1.4}.distance-row.together .where{opacity:1;color:var(--moon)}.stamp{margin-top:auto;padding-top:48px;text-align:center;font-family:var(--serif);font-style:italic;font-size:13px;color:var(--brass-dim);letter-spacing:.05em}button{font:inherit;color:inherit}button:focus-visible{outline:1px solid var(--brass);outline-offset:4px}::selection{background:var(--brass);color:var(--abyss)}
