.spiral{display:block}.spiral-draw path{stroke-dasharray:1;stroke-dashoffset:1;animation:spiralDraw 1.6s var(--ease) .2s forwards}.spiral-draw circle{opacity:0;animation:fadeIn .5s var(--ease) 1.5s forwards}@keyframes spiralDraw{to{stroke-dashoffset:0}}@keyframes fadeIn{to{opacity:1}}.hero{position:relative;overflow:hidden;min-height:calc(100vh - 64px);display:flex;align-items:center;padding:84px 0 96px}.hero-halo{position:absolute;top:-240px;left:50%;transform:translate(-50%);width:920px;height:720px;pointer-events:none;background:radial-gradient(closest-side,rgba(196,168,106,.13),rgba(196,168,106,.05) 45%,transparent 75%)}.hero-inner{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;width:100%}h1{margin-top:20px;font-size:clamp(42px,6vw,68px);line-height:1.05;letter-spacing:-.01em}.rise{animation:rise .9s var(--ease) both}.rise-2{animation-delay:.1s}.rise-3{animation-delay:.25s}@keyframes rise{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}.page-card{width:min(560px,100%);margin-top:46px;text-align:left;background:var(--card);border:1px solid var(--border-strong);border-radius:18px;padding:26px 28px 24px;box-shadow:0 30px 80px #00000080,0 0 90px #c4a86a0f}.page-date{font-size:11px;text-transform:uppercase;letter-spacing:.18em;color:var(--text-4);margin-bottom:12px}.typed{font-size:16.5px;line-height:1.7;color:var(--text-2);min-height:5.1em;cursor:default}.caret{display:inline-block;width:1px;height:1.05em;background:var(--gold);margin-left:2px;vertical-align:text-bottom;animation:blink 1.1s steps(1) infinite}.caret-done{animation:none;opacity:0;transition:opacity 1.2s .8s}@keyframes blink{50%{opacity:0}}.app-moods{display:flex;align-items:center;gap:8px;margin-top:16px;opacity:0;transition:opacity .7s var(--ease)}.app-moods.shown{opacity:1}.mood{width:14px;height:14px;border-radius:50%;opacity:.55}.m1{background:#3b2850}.m2{background:#2c5267}.m3{background:#38774b}.m4{background:#b68039}.m5{background:#ccad30}.mood.selected{opacity:1;box-shadow:0 0 0 2px var(--bg),0 0 0 3.5px #c4a86a80,0 0 14px #b6803959}.app-moods.shown .selected{animation:moodPop .5s var(--ease)}@keyframes moodPop{0%{transform:scale(.4)}}.mood-label{margin-left:4px;font-size:11px;color:var(--text-3)}.hero-after{display:flex;flex-direction:column;align-items:center;gap:16px;margin-top:42px;opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .7s var(--ease),transform .7s var(--ease),visibility 0s .7s}.hero-after.shown{opacity:1;visibility:visible;transform:none;transition:opacity .7s var(--ease),transform .7s var(--ease)}.hero-note{font-size:13px;letter-spacing:.04em;color:var(--text-4)}.scroll-hint{position:absolute;bottom:22px;left:50%;color:var(--text-4);animation:bob 2.4s ease-in-out infinite}@keyframes bob{0%,to{transform:translate(-50%)}50%{transform:translate(-50%,6px)}}.passage{height:280vh;position:relative}.passage-sticky{position:sticky;top:0;height:100vh;height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden}.passage-date{display:flex;flex-direction:column;align-items:center;gap:12px;font:400 clamp(34px,6vw,64px)/1.1 var(--serif);color:var(--text-2);animation:dateBloom .55s var(--ease)}@keyframes dateBloom{0%{opacity:0;filter:blur(6px);transform:translateY(10px)}to{opacity:1;filter:none;transform:none}}.passage-year{font:500 12px var(--sans);letter-spacing:.3em;color:var(--gold)}.passage-line{position:absolute;bottom:18vh;font:italic 20px var(--serif);color:var(--text-3);opacity:0;transform:translateY(8px);transition:opacity .7s var(--ease),transform .7s var(--ease)}.passage-line.shown{opacity:1;transform:none}.passage-still{padding:90px 0;border-top:1px solid var(--hairline);text-align:center}.passage-still .passage-line{position:static;opacity:1;transform:none}.return-title{font-size:clamp(40px,6vw,64px)}.memory-stack{position:relative;max-width:620px;margin:64px auto 0;padding-top:30px}.memory-card{background:var(--card);border:1px solid var(--border-strong);border-radius:18px;padding:24px 26px;text-align:left}.memory-card .memory-date{font:italic 15px var(--serif);color:var(--gold);margin-bottom:10px}.memory-card p:last-child{color:var(--text-2);font-size:15.5px;line-height:1.65}.memory-card.back{position:absolute;top:0;left:0;right:0;transform:rotate(-2.4deg) translate(-6px,-12px);opacity:.45}.memory-card.front{position:relative;transform:rotate(.6deg);box-shadow:0 24px 60px #00000073}.chart-card{margin-top:56px;background:var(--card);border:1px solid var(--hairline);border-radius:20px;padding:28px 28px 22px}.chart-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.chart-title{font:italic 18px var(--serif)}.chart-range{font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:var(--text-4)}.mood-chart{width:100%;height:auto;display:block}.chart-line{stroke-dasharray:1;stroke-dashoffset:1}.reveal.is-visible .chart-line{stroke-dashoffset:0;transition:stroke-dashoffset 1.8s var(--ease) .3s}.chart-area{opacity:0}.reveal.is-visible .chart-area{opacity:1;transition:opacity 1s var(--ease) 1.2s}.chart-dot{opacity:0}.reveal.is-visible .chart-dot{opacity:1;transition:opacity .5s var(--ease) 2s}.mood-legend{display:flex;flex-wrap:wrap;gap:20px;margin-top:18px;padding-top:16px;border-top:1px solid #181614}.mood-key{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;color:var(--text-3)}.mood-key i{width:10px;height:10px;border-radius:3px}.device-duo{display:flex;align-items:center;justify-content:center}.phone{width:min(270px,76vw);border-radius:46px;border:1px solid var(--border-strong);background:var(--card);padding:10px;box-shadow:0 30px 80px #0000008c,0 0 120px #c4a86a12}.phone-screen{display:flex;flex-direction:column;min-height:520px;border-radius:38px;border:1px solid var(--hairline);background:var(--bg);padding:26px 20px 22px}.app-top{display:flex;align-items:center;justify-content:space-between}.app-streak{font-size:11px;letter-spacing:.08em;color:var(--gold);background:#c4a86a14;border:1px solid rgba(196,168,106,.25);border-radius:999px;padding:4px 10px}.app-date{margin-top:24px;font-size:11px;text-transform:uppercase;letter-spacing:.18em;color:var(--text-4)}.app-greet{margin-top:8px;font:400 25px/1.2 var(--serif);color:var(--text-1)}.app-entry{margin-top:16px;background:var(--card);border:1px solid var(--hairline);border-radius:16px;padding:16px;font-size:13.5px;line-height:1.6;color:var(--text-2)}.app-entry .app-moods{margin-top:14px}.app-entry .mood{width:12px;height:12px}.app-memory{margin-top:auto;border-top:1px solid var(--hairline);padding-top:14px}.app-memory-tag{font-size:10px;text-transform:uppercase;letter-spacing:.16em;color:var(--gold)}.app-memory p{margin-top:6px;font:italic 14px/1.5 var(--serif);color:var(--text-4)}.widget-demo{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:14px;margin-left:-56px;margin-top:150px}.widget{display:flex;flex-direction:column;width:180px;aspect-ratio:1;border-radius:30px;border:1px solid var(--border-strong);background:var(--raised);padding:20px;box-shadow:0 24px 70px #0009,0 0 90px #c4a86a0d}.widget-count{margin-top:8px;font:400 52px/1 var(--serif);color:var(--gold)}.widget-label{margin-top:4px;font-size:12.5px;color:var(--text-3)}.widget-days{display:flex;gap:6px;margin-top:auto}.widget-days i{width:11px;height:11px;border-radius:50%}.widget-days .today{background:none;border:1.5px solid var(--gold)}.caption{font-size:13px;color:var(--text-4)}.depth{position:fixed;right:26px;top:15vh;height:70vh;width:1px;background:var(--hairline);z-index:90}.depth i{position:absolute;right:0;width:7px;height:1px;background:var(--border-strong)}.depth-fill{position:absolute;top:0;left:0;width:1px;height:0;background:linear-gradient(var(--gold-dim),var(--gold))}@media(max-width:1100px){.depth{display:none}}@media(max-width:900px){.hero{min-height:0;padding:64px 0 88px}.passage{height:220vh}.device-duo{flex-direction:column}.widget-demo{margin-left:0;margin-top:-20px;transform:translate(40px)}}@media(max-width:600px){.typed{min-height:8.5em}.widget-demo{transform:translate(20px)}}@media(prefers-reduced-motion:reduce){.rise,.scroll-hint{animation:none}.spiral-draw path{animation:none;stroke-dashoffset:0}.spiral-draw circle{animation:none;opacity:1}.caret{display:none}.app-moods{transition:none}.app-moods.shown .selected{animation:none}.hero-after{transition:none}.passage-date{animation:none}.passage-line{transition:none}.chart-line{stroke-dashoffset:0;transition:none}.chart-area,.chart-dot{opacity:1;transition:none}}.motes{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.8}.hero-halo{animation:haloBreathe 9s ease-in-out infinite}@keyframes haloBreathe{0%,to{opacity:1;transform:translate(-50%) scale(1)}50%{opacity:.82;transform:translate(-50%) scale(1.04)}}.page-wrap{width:min(560px,100%)}.page-wrap .page-card{width:100%;margin-top:0;will-change:transform}.page-wrap{margin-top:46px}.typed[role=button]{cursor:pointer}.typed{transition:color .9s var(--ease)}.typed.done{color:var(--text-1)}.ghost{position:absolute;font:italic 15px/1.5 var(--serif);color:var(--text-4);opacity:0;animation:ghostIn .9s var(--ease) .15s forwards;max-width:220px}.ghost.g1{top:24vh;left:10%;transform:rotate(-1.5deg)}.ghost.g2{bottom:28vh;right:8%;transform:rotate(1deg)}@keyframes ghostIn{to{opacity:.38}}.reveal.is-visible .memory-card.front{animation:settle .9s var(--ease) .1s backwards}@keyframes settle{0%{transform:rotate(2.6deg) translateY(10px)}to{transform:rotate(.6deg) translateY(0)}}.memory-stack:before{content:"";position:absolute;top:-80px;right:-120px;bottom:-80px;left:-120px;z-index:-1;pointer-events:none;background:radial-gradient(closest-side,rgba(196,168,106,.07),transparent 75%)}.chart-body{position:relative}.mood-chart{touch-action:pan-y}.chart-tip{position:absolute;transform:translate(-50%,-135%);display:inline-flex;align-items:center;gap:7px;background:var(--raised);border:1px solid var(--border-strong);border-radius:8px;padding:5px 10px;font-size:12px;color:var(--text-2);white-space:nowrap;pointer-events:none}.chart-tip i{width:8px;height:8px;border-radius:50%}.scroll-hint{transition:opacity .5s var(--ease)}.scroll-hint.hidden{opacity:0}@media(max-width:700px){.ghost{display:none}}@media(prefers-reduced-motion:reduce){.hero-halo{animation:none}.typed{transition:none}.ghost{animation:none;opacity:.38}.reveal.is-visible .memory-card.front{animation:none}.scroll-hint{transition:none}}
