.build-screen{left:0;top:0;width:510px;transform-origin:center;box-shadow:0 2px 0 #d8dbd9,0 18px 50px #173b631c}.assembly{will-change:transform}.screen-title,.screen-toolbar,.day-pills,.grid-heading,.block-label,.activity-card:not(.swap-card){opacity:var(--context-opacity,1)}.schedule-grid{background:transparent}.grid-cell{border-bottom-color:color-mix(in srgb,var(--rule) calc(var(--context-opacity,1)*100%),transparent)}.main-screen{background:color-mix(in srgb,var(--paper) calc(var(--context-opacity,1)*100%),transparent);border-color:color-mix(in srgb,var(--rule) calc(var(--context-opacity,1)*100%),transparent);box-shadow:none}.download-button{display:inline-flex;align-items:center;gap:35px;padding:15px 22px;background:var(--navy);color:white;border:none;border-radius:5px;font:500 14px var(--sans);margin-top:15px;cursor:not-allowed;opacity:.65}.download-note{display:block;font:12px var(--sans);color:var(--muted);letter-spacing:0;margin-top:12px}.beat-finish{pointer-events:auto}.object-space{overflow:visible}.sticky-scene{overflow:hidden}
.object-space{overflow:hidden}.schedule-grid{border-color:color-mix(in srgb,var(--rule) calc(var(--context-opacity,1)*100%),transparent)}
/* Editorial finish: warm paper, deep ink, dimensional but recognizably real UI. */
body{background:#f3f1ea}.header{border-bottom-color:#173b6320}.wordmark{font-size:33px}.narrative{top:28%}.beat-welcome h1{letter-spacing:-.065em;line-height:.94}.beat-intro{line-height:1.23}.beat-intro p:first-child{color:#627565}.main-screen{box-shadow:0 2px 0 rgba(95,115,130,calc(.16*var(--frame-shadow,1))),0 24px 65px rgba(31,47,57,calc(.12*var(--frame-shadow,1)));border-radius:14px}.screen-title{color:#173b63;background:linear-gradient(120deg,#fffefa,#f6f6f0)}.build-screen{border:1px solid #bdc8c3;border-top-color:#fff;box-shadow:0 1px 0 #b5c1b9,0 9px 20px #173b6309,0 25px 55px #173b6320;background:#fdfcf8}.build-title{color:#173b63;font-size:21px;padding:18px 22px;background:linear-gradient(100deg,#fdfdf8,#edf1ea);border-bottom-color:#bdc8c380}.build-screen th{color:#6d7975;background:#f6f7f1;font-size:10px;letter-spacing:.07em}.build-screen td{padding:16px 14px;font-size:12px}.build-screen td:first-child{font-weight:600;color:#263c46}.build-screen tr:nth-child(2) td{background:#173b6303}.root-lines path{stroke:#5b806d;stroke-width:1.8}.root-lines path:nth-child(even){stroke:#9aac98;stroke-width:1}.swap-active{background:linear-gradient(145deg,#fffefa,#e7edf0);border:1px solid #173b63;outline:1px solid #173b6330;box-shadow:0 2px 0 #bac6ca,0 12px 22px #173b6320;color:#173b63}.object-space{mask-image:linear-gradient(to bottom,transparent,#000 3%,#000 97%,transparent)}
.beat-finish{left:-4.8vw;top:-28vh;width:100vw;height:100svh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding-bottom:4vh;pointer-events:none}.download-button{pointer-events:auto;background:none;border:0;border-radius:0;padding:0;display:flex;flex-direction:column;gap:35px;align-items:center;color:#173b63;opacity:1;margin:0;cursor:not-allowed}.download-label{font:400 clamp(65px,8.8vw,140px)/.95 var(--serif);letter-spacing:-.055em}.download-label em{font-weight:400;color:#2f6b58}.download-arrow{height:68px;width:68px;border:1px solid #173b6340;border-radius:50%;display:grid;place-items:center;font:300 30px var(--sans);background:#faf9f480}.download-note{margin-top:20px;color:#788178;font-size:11px;letter-spacing:.02em}.beat-finish .download-button:disabled{opacity:1}.beat-point{letter-spacing:-.05em}
@media(max-width:750px){.narrative{top:15%}.beat-finish{left:-6vw;top:-15vh}.download-label{font-size:76px}.download-arrow{height:56px;width:56px}.wordmark{font-size:28px}.beat-welcome h1{font-size:66px}}
@media(prefers-reduced-motion:reduce){.object-space{mask-image:none}}

/* App palette, composed as five editorial scenes. */
:root{--forest:#2F6B58;--deep:#0F2A47}
body{background:var(--paper)}
.sticky-scene{background:color-mix(in srgb,var(--deep) calc(var(--night,0)*100%),var(--paper));color:color-mix(in srgb,var(--surface) calc(var(--night,0)*100%),var(--navy))}
.narrative{top:29%;width:32%}
.beat-welcome{width:116%}
.beat-welcome h1{font-weight:500;line-height:1.02;letter-spacing:-.065em}
.welcome-prefix{display:block;font:400 clamp(24px,2.4vw,38px)/1.3 var(--serif);letter-spacing:-.035em;margin-bottom:18px;color:var(--forest)}
.welcome-name{display:block;font-size:clamp(72px,8vw,128px)}

.beat-intro{font-size:clamp(27px,2.7vw,43px);line-height:1.25;letter-spacing:-.035em;max-width:460px}
.beat-intro p:first-child{color:var(--forest);margin-bottom:28px}
.beat-answer{font-size:clamp(64px,7.4vw,118px);letter-spacing:-.055em;top:9vh;width:125%}
.beat-point{font-size:clamp(60px,6.4vw,102px);line-height:1.04;top:2vh}
.screen-title,.build-title{background:var(--surface);color:var(--navy)}
.build-screen{background:var(--surface);border-color:var(--rule)}
.build-screen th{background:var(--paper);color:var(--muted)}
.build-screen td:first-child{color:var(--ink)}
.root-lines path{stroke:var(--forest)}
.root-lines path:nth-child(even){stroke:var(--forest)}
.swap-active{background:var(--surface);border-color:var(--forest);outline:1px solid #2f6b5850;box-shadow:0 3px 0 #2f6b5880,0 20px 50px #0003;color:var(--navy)}
.scroll-arrow{color:inherit}.progress-track{background:color-mix(in srgb,var(--surface) 20%,transparent)}
.progress-track span{background:var(--forest);height:2px}
.beat-finish{top:-29vh}
.download-button{color:var(--surface)}
.download-label{font-size:clamp(78px,10vw,160px);line-height:1.02;letter-spacing:-.05em}
.download-label em{color:var(--surface)}
.download-arrow{color:var(--surface);background:transparent;border-color:#fcfbf84d}
.download-note{color:#fcfbf8b3;letter-spacing:.04em}
@media(max-width:750px){
 .narrative{top:16%;width:88%}
 .beat-welcome{width:100%}
 .welcome-prefix{font-size:25px;margin-bottom:10px}
 .welcome-name{font-size:clamp(68px,16vw,105px)}
 .beat-intro{font-size:clamp(25px,5.5vw,34px);max-width:480px;line-height:1.2}
 .beat-intro p:first-child{margin-bottom:16px}
 .beat-answer{top:3vh;font-size:76px;width:100%}
 .beat-point{top:0;font-size:64px}
 .beat-finish{top:-16vh}
 .download-label{font-size:clamp(64px,16vw,100px)}
}

.welcome-name,.wordmark,.download-label{font-family:'Playfair Display',Georgia,serif}

.wordmark{display:inline-flex;align-items:center;gap:12px}.app-icon{display:block;width:36px;height:36px;border-radius:8px}.progress-track span{background:color-mix(in srgb,var(--surface) calc(var(--night,0)*100%),var(--forest))}
@media(max-width:750px){.wordmark{gap:9px}.app-icon{width:30px;height:30px}}
