/* A quiet, tactile layer over the approved brand composition. */
:root{--touch-ease:cubic-bezier(.23,1,.32,1)}
button,a,input,summary{-webkit-tap-highlight-color:transparent}
button,.nav-cta,.button,.intro-link,.text-link{touch-action:manipulation}
button,.nav-cta,.button{transition:scale 180ms var(--touch-ease),background-color 220ms,color 220ms,box-shadow 220ms,opacity 220ms}
button:active:not(:disabled),.nav-cta:active,.button:active{scale:.97}
a span[aria-hidden],button span[aria-hidden]{display:inline-block;transition:transform 240ms var(--touch-ease)}
:where(button,a,input,summary):focus-visible{outline:3px solid #f7c99b;outline-offset:5px}
.steps,.flow-timeline{position:relative}
.selection-stroke{position:absolute;left:0;top:0;height:3px;background:#f7c99b;border-radius:3px;transform-origin:left center;pointer-events:none;z-index:2}
.workflow .steps button[aria-pressed=true]{border-bottom-color:#faf7ef30}
.flow-timeline button[aria-pressed=true]{border-top-color:#faf7ef30}
.workflow .task-content>*{animation:none}
.workflow button.file{display:block;width:100%;text-align:left;color:inherit;font:inherit;cursor:pointer;position:relative;transition:transform 260ms var(--touch-ease),border-color 200ms,box-shadow 260ms}
.file-preview{transition:background-color 220ms}
.file:after{content:'↗';position:absolute;right:11px;top:11px;border-radius:50%;width:23px;height:23px;display:grid;place-items:center;background:#315bd6;color:#faf7ef;font-size:14px;opacity:0;transform:translate(-4px,4px);transition:opacity 200ms,transform 240ms var(--touch-ease)}
.file:focus-visible:after{opacity:1;transform:none}
.waitlist-entry{transition:box-shadow 200ms,border-color 200ms}
.waitlist-entry:focus-within{box-shadow:0 0 0 4px #faf7ef20}
.waitlist-form[data-state=saving] button[type=submit]:after{content:'';display:inline-block;width:12px;height:12px;margin-left:10px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:slat-saving .65s linear infinite}

.waitlist-receipt{display:grid;grid-template-columns:48px 1fr;gap:12px 18px;align-items:center;padding:12px 0 6px}
.waitlist-receipt[hidden]{display:none}
.waitlist-receipt svg{width:48px;height:48px;overflow:visible;grid-row:1/3}
.waitlist-receipt circle{fill:#f7c99b;stroke:none}
.waitlist-receipt path{fill:none;stroke:#192849;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:40;stroke-dashoffset:0;animation:slat-check 450ms var(--touch-ease) both}
.waitlist-receipt strong{font-family:Slat,sans-serif;font-size:27px;font-weight:normal}
.waitlist-receipt button{justify-self:start;border:0;border-bottom:1px solid #faf7ef60;background:none;padding:3px 0;color:#faf7ef;font:inherit;font-size:13px}
.material-dialog{border:0;border-radius:24px;padding:38px;background:#faf7ef;color:#192849;width:min(680px,calc(100% - 32px));max-height:85svh;overflow:auto;box-shadow:0 35px 110px #101c4260}
.material-dialog::backdrop{background:#14234fb8;backdrop-filter:blur(12px)}
.material-dialog h2{font-family:Slat,sans-serif;font-size:38px;line-height:1.1;letter-spacing:-.04em;margin:0 45px 28px 0}
.material-close{position:absolute;right:20px;top:20px;border:1px solid #19284930;background:transparent;color:#192849;border-radius:50%;width:40px;height:40px;font-size:28px;line-height:1;cursor:pointer}
.material-body{background:#eeeae1;border-radius:12px;min-height:230px;display:grid;place-items:center;overflow:hidden}
.material-body>img{width:100%;max-height:52svh;object-fit:contain;padding:26px}
.material-brief{padding:32px;width:100%}.material-brief h3{font-family:Slat,sans-serif;font-size:48px;line-height:1;margin:0 0 20px}.material-brief p{font-size:18px;line-height:1.6}
.material-caption{font-size:12px;line-height:1.5;color:#596279;margin:18px 0 0}
.questions summary:after,.questions details[open] summary:after{content:'+';transition:transform 240ms var(--touch-ease);transform-origin:center}
.questions details[open] summary:after{transform:rotate(45deg)}
.questions summary{transition:color 180ms}
@keyframes slat-saving{to{transform:rotate(360deg)}}
@keyframes slat-check{from{stroke-dashoffset:40}to{stroke-dashoffset:0}}
@media(hover:hover) and (pointer:fine){
button:hover:not(:disabled),.nav-cta:hover,.button:hover{scale:1.025}
button:active:not(:disabled),.nav-cta:active,.button:active{scale:.97}
a:hover span[aria-hidden],button:hover>span[aria-hidden]{transform:translate(3px,-2px)}
.workflow .steps button:hover,.flow-timeline button:hover{background:#faf7ef0b}
.workflow button.file:hover{transform:translateY(-6px) rotate(-1deg);border-color:#f7c99b;box-shadow:0 12px 20px #10182d40;scale:1}
.file:hover:after{opacity:1;transform:none}
.questions summary:hover{color:#315bd6}
.material-close:hover{background:#192849;color:#faf7ef}
}
@media(max-width:760px){.material-dialog{padding:27px 22px;border-radius:18px}.material-dialog h2{font-size:30px}.material-brief{padding:23px}.material-brief h3{font-size:38px}.material-brief p{font-size:16px}.file:after{opacity:1}}
body.motion-paused *,body[data-input=keyboard] *{transition-duration:0s!important}
body.motion-paused .waitlist-receipt path,body.motion-paused .waitlist-form[data-state=saving] button:after{animation:none}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition-duration:0s!important;animation-duration:0s!important}.material-dialog::backdrop{backdrop-filter:none}}
