:root{--bg:#f7f3ed;--card:#fffdfa;--card-2:#f1ebe4;--ink:#30282a;--muted:#736761;--accent:#b13c36;--line:#dfd6ce;--radius:22px;--serif:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;--plum:#3b222e}

*{box-sizing:border-box}
html{scroll-padding-top:24px}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-text-size-adjust:100%}
a{color:var(--accent);text-underline-offset:4px}
button,input,select,textarea{font:inherit}
button,a,input,textarea,summary,select{-webkit-tap-highlight-color:transparent}
a,button,summary{touch-action:manipulation}
button,a,summary{transition:background-color .16s,color .16s,border-color .16s}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:5px}
h1,h2,h3,p{overflow-wrap:break-word}
h1{font:500 clamp(2.6rem,5vw,4.8rem)/1.04 var(--serif);letter-spacing:-.055em;margin:0 0 24px}
h1 em,h2 em{font-weight:400;color:var(--accent)}
h2{font-size:1.15rem;letter-spacing:-.025em;line-height:1.35;margin:0 0 12px}
h3{font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);margin:28px 0 12px}
p{margin:0 0 18px}
p:last-child{margin-bottom:0}
.muted{color:var(--muted)}
.small{font-size:.86rem;line-height:1.65}
.center{text-align:center}
.eyebrow{font-size:.67rem;font-weight:650;letter-spacing:.16em;text-transform:uppercase;line-height:1.5}
.icon{flex:none;vertical-align:middle}
.shell{max-width:1440px;margin:auto;padding:0 48px}
.signed-in .shell{display:grid;grid-template-columns:208px minmax(0,1fr);gap:52px}
.sidebar{position:sticky;top:0;align-self:start;height:100svh;padding:44px 20px 30px 0;border-right:1px solid var(--line);display:flex;flex-direction:column}
.brand{display:inline-flex;align-items:center;font-size:25px;letter-spacing:-1.3px;color:var(--ink);font-weight:750;text-decoration:none;white-space:nowrap}
.brand-period{color:var(--accent)}
.brand-mark{position:relative;display:inline-block;width:31px;height:26px;margin-right:9px;flex:none}
.brand-mark:before,.brand-mark:after{content:"";position:absolute;width:18px;height:23px;border:2px solid var(--accent);border-radius:12px;transform:rotate(-30deg);left:2px;top:1px}
.brand-mark:after{transform:rotate(30deg);left:11px}
.sidebar-caption{color:var(--muted);font-size:11px;margin:12px 0 44px}
.primary-nav{display:grid;gap:6px}
.nav-link{display:flex;align-items:center;gap:13px;min-height:48px;padding:11px 13px;border-radius:12px;text-decoration:none;color:var(--muted);font-size:.86rem;font-weight:550}
.nav-link .icon{width:20px;height:20px}
.nav-link:hover,.more-nav summary:hover{background:var(--card-2);color:var(--ink)}
.nav-link.active{background:#ecded8;color:#793c39}
.more-nav{margin-top:26px}
.more-nav summary{display:flex;align-items:center;gap:13px;padding:12px 13px;cursor:pointer;color:var(--muted);border-radius:12px;font-size:.86rem;list-style:none}
.more-nav summary::-webkit-details-marker{display:none}
.more-nav[open] summary{color:var(--ink)}
.more-nav nav{padding-top:8px}
.sidebar-foot{margin-top:auto;padding-top:28px;display:grid;gap:7px}
.sidebar-foot .eyebrow{font-size:9px;color:var(--muted);letter-spacing:.1em}
.account-name{font:24px var(--serif);overflow-wrap:anywhere}
.sidebar-foot form{margin-top:14px}
.signed-in main{padding:36px 0 0;min-width:0}
.page-topline{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-bottom:26px;margin-bottom:32px;border-bottom:1px solid var(--line);color:var(--muted)}
.privacy-link{display:inline-flex;align-items:center;gap:8px;font-size:11px;text-decoration:none;color:var(--muted)}
.privacy-link .icon{width:15px;height:15px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:28px;margin:20px 0}
.card>:last-child{margin-bottom:0}
.page-footer{display:flex;justify-content:space-between;gap:16px;border-top:1px solid var(--line);margin-top:48px;padding:22px 0 28px;font-size:11px;color:var(--muted)}
.page-footer>span:first-child{font-weight:750;letter-spacing:-.5px;color:var(--ink)}
.skip-link{position:fixed;top:-100px;left:16px;z-index:20;background:var(--plum);color:white;padding:12px 20px;border-radius:10px}
.skip-link:focus{top:12px}
.mobile-only{display:none!important}

/* The main action stays visually dominant; personal state remains text, never a score. */
.dashboard-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:32px}
.dashboard-heading .eyebrow{display:block;color:var(--muted);margin-bottom:16px}
.dashboard-heading h1{margin:0}
.date-stamp{font-size:12px;color:var(--muted);padding-bottom:8px}
.evening-hero{position:relative;isolation:isolate;overflow:hidden;background:#eddbcf;border-radius:26px;min-height:310px;padding:36px 40px;display:flex;align-items:center}
.hero-copy{position:relative;z-index:2;width:62%;max-width:420px}
.hero-copy .eyebrow{color:#7d5146}
.hero-copy h2{font:500 clamp(2rem,3.3vw,3rem)/1.1 var(--serif);letter-spacing:-.045em;margin:17px 0}
.hero-copy p{font-size:13px;color:#75594f;max-width:260px}
.button,button{display:inline-flex;align-items:center;justify-content:center;gap:14px;min-height:50px;border:1px solid transparent;border-radius:12px;background:var(--accent);color:#fffdfa;text-decoration:none;font-size:14px;font-weight:600;padding:13px 20px;cursor:pointer}
.button:hover,button:hover{background:#902f2b}
.button .icon,button .icon{width:19px;height:19px}
button{width:100%}
.hero-copy .button{margin-top:8px}
.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(240px,1fr);gap:22px;margin-top:6px}
.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:24px}
.section-heading h2{margin:0}
.pill{display:inline-flex;align-items:center;gap:5px;background:var(--card-2);padding:5px 9px;border-radius:20px;font-size:10px;color:var(--muted);white-space:nowrap}
.pill .icon{width:12px;height:12px}
.stand p,.stand li{font-size:14px}
.stand ul{padding-left:19px}
.stand li+li{margin-top:12px}
.note-card{background:var(--plum);color:#fcf1e5;border-color:var(--plum);padding:30px}
.note-card .eyebrow{color:#e6a79b}
.note-card h2{font:31px/1.12 var(--serif);letter-spacing:-.03em;margin:20px 0}
.note-card p{font-size:13px;color:#ddc4c9}
.note-card .text-link{color:#f6b3a3}
.text-link{display:inline-flex;align-items:center;gap:12px;font-size:13px;font-weight:600;text-decoration:none;min-height:44px}
.text-link .icon{width:17px;height:17px}
.destination-card{display:flex;gap:13px;align-items:center;color:var(--ink);text-decoration:none;padding:21px;margin:14px 0}
.destination-card h2{font-size:14px;margin-bottom:3px}
.destination-card p{font-size:12px}
.destination-card>.icon:first-child{width:21px;color:var(--accent)}
.destination-card>.icon:last-child{width:17px;margin-left:auto}
.destination-card:hover{border-color:#bb9486;background:#f4eae0}

/* An abstract pair, rendered entirely in CSS: no image request or animation library. */
.together-art{position:relative;width:360px;height:330px;isolation:isolate;pointer-events:none;flex:none}
.art-petal{position:absolute;width:158px;height:246px;border-radius:100px;background:#c26757;top:43px;left:69px;transform:rotate(-29deg);box-shadow:inset 1px 0 0 #ffffff40}
.petal-two{left:144px;top:48px;transform:rotate(29deg);background:#793c45;mix-blend-mode:multiply}
.art-orbit{position:absolute;left:28px;top:10px;width:300px;height:300px;border:1px solid #8e51472e;border-radius:50%;transform:scaleX(.75) rotate(-25deg)}
.orbit-two{transform:scaleX(1.2) scaleY(.7) rotate(25deg)}
.art-star{position:absolute;left:289px;top:29px;font-size:38px;font-weight:300;color:#864136}
.art-dot{position:absolute;left:53px;bottom:25px;width:11px;height:11px;background:#ad6149;border-radius:50%}
.evening-hero>.together-art{position:absolute;right:-12px;top:0;z-index:0}

/* Authentication has the same visual identity as the private application. */
.guest .shell{max-width:1280px}
.guest-header{display:flex;align-items:center;justify-content:space-between;padding:34px 0}
.guest-header>.eyebrow{color:var(--muted)}
.login-layout{display:grid;grid-template-columns:1.1fr 1fr;min-height:620px;border:1px solid var(--line);border-radius:28px;overflow:hidden;background:var(--card)}
.login-story{position:relative;isolation:isolate;overflow:hidden;background:var(--plum);color:#fff2e5;padding:44px}
.login-story>.eyebrow{color:#edb0a3}
.login-story h1{font-size:clamp(2.7rem,4.8vw,4.5rem);margin:26px 0 20px;position:relative;z-index:2}
.login-story h1 em{color:#f6af98}
.login-story>p{position:relative;z-index:2;max-width:305px;font-size:13px;color:#dec4ca}
.login-story .together-art{position:absolute;bottom:15px;right:18px;width:360px;height:300px}
.login-story .art-petal{background:#f0ad93}
.login-story .petal-two{background:#e07871;mix-blend-mode:screen}
.login-story .art-orbit{border-color:#f4bca930}
.login-story .art-star{color:#f5b49f}
.login-story .art-dot{background:#edb0a3}
.story-bottom{position:absolute;bottom:26px;left:44px;right:36px;display:flex;align-items:center;gap:20px;color:#ebc0b8;font-size:10px;line-height:1.5;z-index:3}
.story-bottom>.icon{margin-left:auto;width:18px}
.story-bottom>span:first-child{font-size:11px;letter-spacing:.2em;border-right:1px solid #c78b8b50;padding-right:20px}
.login-panel{align-self:center;padding:50px clamp(32px,5vw,68px)}
.login-panel>.eyebrow{color:var(--accent)}
.login-panel h2{font:500 45px/1.08 var(--serif);letter-spacing:-.04em;margin:20px 0 18px}
.login-panel>.muted{font-size:13px}
.login-form{margin-top:34px}
.login-form button{margin-top:6px;justify-content:space-between}
.login-note{display:flex;align-items:center;gap:14px;margin-top:28px;padding-top:24px;border-top:1px solid var(--line);font-size:11px;line-height:1.6}
.login-note>.icon{width:18px;color:var(--muted)}
.guest main>h1,.guest main>form,.guest main>.card,.guest main>.errors,.guest main>p{max-width:620px;margin-left:auto;margin-right:auto}

/* Accessible forms shared by every screen. */
label{display:block;margin-bottom:21px;color:var(--ink);font-size:13px;font-weight:500}
input[type=text],input[type=password],textarea{display:block;width:100%;margin-top:8px;padding:13px 15px;background:var(--card);border:1px solid #c8bcb2;border-radius:10px;color:var(--ink);font-size:16px;line-height:1.45;min-height:49px}
textarea{resize:vertical}
input:focus,textarea:focus,select:focus{outline:2px solid var(--accent);outline-offset:2px}
input[type=checkbox],input[type=radio]{accent-color:var(--accent);width:19px;height:19px;flex:none;margin:0}
label.check{display:flex;gap:12px;align-items:center;min-height:46px;margin-bottom:5px;padding:9px 10px;border-radius:9px;font-size:14px;font-weight:400}
label.check:hover,label.check:has(input:checked){background:var(--card-2)}
label.inline{display:inline-flex;align-items:center;gap:6px;min-height:44px;margin:0 15px 0 0;font-size:13px;font-weight:400}
select,input[type=number],input[type=date]{display:block;margin-top:8px;min-height:46px;padding:10px 12px;background:var(--card);border:1px solid #c8bcb2;border-radius:9px;color:var(--ink);font-size:16px;max-width:100%;color-scheme:light}
select,input[type=number]{min-width:120px}
button.linkish{min-height:44px;width:auto;background:none;border:0;color:var(--muted);font-size:13px;font-weight:400;padding:6px 0;text-decoration:underline}
button.linkish:hover{color:var(--accent)}
button.linkish .icon{width:16px;height:16px}
.errors{background:#fbe6df;border:1px solid #d59c89;border-radius:14px;padding:16px 20px;margin:18px 0;color:#813427;font-size:14px}
.errors ul{margin:0;padding-left:18px}
.notice{background:#e9eee3;border:1px solid #bac6ac;border-radius:14px;padding:16px 20px;margin:18px 0;color:#40513a;font-size:14px}
.code{font-size:clamp(1.7rem,6vw,2.8rem);letter-spacing:.25em;font-weight:600;margin:18px 0;overflow-wrap:anywhere}
.code-input{letter-spacing:.25em;text-transform:uppercase}
.pause-card{border-color:#b88c7c;background:#f3e5dc}
.pause-card .big{font:28px var(--serif);margin:0 0 8px}
.pause-row{display:flex;flex-wrap:wrap;gap:8px 24px;margin-top:10px}
.pause-row form{margin:0}
.overview ul{margin:12px 0;padding-left:20px;font-size:14px}
.overview li+li{margin-top:8px}
.topic{padding:16px 0;border-bottom:1px solid var(--line)}
.topic:last-child{border-bottom:0}
.topic-name{display:block;font-size:14px;font-weight:550}
.topic-choice{display:flex;align-items:center;flex-wrap:wrap;gap:4px;margin-top:6px}
.topic-choice input[type=date]{margin:0;font-size:16px}
.dropped{font-style:italic}
.status{list-style:none;padding:0;font-size:14px}
.status li{padding:10px 0;border-bottom:1px solid var(--line)}
.status li:last-child{border:0}
.empty-state{text-align:center;padding:48px 25px}
.empty-state>.icon{width:32px;height:32px;color:var(--accent);margin-bottom:20px}
.empty-state h2{font:30px var(--serif)}
.archive-list{list-style:none;padding:0}
.archive-list li+li{border-top:1px solid var(--line)}
.archive-list a{display:flex;align-items:center;justify-content:space-between;gap:16px;text-decoration:none;color:var(--ink);padding:22px 26px;font-size:14px}
.archive-list a:hover{background:var(--card-2)}
.archive-list .icon{width:18px;color:var(--accent)}
.page-intro{max-width:560px;color:var(--muted);font-size:14px;margin-top:-7px;margin-bottom:28px}
fieldset.moods{border:0;padding:0;margin:0 0 32px}
legend{padding:0;font-size:18px;font-family:var(--serif);margin-bottom:16px}
.mood-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(70px,1fr));gap:8px}
.mood{position:relative;margin:0;text-align:center;padding:13px 5px;border:1px solid var(--line);border-radius:14px;background:var(--card);cursor:pointer}
.mood input{position:absolute;opacity:0;pointer-events:none}
.mood .emoji{display:block;font-size:1.8rem;line-height:1.4}
.mood-label{overflow-wrap:anywhere;font-size:11px;color:var(--muted)}
.mood:has(input:checked){border-color:var(--accent);background:#f5e1d9}
.mood:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}
.question{margin-bottom:28px}
.question .category{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.13em;color:var(--accent);margin-bottom:6px}
.question .prompt{display:block;font-family:var(--serif);font-size:22px;font-weight:400;line-height:1.35;margin-bottom:14px}
.waiting{text-align:center;padding:40px}
.emoji.big{font-size:3rem;margin:0 0 12px}
.entry-head{display:flex;align-items:center;gap:10px;padding-bottom:15px;margin-bottom:20px;border-bottom:1px solid var(--line)}
.entry-head .emoji{font-size:26px}
.entry-head .author{font-weight:600}
.answer{margin-bottom:24px}
.answer .prompt{color:var(--muted);font-size:13px;margin:0 0 8px}
.answer .text{margin:0;white-space:pre-wrap;font-family:var(--serif);font-size:21px;line-height:1.55}
code{overflow-wrap:anywhere}
.consent-topics summary{cursor:pointer;font-weight:600;padding:18px 0;min-height:48px}
.consent-topics{border-top:1px solid var(--line)}


@media(min-width:1400px){.shell{padding:0 64px}
.signed-in .shell{gap:64px}
.evening-hero>.together-art{right:22px}
}


@media(max-width:1050px){.shell{padding:0 26px}
.signed-in .shell{grid-template-columns:178px minmax(0,1fr);gap:30px}
.sidebar{padding-right:15px}
.brand{font-size:22px}
.dashboard-grid{grid-template-columns:1fr}
.dashboard-aside{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
.note-card{grid-row:span 2}
.hero-copy{width:70%}
.evening-hero>.together-art{right:-80px;opacity:.85}
.login-story{padding:34px}
.login-story .together-art{right:-40px;bottom:25px}
.story-bottom{left:34px}
.login-panel{padding:38px 30px}
.login-panel h2{font-size:39px}
}


@media(max-width:760px){.shell{padding:0 20px}
.signed-in .shell{display:block}
.sidebar{position:relative;height:auto;border:0;padding:24px 0 18px;display:block}
.sidebar-caption,.sidebar-foot{display:none}
.brand{font-size:24px}
.primary-nav{position:fixed;z-index:10;bottom:0;left:0;right:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:3px;background:var(--card);border-top:1px solid var(--line);padding:8px 8px calc(8px + env(safe-area-inset-bottom));box-shadow:0 -6px 30px #30282a06}
.primary-nav .nav-link{display:flex;flex-direction:column;justify-content:center;gap:4px;padding:6px 2px;min-height:51px;border-radius:10px;font-size:10px;font-weight:550}
.primary-nav .icon{width:21px;height:21px}
.more-nav{position:absolute;right:0;top:20px;margin:0;z-index:11}
.more-nav summary{justify-content:center;min-width:44px;min-height:44px;padding:10px;border:1px solid var(--line);background:var(--card)}
.more-nav summary>span{display:none}
.more-nav[open] nav{position:absolute;top:53px;right:0;background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:0 16px 32px #30282a18;min-width:200px;padding:10px}
.mobile-only{display:block!important}
.more-nav .mobile-only button{padding-left:13px}
.signed-in main{padding:0}
.page-topline{padding:14px 0;margin-bottom:28px;gap:10px}
.page-topline .eyebrow{font-size:9px}
.privacy-link{font-size:10px}
.dashboard-heading{margin-bottom:26px}
.dashboard-heading h1{font-size:52px}
.date-stamp{max-width:110px;font-size:11px;text-align:right;padding-bottom:5px}
.dashboard-heading .eyebrow{margin-bottom:12px;font-size:10px}
.evening-hero{padding:27px 25px;min-height:295px;border-radius:22px}
.hero-copy{width:75%}
.hero-copy h2{font-size:34px}
.hero-copy p{font-size:12px;max-width:215px}
.hero-copy .eyebrow{font-size:9px}
.evening-hero>.together-art{right:-156px;top:16px;opacity:.68}
.hero-copy .button{font-size:12px;padding:12px 15px;min-height:46px}
.dashboard-grid{gap:0;margin-top:2px}
.dashboard-aside{display:block}
.card{padding:24px;margin:18px 0;border-radius:18px}
.destination-card{padding:20px}
.stand p,.stand li{font-size:14px}
.page-footer{margin-top:34px;padding-bottom:calc(103px + env(safe-area-inset-bottom));font-size:10px}
.page-footer>span:last-child{max-width:170px;text-align:right}
h1{font-size:43px;margin-bottom:22px}
.guest-header{padding:24px 0}
.guest-header>.eyebrow{font-size:9px}
.login-layout{grid-template-columns:1fr;border-radius:22px}
.login-story{padding:30px 26px 34px;min-height:295px}
.login-story>.eyebrow{font-size:9px}
.login-story h1{font-size:43px;margin:19px 0 15px;max-width:300px}
.login-story>p{font-size:12px;max-width:205px}
.login-story .together-art{transform:scale(.64);transform-origin:right bottom;right:-85px;bottom:4px;opacity:.24}
.story-bottom{display:none}
.login-panel{padding:32px 26px 35px}
.login-panel h2{font-size:36px;margin:14px 0}
.login-panel h2 br{display:none}
.login-panel .eyebrow{font-size:9px}
.login-form{margin-top:25px}
.login-note{margin-top:24px}
.guest .page-footer{padding-bottom:25px}
.pause-row{gap:3px 20px}
.topic-choice{gap:2px}
.topic-choice input[type=date]{width:100%;margin-top:8px}
.question .prompt{font-size:21px}
.mood-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.mood-label{font-size:12px}
.code{letter-spacing:.18em}
.archive-list{padding:0}
.archive-list a{padding:20px;font-size:13px}
.page-intro{font-size:13px}
.guest main>h1{margin-top:25px}
}


@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}
}


@media(forced-colors:active){.brand-mark:before,.brand-mark:after{border-color:CanvasText}
.nav-link.active,.mood:has(input:checked){outline:2px solid Highlight}
.together-art{display:none}
}

.card button+button{margin-top:10px}


@media(max-width:760px){.dashboard-heading{display:block}
.dashboard-heading h1{font-size:50px}
.date-stamp{display:block;max-width:none;text-align:left;margin-top:14px;padding:0}
.hero-copy{width:100%}
.hero-copy h2{font-size:32px}
.hero-copy p{max-width:235px}
.evening-hero>.together-art{right:-221px;top:8px;opacity:.24}
.evening-hero{min-height:284px}
}
