:root{--ink:#111;--paper:#fff;--canvas:#f5f4ed;--brand:#ddff00;--muted:#6f6f6f}*{box-sizing:border-box}body{margin:0;background:var(--canvas);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text",Inter,system-ui,sans-serif}.shell{max-width:720px;margin:0 auto;min-height:100dvh;padding:env(safe-area-inset-top) 16px calc(30px + env(safe-area-inset-bottom))}.top{height:66px;display:flex;align-items:center;justify-content:space-between}.brand{font-weight:850;font-size:1.18rem}.brand b{display:inline-grid;place-items:center;width:31px;height:31px;border-radius:50%;background:#111;color:var(--brand);font-size:.72rem;margin-right:8px}.card{background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:18px;padding:18px;margin:12px 0;box-shadow:0 1px 2px rgba(0,0,0,.03)}h1{font-size:clamp(2.25rem,10vw,4rem);line-height:.96;letter-spacing:-.055em;margin:26px 0 8px}h2{font-size:1.35rem;margin:0 0 10px}p{line-height:1.45;color:#454545}.button,button{font:inherit}.button{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 16px;border-radius:14px;border:0;background:#111;color:#fff;font-weight:800;text-decoration:none;cursor:pointer}.button.secondary{background:#fff;color:#111;border:1px solid #ccc}.button.brand{background:var(--brand);color:#111}.row{display:flex;gap:10px;flex-wrap:wrap}.field{display:grid;gap:7px;margin:14px 0}.field label{font-weight:780}.field input,.field select,.field textarea{width:100%;min-height:48px;padding:10px 12px;border:1px solid #ccc;border-radius:12px;background:#fff;font:inherit}.choice-grid{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));gap:10px}.choice{padding:16px;border-radius:15px;border:1px solid #d7d7d7;background:#fff;text-align:left;font-weight:800;cursor:pointer}.choice.active{outline:3px solid var(--brand);border-color:#111}.reel-card{display:grid;gap:12px}.muted{color:var(--muted);font-size:.9rem}.gate{border:1px solid #111;background:#111;color:#fff}.gate p{color:#ddd}.status{padding:10px 12px;border-radius:10px;background:#eef7e9}.editor{display:grid;gap:14px}.video-wrap{position:relative;background:#111;border-radius:16px;overflow:hidden;aspect-ratio:16/9}.video-wrap video{width:100%;height:100%;object-fit:contain}.portrait-mask{position:absolute;top:4%;bottom:4%;left:50%;transform:translateX(-50%);aspect-ratio:9/16;border:3px solid var(--brand);box-shadow:0 0 0 100vmax rgba(0,0,0,.46);pointer-events:none}.range{width:100%}.thumb-strip{height:44px;border-radius:10px;background:linear-gradient(90deg,#222,#555,#222)}.toolbar{display:flex;gap:8px;flex-wrap:wrap}.small{font-size:.84rem}.navlink{color:#111;font-weight:750}.hidden{display:none!important}@media(min-width:620px){.choice-grid{grid-template-columns:repeat(3,1fr)}}.exercise-help{margin-top:-2px}.exercise-button-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}.exercise-button{min-height:86px;padding:14px;border:1px solid #cfcfcf;border-radius:14px;background:#fff;color:#111;text-align:left;display:flex;flex-direction:column;justify-content:space-between;gap:10px;cursor:pointer}.exercise-button strong{font-size:1rem}.exercise-button span{display:flex;align-items:center;gap:7px;color:#555;font-size:.82rem;font-weight:750}.exercise-button-wide{grid-column:1/-1}.plus-chip{display:inline-flex;align-items:center;min-height:20px;padding:2px 7px;border-radius:999px;background:#111;color:var(--brand);font-size:.64rem;letter-spacing:.06em}.exercise-button:hover,.exercise-button:focus-visible{border-color:#111;outline:2px solid var(--brand);outline-offset:1px}@media(max-width:420px){.exercise-button-grid{grid-template-columns:1fr}.exercise-button-wide{grid-column:auto}}

/* Edit ThoughtReel details */
/* Contextual pages share the same 58px signed-in header height as the ThoughtReel. */
.edit-shell{padding-top:0}
.reel-context{margin-top:8px}
.section-heading-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.section-heading-row h2{margin-bottom:5px}
.section-heading-row p{margin:0}
.button.compact{min-height:40px;padding:0 12px;border-radius:12px;font-size:.86rem;white-space:nowrap}
.button.compact .plus-chip{margin-left:5px}
.affirmation-list{display:grid;gap:8px;margin-top:16px}
.affirmation-row{padding:11px 12px;border:1px solid #ddd;border-radius:12px;background:#fafafa;line-height:1.35}
.clip-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px}
.clip-item{min-width:0}
.clip-preview{position:relative;width:100%;aspect-ratio:9/16;border-radius:15px;overflow:hidden;background:#111;border:1px solid rgba(0,0,0,.08)}
.clip-preview video{display:block;width:100%;height:100%;object-fit:cover;background:#111}
.clip-preview .clip-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;z-index:1}.clip-preview .clip-play{z-index:2}
.clip-preview-state{position:absolute;inset:0;display:grid;place-items:center;padding:12px;text-align:center;color:#fff;background:rgba(0,0,0,.34);font-size:.78rem;font-weight:750;pointer-events:none}
.clip-item-copy{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:8px 2px 6px}
.clip-item-copy strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.9rem}
.clip-item-actions{display:flex;gap:7px;margin-top:6px}
.clip-item-actions .button{flex:1;min-width:0;padding-left:8px;padding-right:8px}
.button.danger{color:#8a1f17;border-color:#d8b8b4}
.video-help{margin-bottom:0}
@media(min-width:620px){.clip-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:420px){.section-heading-row{align-items:flex-start}.thoughtrep-copy-card .section-heading-row{display:grid}.thoughtrep-copy-card .section-heading-row .button{justify-self:start}}
.clip-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:48px;height:48px;border:0;border-radius:50%;background:rgba(0,0,0,.72);color:#fff;font-size:1.05rem;display:grid;place-items:center;cursor:pointer;box-shadow:0 2px 10px rgba(0,0,0,.25)}
.clip-play span{transform:translateX(1px)}
.clip-play[hidden]{display:none}

/* Choose-the-moment editor: custom inline playback + touch-first portrait framing. */
.trim-preview{position:relative;background:#111;border-radius:16px;overflow:hidden;aspect-ratio:16/9;display:grid;place-items:center}.trim-preview video{width:100%;height:100%;object-fit:contain;background:#111}.editor-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:58px;height:58px;border:1px solid rgba(255,255,255,.72);border-radius:50%;background:rgba(0,0,0,.36);color:#fff;display:grid;place-items:center;font-size:1.25rem;font-weight:900;padding:0;box-shadow:0 4px 18px rgba(0,0,0,.2);backdrop-filter:blur(1px);-webkit-backdrop-filter:blur(1px);cursor:pointer;z-index:2}.editor-play span{display:block;line-height:1;transform:translateX(2px)}.editor-play.is-playing span{font-size:.95rem;letter-spacing:-.12em;transform:none}.editor-play:focus-visible{outline:3px solid var(--brand);outline-offset:3px}.framing-stage{position:relative;width:min(74vw,300px);aspect-ratio:9/16;margin:2px auto 4px;background:#111;border-radius:18px;overflow:hidden;touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab;box-shadow:0 8px 28px rgba(0,0,0,.13)}.framing-stage.is-dragging{cursor:grabbing}.framing-stage video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%;pointer-events:none;-webkit-user-select:none;user-select:none}.framing-guide{position:absolute;inset:0;border:3px solid var(--brand);border-radius:18px;pointer-events:none;box-shadow:inset 0 0 0 1px rgba(0,0,0,.18)}.framing-guide::before,.framing-guide::after{content:"";position:absolute;background:rgba(255,255,255,.34);pointer-events:none}.framing-guide::before{left:33.333%;right:33.333%;top:0;bottom:0;border-left:1px solid rgba(255,255,255,.34);border-right:1px solid rgba(255,255,255,.34);background:transparent}.framing-guide::after{top:33.333%;bottom:33.333%;left:0;right:0;border-top:1px solid rgba(255,255,255,.34);border-bottom:1px solid rgba(255,255,255,.34);background:transparent}.framing-hint{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);white-space:nowrap;padding:6px 10px;border-radius:999px;background:rgba(0,0,0,.62);color:#fff;font-size:.76rem;font-weight:800;letter-spacing:.01em;pointer-events:none;transition:opacity .15s ease}.framing-stage.is-dragging .framing-hint{opacity:.2}.framing-time-field{margin-top:8px}.framing-actions{align-items:center}.range{accent-color:#111}@media(max-width:420px){.framing-stage{width:min(78vw,286px)}}

/* Plus gates are modal on Edit Reel so the upgrade message appears at the point of intent. */
body.modal-open,body.moment-editor-open{overflow:hidden}
.paywall-overlay{position:fixed;inset:0;z-index:1200;display:grid;place-items:center;padding:calc(20px + env(safe-area-inset-top)) 18px calc(20px + env(safe-area-inset-bottom));background:rgba(17,17,17,.56);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px)}
.paywall-dialog{position:relative;width:min(100%,440px);max-height:min(76dvh,640px);overflow:auto;background:var(--paper);border:1px solid rgba(0,0,0,.1);border-radius:22px;padding:24px 20px 20px;box-shadow:0 22px 70px rgba(0,0,0,.28)}
.paywall-dialog h2{font-size:1.55rem;line-height:1.08;margin:12px 42px 8px 0;letter-spacing:-.025em}.paywall-dialog p{margin:0 0 18px}.paywall-chip{width:max-content}.paywall-close{position:absolute;right:12px;top:12px;width:38px;height:38px;border:0;border-radius:50%;background:#f1f1ed;color:#111;font-size:1.6rem;line-height:1;display:grid;place-items:center;cursor:pointer}.paywall-actions{display:grid;gap:9px}.paywall-actions .button{width:100%}.paywall-status{min-height:1.4em;margin:12px 2px 0!important;color:var(--muted)!important;font-size:.88rem}

/* Choose the moment now lives in its own full-screen editing surface. */
.moment-panel{position:fixed;inset:0;z-index:1000;background:var(--canvas);display:flex;flex-direction:column;min-height:100dvh;animation:moment-panel-in .24s cubic-bezier(.2,.8,.2,1)}
@keyframes moment-panel-in{from{transform:translateX(100%)}to{transform:translateX(0)}}
.moment-panel-header{flex:0 0 auto;min-height:calc(58px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 14px 0;display:grid;grid-template-columns:minmax(88px,1fr) auto minmax(88px,1fr);align-items:center;gap:10px;background:rgba(245,244,237,.96);border-bottom:1px solid rgba(0,0,0,.08);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.moment-panel-header>strong{text-align:center;font-size:.98rem;white-space:nowrap}.moment-back{justify-self:start;min-height:42px;padding:0 8px;border:0;background:transparent;color:#111;font-weight:800;cursor:pointer}.moment-header-spacer{display:block}.moment-panel-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.moment-panel-content{width:min(100%,720px);margin:0 auto;padding:18px 16px calc(36px + env(safe-area-inset-bottom))}.moment-replacing{margin:0}.moment-process{width:100%;margin-top:8px}.framing-section{margin-top:10px;padding-top:4px}.framing-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;background:#111;pointer-events:none}.framing-stage video{display:none!important}
@media(max-width:420px){.moment-panel-header{grid-template-columns:minmax(78px,1fr) auto minmax(78px,1fr);gap:4px}.moment-panel-header>strong{font-size:.92rem}.moment-back{font-size:.88rem;padding-left:2px}.moment-panel-content{padding-left:14px;padding-right:14px}}

/* Moment editor v2: full-screen mobile workflow with trim time feedback and framing timeline. */
.moment-panel-header{display:flex;justify-content:center;min-height:calc(54px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 16px 0}
.moment-panel-header>strong{font-size:1rem;text-align:center}
.moment-panel-scroll{padding-bottom:0}
.moment-panel-content{padding-bottom:24px}
.moment-step{background:var(--paper);border:1px solid rgba(0,0,0,.08);border-radius:18px;padding:16px;margin:0 0 16px}
.moment-step h2{margin:0 0 6px;font-size:1.2rem}.moment-step>p{margin:0 0 14px}
.trim-preview{position:relative;aspect-ratio:16/9;background:#111;border-radius:14px;overflow:hidden}
.editor-source-video{position:absolute;inset:0;width:100%;height:100%;opacity:.001;pointer-events:none;object-fit:contain}
.trim-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;background:#111}
.trim-timecode{position:absolute;right:10px;bottom:10px;z-index:2;padding:5px 8px;border-radius:999px;background:rgba(0,0,0,.66);color:#fff;font-variant-numeric:tabular-nums;font-size:.78rem;font-weight:800;letter-spacing:.01em;pointer-events:none}
.trim-control-grid{display:grid;gap:10px;margin-top:14px}.trim-control-grid .field{margin:0}.trim-control-grid label{display:flex;justify-content:space-between;gap:12px;align-items:baseline}.trim-control-grid label strong{font-variant-numeric:tabular-nums}
.framing-section{margin-top:0;padding-top:16px}.framing-stage{margin-top:10px}
.framing-timeline-wrap{margin-top:16px}.framing-timeline-heading,.framing-timeline-labels{display:flex;justify-content:space-between;align-items:center;gap:12px}.framing-timeline-heading{font-size:.9rem;font-weight:800}.framing-timeline-heading strong,.framing-timeline-labels{font-variant-numeric:tabular-nums}.framing-timeline-labels{margin-top:4px;color:var(--muted);font-size:.73rem;font-weight:700}
.framing-timeline{position:relative;height:46px;margin-top:7px;display:flex;align-items:center}.framing-range{position:relative;z-index:2;width:100%;margin:0;background:transparent;transform:translateY(5px)}.framing-marker-layer{position:absolute;left:8px;right:8px;top:0;bottom:0;z-index:3;pointer-events:none}.framing-point-marker{position:absolute;top:0;transform:translateX(-50%);width:24px;height:24px;border:2px solid var(--paper);border-radius:50%;background:#111;color:var(--brand);font-size:.68rem;font-weight:900;display:grid;place-items:center;padding:0;box-shadow:0 2px 7px rgba(0,0,0,.24);pointer-events:auto;cursor:pointer}.framing-point-marker::after{content:"";position:absolute;left:50%;top:22px;width:2px;height:12px;transform:translateX(-50%);background:#111;border-radius:2px;opacity:.7}
.framing-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:12px}.framing-actions .button{width:100%;min-width:0;padding-left:10px;padding-right:10px}.framing-status{margin:13px 0 0;font-size:.8rem;line-height:1.35}
.moment-panel-footer{flex:0 0 auto;display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:10px 14px max(14px,calc(env(safe-area-inset-bottom) + 8px));background:rgba(245,244,237,.97);border-top:1px solid rgba(0,0,0,.08);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.moment-panel-footer .button{width:100%;margin:0}.moment-process{margin:0}.moment-cancel{order:-1}
@media(max-width:420px){.moment-panel-content{padding-top:14px}.moment-step{padding:14px}.framing-actions{grid-template-columns:1fr}.moment-panel-footer{grid-template-columns:1fr 1fr;padding-left:12px;padding-right:12px}}

/* Framing-point edit state: selected timeline point can be adjusted or deleted. */
.framing-point-marker.is-selected{background:var(--brand);color:#111;border-color:#111;box-shadow:0 0 0 3px rgba(255,204,51,.32),0 2px 8px rgba(0,0,0,.28)}
.framing-point-marker.is-selected::after{background:var(--brand);opacity:1}
.framing-delete{border-color:rgba(160,38,38,.34);color:#8e2020}
.framing-delete:hover,.framing-delete:focus-visible{border-color:#8e2020;background:rgba(160,38,38,.05)}


/* In-app destructive confirmation for video removal. */
body.confirmation-open{overflow:hidden}
.confirmation-overlay{position:fixed;inset:0;z-index:1900;display:grid;place-items:center;padding:calc(20px + env(safe-area-inset-top)) 18px calc(20px + env(safe-area-inset-bottom));background:rgba(17,17,17,.58);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.confirmation-dialog{position:relative;width:min(100%,420px);background:var(--paper);border:1px solid rgba(0,0,0,.1);border-radius:24px;padding:26px 20px 20px;box-shadow:0 24px 76px rgba(0,0,0,.3);text-align:center}
.confirmation-close{position:absolute;right:12px;top:12px;width:38px;height:38px;border:0;border-radius:50%;background:#f1f1ed;color:#111;font-size:1.6rem;line-height:1;display:grid;place-items:center;cursor:pointer}
.confirmation-icon{width:52px;height:52px;margin:2px auto 14px;border-radius:50%;display:grid;place-items:center;background:#111;color:var(--brand);font-size:1.85rem;font-weight:950;line-height:1}
.confirmation-dialog h2{margin:0 34px 8px;font-size:1.5rem;line-height:1.08;letter-spacing:-.025em}
.confirmation-dialog p{max-width:32ch;margin:0 auto 22px;color:var(--muted)}
.confirmation-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.confirmation-actions .button{width:100%;min-width:0}
.button.destructive{background:#8e2020;color:#fff}
.button.destructive:hover,.button.destructive:focus-visible{background:#741919;outline:3px solid rgba(142,32,32,.18);outline-offset:2px}
@media(max-width:420px){.confirmation-actions{grid-template-columns:1fr}.confirmation-actions [data-confirm-cancel]{order:2}}
.signup-verification-dialog{padding-top:28px}.signup-verification-icon{font-size:1.55rem}.signup-verification-dialog h2{margin-left:0;margin-right:0}.signup-verification-dialog p{max-width:34ch}.signup-verification-dialog p strong{color:#111;font-weight:800;overflow-wrap:anywhere}.signup-verification-actions{display:grid;margin-top:2px}.signup-verification-actions .button{width:100%}

/* Processing replacement progress overlay. */
body.processing-open{overflow:hidden}
.processing-overlay{position:absolute;inset:0;z-index:1800;display:grid;place-items:center;padding:calc(22px + env(safe-area-inset-top)) 18px calc(22px + env(safe-area-inset-bottom));background:rgba(17,17,17,.62);backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px)}
.processing-dialog{width:min(100%,430px);max-height:calc(100dvh - 44px - env(safe-area-inset-top) - env(safe-area-inset-bottom));overflow:auto;background:var(--paper);border:1px solid rgba(0,0,0,.1);border-radius:24px;padding:24px 20px 20px;box-shadow:0 24px 80px rgba(0,0,0,.32)}
.processing-visual{height:60px;display:grid;place-items:center;margin-bottom:8px}
.processing-spinner{width:46px;height:46px;border:4px solid rgba(0,0,0,.12);border-top-color:#111;border-radius:50%;animation:processing-spin .9s linear infinite}
@keyframes processing-spin{to{transform:rotate(360deg)}}
.processing-result-icon{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:#111;color:var(--brand);font-size:1.9rem;font-weight:950;line-height:1;animation:processing-pop .22s ease-out}
.processing-result-icon.is-error{background:#8e2020;color:#fff}
@keyframes processing-pop{from{transform:scale(.72);opacity:0}to{transform:scale(1);opacity:1}}
.processing-dialog h2{margin:0;text-align:center;font-size:1.45rem;letter-spacing:-.025em}
.processing-message{margin:7px auto 20px;text-align:center;color:var(--muted);font-size:.92rem;line-height:1.4;max-width:34ch}
.processing-steps{list-style:none;margin:0;padding:0 0 0 2px;counter-reset:none}
.processing-steps li{position:relative;display:grid;grid-template-columns:28px 1fr;gap:11px;min-height:66px;color:#8b8b84}
.processing-steps li:not(:last-child)::after{content:"";position:absolute;left:10px;top:24px;bottom:-2px;width:2px;background:#d8d7d0;border-radius:2px}
.processing-step-dot{position:relative;z-index:1;width:22px;height:22px;border:2px solid #c9c8c1;border-radius:50%;background:var(--paper);display:grid;place-items:center;margin-top:1px}
.processing-steps strong{display:block;color:inherit;font-size:.94rem;line-height:1.2;margin-bottom:3px}
.processing-steps small{display:block;color:inherit;font-size:.82rem;line-height:1.4}
.processing-steps li.is-active{color:#111}
.processing-steps li.is-active .processing-step-dot{border-color:#111;background:var(--brand);box-shadow:0 0 0 4px rgba(255,204,51,.22)}
.processing-steps li.is-active .processing-step-dot::after{content:"";width:6px;height:6px;border-radius:50%;background:#111;animation:processing-pulse 1.1s ease-in-out infinite}
@keyframes processing-pulse{0%,100%{transform:scale(.72);opacity:.55}50%{transform:scale(1);opacity:1}}
.processing-steps li.is-complete{color:#111}
.processing-steps li.is-complete .processing-step-dot{border-color:#111;background:#111;color:var(--brand)}
.processing-steps li.is-complete .processing-step-dot::after{content:"✓";font-size:.72rem;font-weight:950;line-height:1}
.processing-steps li.is-complete:not(:last-child)::after{background:#111}
.processing-steps li.is-error{color:#8e2020}
.processing-steps li.is-error .processing-step-dot{border-color:#8e2020;background:#8e2020}
.processing-steps li.is-error .processing-step-dot::after{content:"!";color:#fff;font-size:.72rem;font-weight:950}
.processing-error-actions{margin-top:14px}.processing-error-actions .button{width:100%}
.clip-item.just-replaced{border-radius:18px;box-shadow:0 0 0 4px rgba(255,204,51,.55);transition:box-shadow .35s ease}

/* The portrait preview doubles as the quickest framing-playback control. */
.framing-stage{cursor:pointer}
.framing-stage.is-dragging{cursor:grabbing}
.framing-hint{max-width:calc(100% - 20px);overflow:hidden;text-overflow:ellipsis}
.processing-result-icon[hidden],.processing-error-actions[hidden]{display:none!important}

/* DB-backed ThoughtRep category selector: What You Do -> Performing As. */
.thoughtrep-context-card{margin-top:14px}
.context-select-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 12px;margin-top:8px;align-items:start}
.context-select-grid .field{margin:0}
.context-select-grid select:disabled{background:#f1f1ed;color:#8a8a84}
.optional-mark{margin-left:6px;font-size:.72rem;font-weight:650;color:#777771;text-transform:uppercase;letter-spacing:.04em}.field-help{margin:5px 0 0;color:var(--muted);font-size:.78rem;line-height:1.35}
#thoughtrep-context-status{min-height:1.2em;margin:10px 0 0}
@media(max-width:520px){.context-select-grid{grid-template-columns:1fr}}

/* Edit Reel video source limits live with the Add video action. */
.video-heading-actions{display:flex;flex-direction:column;align-items:flex-end;gap:7px;max-width:min(48%,330px);margin-left:auto}
.video-heading-actions .video-help{margin:0;text-align:right;line-height:1.35}
.video-reel-note{margin:12px 0 0}
@media(max-width:520px){.videos-heading{align-items:flex-start}.video-heading-actions{max-width:56%}.video-heading-actions .video-help{font-size:.76rem}}

/* Long Free-source uploads use the centered paywall pattern instead of an inline page error. */
.game-film-chip{display:inline-flex;align-items:center;min-height:22px;padding:3px 8px;border-radius:999px;background:#111;color:var(--brand);font-size:.66rem;font-weight:900;letter-spacing:.07em}
.long-video-dialog p.long-video-tip{margin-top:-8px;padding:12px 13px;border-radius:13px;background:#f5f4ed;color:#555;font-size:.9rem;line-height:1.42}

/* Launch onboarding + lightweight Presence character customization. */
.required-mark{display:inline-flex;align-items:center;margin-left:6px;padding:2px 6px;border-radius:999px;background:#111;color:var(--brand);font-size:.58rem;font-weight:900;letter-spacing:.06em;vertical-align:middle}
.avatar-card{overflow:hidden}.avatar-heading{display:grid;grid-template-columns:minmax(0,1fr) 112px;gap:14px;align-items:start}.avatar-heading p{margin:0}.avatar-preview{width:112px;aspect-ratio:220/270;justify-self:end;border-radius:16px;background:linear-gradient(180deg,#eef8ff,#fff);overflow:hidden;border:1px solid rgba(0,0,0,.08)}.avatar-preview svg{width:100%;height:100%;display:block}.avatar-control{display:grid;gap:8px;margin-top:16px}.avatar-control>strong{font-size:.9rem}.avatar-swatches,.avatar-choices{display:flex;gap:8px;flex-wrap:wrap}.avatar-swatch{width:36px;height:36px;border-radius:50%;border:2px solid #fff;background:var(--swatch);box-shadow:0 0 0 1px #bbb;cursor:pointer;padding:0}.avatar-swatch.is-selected{box-shadow:0 0 0 2px #111,0 0 0 5px var(--brand)}.avatar-choice{min-height:38px;padding:0 11px;border:1px solid #ccc;border-radius:999px;background:#fff;color:#111;font-weight:800;cursor:pointer}.avatar-choice.is-selected{border-color:#111;background:#111;color:#fff;box-shadow:0 0 0 3px rgba(221,255,0,.45)}.avatar-options{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}.avatar-toggle{min-height:50px;border:1px solid #ddd;border-radius:13px;padding:10px 12px;background:#fafafa;font-weight:780;display:flex;align-items:center;gap:9px}.avatar-toggle input{width:20px;height:20px;accent-color:#111}.avatar-card #avatar-status{min-height:1.2em;margin:10px 0 0}.view-reel-card .button{width:100%;margin-top:4px}.button:disabled{opacity:.42;cursor:not-allowed}.view-reel-card p:last-child{margin-bottom:0}.view-reel-card b{color:#111}
@media(max-width:430px){.avatar-heading{grid-template-columns:minmax(0,1fr) 92px}.avatar-preview{width:92px}.avatar-options{grid-template-columns:1fr}}

/* Zero-video Edit Reel onboarding: emphasize the first personal moment. */
.first-video-empty-state{min-height:190px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:28px 12px 18px;text-align:center}
.first-video-empty-state .first-video-cta{min-width:min(100%,260px);background:var(--brand);color:#111}
.first-video-empty-state .first-video-help{max-width:38ch;margin:0;line-height:1.4}
.view-reel-card .view-reel-disabled{background:#ecece7;color:#8a8a84;border:1px solid #d8d8d1;box-shadow:none;cursor:pointer}
.view-reel-card .view-reel-disabled:hover,.view-reel-card .view-reel-disabled:focus-visible{background:#e7e7e1;color:#6f6f69;outline:2px solid #c8c8c1;outline-offset:2px}
.first-video-required-actions{display:grid;gap:9px}.first-video-required-actions .button{width:100%}
.first-video-required-dialog .confirmation-icon{font-size:1.25rem;padding-left:3px}

/* Standalone sign-in / sign-up password UX. */
.auth-card{max-width:560px}.auth-form{display:grid;gap:0}.auth-form .field{margin-bottom:15px}.auth-primary{width:100%;margin-top:6px}.auth-switch{margin:16px 0 0;text-align:center;color:var(--muted);font-size:.92rem}.auth-switch a{color:#111;font-weight:800;text-decoration:underline;text-underline-offset:3px}.auth-text-link{border:0;background:transparent;color:#444;font:inherit;font-size:.9rem;font-weight:760;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.auth-forgot{justify-self:end;margin:-5px 0 13px;padding:4px 0}.auth-text-link:disabled{opacity:.5;cursor:default}.password-input-wrap{position:relative}.password-input-wrap input{width:100%;padding-right:50px}.password-toggle{position:absolute;right:5px;top:50%;transform:translateY(-50%);width:40px;height:40px;display:grid;place-items:center;border:0;border-radius:10px;background:transparent;color:#5d5d58;cursor:pointer}.password-toggle:hover,.password-toggle:focus-visible{background:#f1f1ed;color:#111;outline:none}.password-toggle svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.password-toggle .password-toggle-slash{display:none}.password-toggle[aria-pressed="true"] .password-toggle-slash{display:block}.password-rules{list-style:none;margin:-2px 0 17px;padding:0;display:grid;gap:7px;color:#777;font-size:.88rem}.password-rules li{display:flex;align-items:center;gap:8px;transition:color .15s ease}.password-rule-icon{width:18px;height:18px;display:inline-grid;place-items:center;flex:0 0 18px;font-size:.94rem;font-weight:900}.password-rules li.is-valid{color:#237a37}.password-rules li.is-valid .password-rule-icon{color:#237a37}.auth-primary:disabled{opacity:.45;cursor:not-allowed}.auth-legal{margin:12px 0 0 50%;width:min(62ch,calc(100% + 28px));transform:translateX(-50%);text-align:center;color:#777;font-size:.78rem;line-height:1.45}.auth-legal a,.account-legal-links a{color:#444;font-weight:760;text-decoration:underline;text-underline-offset:3px}.auth-legal-links{display:flex;align-items:center;justify-content:center;gap:8px}.account-legal-links{display:flex;align-items:center;justify-content:center;gap:8px;margin:28px 0 0;color:#777;font-size:.86rem}

/* Edit Reel / Account navigation header and destructive account action. */
.context-header{position:sticky;top:0;z-index:90;min-height:calc(58px + env(safe-area-inset-top));margin:0 -16px 8px;padding:env(safe-area-inset-top) max(12px,calc(env(safe-area-inset-right) + 12px)) 0 max(12px,calc(env(safe-area-inset-left) + 12px));display:grid;grid-template-columns:minmax(72px,1fr) minmax(0,auto) minmax(72px,1fr);min-width:0;align-items:center;background:rgba(245,244,237,.97);border-bottom:1px solid rgba(0,0,0,.07);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.context-header-title{font-size:.92rem;font-weight:850;white-space:nowrap;text-align:center;min-width:0;overflow:hidden;text-overflow:ellipsis}.context-header-side{position:relative;display:flex;align-items:center;min-width:0}.context-header-right{justify-content:flex-end}.context-header-button,.context-menu-button{border:0;background:transparent;color:#111;font:inherit;font-weight:820;cursor:pointer}.context-header-button{min-height:46px;padding:0 8px 0 0;display:inline-flex;align-items:center;gap:2px;border-radius:12px}.context-header-button svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:2.25;stroke-linecap:round;stroke-linejoin:round}.context-menu-button{width:46px;height:46px;border-radius:50%;font-size:1.25rem;letter-spacing:.08em}.context-header-button:active,.context-menu-button:active{background:rgba(17,17,17,.06)}
.context-actions-menu{position:absolute;z-index:120;top:calc(100% - 2px);right:0;width:min(250px,calc(100vw - env(safe-area-inset-left) - env(safe-area-inset-right) - 24px));padding:7px;border:1px solid rgba(17,17,17,.09);border-radius:16px;background:rgba(255,255,255,.98);box-shadow:0 12px 34px rgba(0,0,0,.18);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.context-actions-menu[hidden]{display:none}.context-actions-menu button{width:100%;min-height:46px;padding:0 13px;display:flex;align-items:center;border:0;border-radius:11px;background:transparent;color:#111;font:inherit;font-size:.96rem;font-weight:750;text-align:left;cursor:pointer}.context-actions-menu button:active{background:rgba(17,17,17,.06)}
.fullscreen-shell{max-width:none;padding-bottom:0;height:100dvh;display:flex;flex-direction:column}.fullscreen-shell .context-header{flex:0 0 auto}.about-webview-shell{flex:1 1 auto;min-height:0;margin:0 -16px}.about-webview{display:block;width:100%;height:100%;border:0;background:#fff}
.delete-account-zone{margin:52px 0 10px;padding-top:26px;border-top:1px solid rgba(0,0,0,.09);text-align:center}.delete-account-link{min-height:44px;padding:0 12px;border:0;border-radius:11px;background:transparent;color:#b42318;font:inherit;font-weight:820;cursor:pointer}.delete-account-link:active{background:rgba(180,35,24,.08)}
.delete-account-dialog{border-color:rgba(180,35,24,.18)}.delete-account-icon{background:#b42318!important;color:#fff!important}.delete-account-actions{display:grid;gap:9px;margin-top:18px}.delete-account-confirm{width:100%;background:#b42318;color:#fff}.delete-account-actions .secondary{width:100%}.delete-account-status{min-height:1.25em;margin:12px 0 0;text-align:center}

.brand-home{color:inherit;text-decoration:none}.brand-home:focus-visible{outline:3px solid var(--brand);outline-offset:5px;border-radius:4px}

/* Auth validation feedback: keep progress in buttons and errors beside the fields they describe. */
.auth-form .field input.is-invalid{border-color:#b42318;background:#fffafa;box-shadow:0 0 0 1px rgba(180,35,24,.08)}
.auth-form .field input.is-invalid:focus{border-color:#b42318;box-shadow:0 0 0 3px rgba(180,35,24,.12);outline:0}
.auth-form .field.is-error>label{color:#8f1d16}
.auth-field-error{margin:6px 2px 0;color:#b42318;font-size:.82rem;font-weight:700;line-height:1.35}
.auth-field-error[hidden],.auth-alert[hidden]{display:none!important}
.auth-alert{margin:0 0 10px;padding:10px 12px;border-radius:11px;background:#fff0f0;color:#8f1d16;font-size:.86rem;font-weight:650;line-height:1.38}
.auth-alert.is-success{background:#eef8ef;color:#27602d}
.password-rules li.is-invalid{color:#b42318}
.password-rules li.is-invalid .password-rule-icon{color:#b42318}

/* 2026-09-23 parent-test UX pass: returning settings, sticky avatar, orientation-aware video editing. */
.edit-section-collapsible{padding:0;overflow:visible}
.edit-section-toggle{width:100%;min-height:58px;padding:0 18px;border:0;border-radius:18px;background:transparent;color:#111;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;font:inherit;font-size:1.08rem;font-weight:850;cursor:pointer}
.edit-section-toggle:focus-visible{outline:3px solid var(--brand);outline-offset:2px}
.edit-section-toggle svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;transition:transform .16s ease}
.edit-section-toggle[aria-expanded="true"] svg{transform:rotate(180deg)}
.edit-section-content{padding:0 18px 18px}
.edit-section-collapsible.is-collapsed .edit-section-content{display:none}
.edit-section-collapsible .edit-section-source-heading{display:none}
.edit-section-collapsible:not(.is-collapsed) .edit-section-toggle{border-bottom:1px solid rgba(0,0,0,.06);border-radius:18px 18px 0 0;margin-bottom:16px}

/* Keep the avatar visible for the whole avatar section rather than only its heading. */
.avatar-card{overflow:visible}
.avatar-card:not(.edit-section-collapsible),.avatar-card .edit-section-content{display:grid;grid-template-columns:minmax(0,1fr) 112px;gap:0 14px;align-items:start}
.avatar-controls-column{min-width:0;grid-column:1}
.avatar-heading{display:block;grid-template-columns:none;gap:0}
.avatar-preview{grid-column:2;position:sticky;top:calc(70px + env(safe-area-inset-top));align-self:start;z-index:4;width:112px}
.avatar-card .edit-section-content>.avatar-preview{grid-column:2}
.avatar-options{grid-template-columns:1fr;gap:9px}
.avatar-card #avatar-status{min-height:1.2em}
@media(max-width:430px){
  .avatar-card:not(.edit-section-collapsible),.avatar-card .edit-section-content{grid-template-columns:minmax(0,1fr) 88px;gap:0 10px}
  .avatar-preview{width:88px;top:calc(66px + env(safe-area-inset-top))}
  .avatar-choice{padding-left:9px;padding-right:9px;font-size:.86rem}
  .avatar-swatch{width:34px;height:34px}
}

/* Leave the sticky Edit Reel header plus 16px of breathing room above deep-linked Moments. */
#moments,#videos{scroll-margin-top:calc(74px + env(safe-area-inset-top))}
#moments.entry-highlight,#videos.entry-highlight{animation:video-entry-highlight 1.35s ease-out}
@keyframes video-entry-highlight{0%{box-shadow:0 0 0 4px rgba(221,255,0,.85),0 10px 30px rgba(0,0,0,.08)}100%{box-shadow:0 1px 2px rgba(0,0,0,.03)}}

/* Portrait uploads get a portrait trim preview and do not expose redundant framing. */
.trim-preview.is-portrait{width:min(74vw,320px);margin:0 auto;aspect-ratio:var(--source-aspect,9/16)}
.trim-preview.is-portrait .trim-canvas{object-fit:contain}
.framing-section[hidden]{display:none!important}
.framing-preview-button{grid-column:1/-1}
.framing-actions{grid-template-columns:1fr 1fr}
@media(max-width:420px){.framing-actions{grid-template-columns:1fr 1fr}.framing-preview-button{grid-column:1/-1}}

/* 2026-09-26 persistent Add to a device management. */
#devices{scroll-margin-top:calc(74px + env(safe-area-inset-top))}
#devices.entry-highlight{animation:video-entry-highlight 1.35s ease-out}
.device-access-state{margin-top:16px}.device-access-empty{display:grid;gap:12px;justify-items:start}.device-access-empty p{margin:0;color:var(--muted)}
.device-access-list{display:grid;gap:10px}.device-access-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 0;border-bottom:1px solid rgba(0,0,0,.07)}.device-access-row:last-child{border-bottom:0}.device-access-info{min-width:0;display:grid;gap:3px;flex:1}.device-access-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}.device-access-row span{color:var(--muted);font-size:.82rem;line-height:1.35}.device-name-button{justify-self:start;max-width:100%;padding:0;border:0;background:transparent;color:inherit;font:inherit;font-weight:800;font-size:.98rem;line-height:1.3;text-align:left;cursor:pointer}.device-name-button:hover .device-name-text,.device-name-button:focus-visible .device-name-text{text-decoration:underline;text-underline-offset:3px}.device-name-edit-mark{margin-left:5px;color:var(--muted);font-size:.82em;font-weight:700}.device-name-edit{display:flex;align-items:center;gap:7px;max-width:100%}.device-name-input{min-width:0;max-width:240px;width:min(240px,100%);height:38px;padding:0 10px;border:1px solid rgba(0,0,0,.18);border-radius:10px;background:#fff;color:inherit;font:inherit;font-weight:700}.device-name-input:focus{outline:2px solid rgba(104,125,0,.35);outline-offset:1px}.device-name-edit .button{min-height:38px;padding:0 10px}.device-name-error{color:#9f2f21!important}.device-add-another{margin-top:14px}
.device-pairing-dialog{max-width:480px}.device-pairing-qr{width:min(240px,70vw);margin:16px auto;aspect-ratio:1;display:grid;place-items:center;background:#fff;border-radius:16px;padding:10px}.device-pairing-qr svg{display:block;width:100%;height:100%}.device-setup-link-label{display:grid;gap:6px;text-align:left;font-size:.82rem;font-weight:800;color:#555}.device-setup-link{width:100%;min-height:44px;padding:0 11px;border:1px solid rgba(0,0,0,.13);border-radius:11px;background:#fff;font:inherit;font-size:.78rem;color:#333}.device-pairing-actions{display:grid;gap:9px;margin-top:16px}.device-pairing-actions .button{width:100%}.device-pairing-status{min-height:1.2em;text-align:center}
@media(max-width:430px){.device-access-row{align-items:flex-start;flex-wrap:wrap}.device-access-actions{width:100%;justify-content:flex-end}.device-name-edit{flex-wrap:wrap}.device-name-input{max-width:none;width:100%}.device-pairing-dialog{width:min(94vw,480px)}}
.device-access-toast{position:fixed;z-index:12000;left:50%;bottom:calc(22px + env(safe-area-inset-bottom));transform:translate(-50%,10px);max-width:min(88vw,360px);padding:10px 14px;border-radius:12px;background:#111;color:#fff;font-size:.9rem;font-weight:800;line-height:1.25;text-align:center;box-shadow:0 10px 30px rgba(0,0,0,.24);opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease}.device-access-toast.is-visible{opacity:1;transform:translate(-50%,0)}.device-access-toast.is-error{background:#8f1d16}.device-access-toast[hidden]{display:none!important}@media(prefers-reduced-motion:reduce){.device-access-toast{transition-duration:1ms}}

/* ThoughtReel deletion lives at the bottom of Edit ThoughtReel. The one-reel
   state remains tappable so it can explain why deletion is unavailable. */
.delete-reel-card{margin-top:18px;border-color:rgba(180,35,24,.16);background:rgba(255,255,255,.72)}
.delete-reel-button{width:100%;background:#b42318;border-color:#b42318;color:#fff}
.delete-reel-button:hover,.delete-reel-button:focus-visible{background:#971c13;border-color:#971c13;outline:3px solid rgba(180,35,24,.16);outline-offset:2px}
.delete-reel-button.is-disabled{background:#f0e3e1;border-color:#e0c9c5;color:#9a6862;cursor:not-allowed;box-shadow:none}
.delete-reel-button.is-disabled:hover{background:#f0e3e1;border-color:#e0c9c5;transform:none}
.delete-thoughtreel-dialog{border-color:rgba(180,35,24,.18)}
.delete-thoughtreel-icon{background:#b42318!important;color:#fff!important}

.locked-reel-banner{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;border:1px solid #d9d8cf;background:#f7f7f1}.locked-reel-banner h2{margin:8px 0 6px}.locked-reel-banner p{margin:0;color:#66645e;line-height:1.45}.locked-reel-banner .button{min-width:150px}.is-disabled{opacity:.48;cursor:not-allowed!important}
@media(max-width:640px){.locked-reel-banner{grid-template-columns:1fr}.locked-reel-banner .button{width:100%}}

/* Scheduled Plus-to-Free downgrade: deleting the selected Free reel requires a replacement. */
.delete-free-reel-chooser{margin:18px 0 8px;padding:0;border:0;text-align:left}
.delete-free-reel-chooser legend{margin:0 0 10px;font-weight:800;color:#111}
.delete-free-reel-options{display:grid;gap:8px}
.delete-free-reel-option{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid #dddcd4;border-radius:14px;background:#fff;cursor:pointer}
.delete-free-reel-option:has(input:checked){border-color:#111;box-shadow:0 0 0 1px #111}
.delete-free-reel-option input{width:18px;height:18px;margin:0;accent-color:#111}
.delete-free-reel-option span{font-weight:700;line-height:1.25}
.delete-free-reel-single{display:grid;gap:3px;margin:18px 0;padding:14px;border:1px solid #dddcd4;border-radius:14px;background:#f8f7f1;text-align:left}
.delete-free-reel-single strong{font-weight:800;color:#111}
.delete-free-reel-single span{color:#62615c;line-height:1.35}

/* Plus personalization — 2026-09-27 */
.exercise-picker-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}
.exercise-picker{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid rgba(16,24,40,.14);border-radius:14px;padding:12px 14px;background:#fff;font-weight:700}
.exercise-picker select{font:inherit;font-size:1.05rem;min-width:68px;border:1px solid rgba(16,24,40,.18);border-radius:10px;padding:9px 28px 9px 12px;background:#fff}
.exercise-placement{border:0;padding:0;margin:18px 0 0;display:grid;gap:9px}
.exercise-placement legend{font-weight:800;margin-bottom:7px}
.exercise-placement label{display:flex;align-items:flex-start;gap:10px;border:1px solid rgba(16,24,40,.12);border-radius:12px;padding:11px 12px;cursor:pointer}
.exercise-placement label:has(input:checked){border-color:rgba(16,24,40,.42);box-shadow:0 0 0 1px rgba(16,24,40,.12)}
.exercise-placement input{margin-top:3px}
.exercise-placement span{display:grid;gap:2px}.exercise-placement small{font-weight:500;color:#667085;line-height:1.35}
.thoughtrep-editor{display:grid;gap:14px;padding-top:14px}.thoughtrep-mode-control{display:flex;gap:18px;flex-wrap:wrap}.thoughtrep-mode-control label{display:flex;align-items:center;gap:7px;font-weight:700}
.editable-affirmation-list{display:grid;gap:8px}.editable-affirmation-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px;border:1px solid rgba(16,24,40,.12);border-radius:12px;background:#fff}
.thoughtrep-order-controls{display:grid;gap:2px;align-self:stretch;align-content:center}.thoughtrep-move-button,.thoughtrep-delete{border:0;background:transparent;min-width:38px;min-height:30px;border-radius:9px;cursor:pointer;font:inherit}.thoughtrep-move-button{color:#667085;font-size:1.05rem;font-weight:850;line-height:1;touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.thoughtrep-move-button:hover,.thoughtrep-move-button:focus-visible{background:rgba(16,24,40,.06);color:#111}.thoughtrep-move-button:focus-visible{outline:2px solid rgba(16,24,40,.35);outline-offset:1px}.thoughtrep-move-button:disabled{opacity:.24;cursor:default;background:transparent;color:#667085}.thoughtrep-delete{font-size:1rem;min-height:38px;position:relative}.thoughtrep-delete.is-deleting{cursor:wait}.thoughtrep-delete.is-deleting::after{content:"";position:absolute;inset:50% auto auto 50%;width:16px;height:16px;margin:-8px 0 0 -8px;border:2px solid rgba(16,24,40,.2);border-top-color:#111;border-radius:50%;animation:thoughtrep-delete-spin .7s linear infinite}@keyframes thoughtrep-delete-spin{to{transform:rotate(360deg)}}
.thoughtrep-inline-input{box-sizing:border-box;width:100%;resize:vertical;min-height:56px;height:72px;border:0;background:transparent;font:inherit;font-weight:650;line-height:1.35;padding:8px;outline:none}.thoughtrep-inline-input.is-single-line{padding-top:calc((72px - 1.35em)/2);padding-bottom:calc((72px - 1.35em)/2)}.thoughtrep-inline-input:focus{box-shadow:0 0 0 2px rgba(16,24,40,.16);border-radius:8px}
.thoughtrep-editor-actions{display:flex;gap:9px;flex-wrap:wrap}.thoughtrep-safety-note{padding-top:2px;line-height:1.45}.thoughtrep-empty{padding:12px 2px}
.copy-reel-card{display:grid;gap:8px}.copy-reel-card .button{width:100%;justify-self:stretch}.copy-reel-button{background:#fff;color:#111;gap:8px}.copy-reel-button:hover,.copy-reel-button:focus-visible{background:#fff;color:#111;outline:3px solid rgba(17,17,17,.14);outline-offset:2px}.copy-success-icon{width:58px;height:58px;margin:2px auto 16px;border-radius:50%;display:grid;place-items:center;background:var(--brand);color:#111;font-size:2rem;font-weight:950;line-height:1;animation:processing-pop .22s ease-out}.confirmation-actions-stack{display:grid;grid-template-columns:1fr;gap:8px}
@media(max-width:520px){.exercise-picker-grid{grid-template-columns:1fr}.thoughtrep-editor-actions{display:grid}.thoughtrep-editor-actions .button{width:100%}}

.thoughtrep-clear-spinner{display:inline-block;width:13px;height:13px;margin-right:7px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;vertical-align:-2px;animation:processing-spin .7s linear infinite}

/* Photo + text Moments */
.moment-counts{margin-top:.35rem}.moment-add-actions{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:flex-end}.moment-extra-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;margin-top:16px}.moment-extra-item{display:grid;gap:8px}.moment-extra-preview{position:relative;aspect-ratio:9/16;border-radius:18px;overflow:hidden;background:#26323a;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:18px;color:#fff;text-align:center}.moment-extra-media{position:absolute;inset:0;background-position:center;background-size:cover;background-repeat:no-repeat;will-change:transform}.moment-extra-preview small{position:absolute;left:12px;bottom:12px;font-size:11px;opacity:.78}.moment-extra-preview.is-photo strong{position:absolute;left:12px;bottom:32px;text-align:left;font-size:13px}.moment-shade{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(0,0,0,.12),rgba(0,0,0,.34))}.moment-extra-preview strong,.moment-extra-preview small{position:relative;z-index:2}.moment-extra-preview.is-photo strong,.moment-extra-preview small{position:absolute}.moment-editor-overlay{position:fixed;inset:0;z-index:10000;background:rgba(0,0,0,.68);display:grid;place-items:center;padding:20px;overflow:auto}.moment-editor-dialog{width:min(940px,100%);background:#f5f4ed;border-radius:24px;padding:22px;box-shadow:0 24px 80px rgba(0,0,0,.35)}.moment-editor-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.moment-editor-head h2{margin:.2rem 0 1rem}.moment-close{border:0;background:transparent;font-size:34px;line-height:1;cursor:pointer}.moment-editor-grid{display:grid;grid-template-columns:minmax(240px,360px) 1fr;gap:28px}.moment-live-preview{aspect-ratio:9/16;border-radius:22px;background:#26323a;position:relative;overflow:hidden;color:white;display:flex;align-items:center;justify-content:center;padding:30px;touch-action:none}.moment-preview-media{position:absolute;inset:0;background-position:center;background-size:cover;background-repeat:no-repeat;will-change:transform}.moment-preview-text{position:relative;z-index:2;font-weight:750;font-size:clamp(22px,3vw,34px);line-height:1.15;text-align:center;white-space:pre-wrap}.moment-live-preview.is-photo .moment-preview-text{position:absolute;left:20px;right:20px;bottom:50px;text-align:left;font-size:16px}.moment-preview-meta{position:absolute;z-index:2;left:20px;bottom:22px;font-size:12px;opacity:.78}.moment-fields{display:grid;gap:16px;align-content:start}.field-label{display:grid;gap:7px;font-weight:650}.field-label.plain{display:block;margin-bottom:8px}.moment-fields textarea,.moment-fields input[type=text],.moment-fields input[type=date]{width:100%;box-sizing:border-box;padding:11px 12px;border:1px solid #c9c8c1;border-radius:10px;background:white;font:inherit}.moment-char-count{justify-self:end;font-size:12px;color:#777}.moment-background-choices{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.moment-bg-choice{aspect-ratio:1;border:3px solid transparent;border-radius:12px;background:center/cover;position:relative;overflow:hidden;cursor:pointer}.moment-bg-choice.selected{border-color:#a6c82a}.moment-bg-choice span{position:absolute;inset:auto 4px 4px;background:rgba(0,0,0,.55);color:white;padding:3px;border-radius:5px;font-size:10px}.moment-own-photo{margin-top:8px}.moment-date-toggle{display:flex;gap:8px;align-items:center}.moment-editor-actions{display:grid;grid-template-columns:auto 1fr auto auto;gap:8px;align-items:center;margin-top:4px}.moment-framing{padding:12px;border-radius:12px;background:#ecebe4}.moment-framing input{width:100%}.moment-button-spinner{display:inline-block;width:14px;height:14px;margin-right:7px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;vertical-align:-2px;animation:processing-spin .7s linear infinite}.moment-editor-actions button[aria-busy="true"]{display:inline-flex;align-items:center;justify-content:center}@media(max-width:720px){.moment-editor-overlay{display:block;padding:0;overflow-y:auto;-webkit-overflow-scrolling:touch;background:var(--canvas)}.moment-editor-dialog{width:100%;min-height:100vh;min-height:100dvh;height:auto;margin:0;border-radius:0;padding:18px 18px calc(28px + env(safe-area-inset-bottom));background:var(--canvas);box-shadow:none}.moment-editor-grid{grid-template-columns:1fr}.moment-fields{min-width:0}.moment-live-preview{width:min(72vw,330px);justify-self:center}.moment-editor-actions{grid-template-columns:1fr 1fr;margin-top:8px;padding-bottom:calc(8px + env(safe-area-inset-bottom))}.moment-editor-actions>span{display:none}}

/* Moments V1 polish: keep editors vertically locked and use the same two-action footer rhythm as video editing. */
.moment-editor-actions{grid-template-columns:1fr 1fr;gap:10px}
.moment-editor-actions .button{width:100%;margin:0}
.moment-extra-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.moment-extra-actions .button{width:100%;min-width:0;padding-left:8px;padding-right:8px}
.moments-heading-copy{min-width:0;flex:1 1 auto}
.moment-video-help{margin-top:.65rem!important;text-align:left!important;line-height:1.4}
@media(max-width:720px){
  .moment-editor-overlay{width:100vw;max-width:100vw;overflow-x:hidden;overscroll-behavior-x:none;touch-action:pan-y}
  .moment-editor-dialog{width:100%;max-width:100vw;overflow-x:hidden;touch-action:pan-y}
  .moment-editor-grid,.moment-fields{width:100%;max-width:100%;min-width:0}
  .moment-live-preview{touch-action:none}
  .moment-editor-actions{grid-template-columns:1fr 1fr;gap:10px}
}


/* OAuth entry points (Google is currently public; Facebook support remains dormant). */
.oauth-buttons{display:grid;gap:10px;margin:0 0 4px}.oauth-button{width:100%;min-height:50px;display:grid;grid-template-columns:24px 1fr 24px;align-items:center;gap:10px;padding:0 14px;border:1px solid #d6d6d0;border-radius:14px;background:#fff;color:#111;font:inherit;font-size:.96rem;font-weight:800;cursor:pointer}.oauth-button:hover,.oauth-button:focus-visible{border-color:#9a9a93;background:#fafaf7;outline:none;box-shadow:0 0 0 3px rgba(17,17,17,.06)}.oauth-button:disabled{opacity:.55;cursor:default}.oauth-button span{grid-column:2;text-align:center}.oauth-provider-icon{grid-column:1;width:22px;height:22px}.auth-divider{display:flex;align-items:center;gap:12px;margin:18px 0;color:#8a8982;font-size:.78rem;font-weight:700}.auth-divider::before,.auth-divider::after{content:"";height:1px;flex:1;background:#dfdfd9}.auth-divider span{white-space:nowrap}.oauth-legal{margin:11px auto 0;transform:none;width:auto;max-width:62ch}.account-signin-method{margin-top:-3px}.account-social-access-card strong{font-weight:850}

/* Unified feedback and scoped loading UX. */
.app-toast{position:fixed;z-index:2300;left:50%;bottom:calc(22px + env(safe-area-inset-bottom));max-width:min(88vw,360px);padding:11px 16px;border-radius:999px;background:#111;color:#fff;font-size:.9rem;font-weight:800;line-height:1.2;box-shadow:0 12px 32px rgba(0,0,0,.24);opacity:0;transform:translate(-50%,10px);transition:opacity .2s ease,transform .2s ease;pointer-events:none;text-align:center}.app-toast.is-visible{opacity:1;transform:translate(-50%,0)}.app-toast.is-error{background:#8e2020}.app-toast[hidden]{display:none!important}
.confirmation-icon.is-destructive{background:#8e2020;color:#fff}
body.app-transition-loading{overflow:hidden}.app-transition-loader{position:fixed;z-index:2400;inset:0;display:grid;place-items:center;background:var(--canvas);color:#111}.app-transition-spinner{width:30px;height:30px;border:3px solid rgba(17,17,17,.14);border-top-color:#111;border-radius:50%;animation:processing-spin .72s linear infinite}.app-transition-copy{position:absolute;left:50%;top:calc(50% + 32px);margin:0;transform:translate(-50%,3px);color:#6b6a64;font-size:.9rem;white-space:nowrap;opacity:0;transition:opacity .3s ease,transform .3s ease}.app-transition-copy.is-visible{opacity:1;transform:translate(-50%,0)}
.has-scoped-loading{position:relative}.scoped-loading-overlay{position:absolute;z-index:30;inset:0;display:grid;place-items:center;border-radius:inherit;background:rgba(245,244,237,.92);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.scoped-loading-spinner{width:28px;height:28px;border:3px solid rgba(17,17,17,.14);border-top-color:#111;border-radius:50%;animation:processing-spin .72s linear infinite}.scoped-loading-copy{position:absolute;left:50%;top:calc(50% + 31px);transform:translate(-50%,3px);color:#6b6a64;font-size:.86rem;font-weight:700;white-space:nowrap;opacity:0;animation:delayed-feedback-copy .28s ease 2s forwards}@keyframes delayed-feedback-copy{to{opacity:1;transform:translate(-50%,0)}}
.save-indicator{min-height:1.2em;display:flex;align-items:center;gap:7px}.save-indicator-spinner{width:14px;height:14px;border:2px solid #cfcfc8;border-top-color:#111;border-radius:50%;animation:processing-spin .7s linear infinite}.save-indicator-check{width:17px;height:17px;border-radius:50%;display:grid;place-items:center;background:#111;color:var(--brand);font-size:.7rem;font-weight:950}.save-indicator.is-saved{color:#3f5f30}
.clip-preview-state.is-loading{display:grid;place-items:center}.clip-preview-spinner{width:20px;height:20px;flex:none;border:2.5px solid rgba(255,255,255,.32);border-top-color:#fff;border-radius:50%;animation:processing-spin .72s linear infinite}.clip-preview-loading-copy{position:absolute;left:50%;top:calc(50% + 23px);width:max-content;max-width:calc(100% - 12px);opacity:0;transform:translate(-50%,2px);animation:clip-preview-copy .28s ease 2s forwards}@keyframes clip-preview-copy{to{opacity:1;transform:translate(-50%,0)}}.clip-preview-state.is-error{background:rgba(0,0,0,.5)}
.replacement-processing-status{position:absolute;z-index:3;left:8px;right:8px;bottom:8px;margin:0;padding:9px 10px;border:1px solid rgba(255,255,255,.16);border-radius:12px;background:rgba(17,17,17,.78);display:flex;align-items:flex-start;gap:9px;color:rgba(255,255,255,.82);box-shadow:0 4px 16px rgba(0,0,0,.2);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);pointer-events:none}.replacement-processing-spinner{width:16px;height:16px;flex:0 0 16px;margin-top:1px;border:2px solid rgba(255,255,255,.32);border-top-color:#fff;border-radius:50%;animation:processing-spin .8s linear infinite}.replacement-processing-status strong{display:block;color:#fff;font-size:.8rem;line-height:1.2}.replacement-processing-status small{display:block;margin-top:2px;color:rgba(255,255,255,.78);font-size:.76rem;line-height:1.35}
@media(prefers-reduced-motion:reduce){.app-toast,.app-transition-copy{transition-duration:.01ms}.app-transition-spinner,.scoped-loading-spinner,.save-indicator-spinner,.clip-preview-spinner,.replacement-processing-spinner{animation-duration:1.5s}.scoped-loading-copy,.clip-preview-loading-copy{animation-duration:.01ms;animation-delay:2s}}

/* October 9 — full-context, touch-to-follow portrait framing experiment. */
.framing-stage.is-landscape{width:100%;max-width:100%;aspect-ratio:var(--framing-aspect,16/9);border-radius:14px;margin:12px auto 0;cursor:crosshair;touch-action:none}
.framing-stage.is-preview{width:min(74vw,300px);aspect-ratio:9/16;margin:12px auto 0;cursor:default;touch-action:none}
.framing-stage.is-recording{cursor:grabbing}
.framing-stage .framing-canvas{width:100%;height:100%;object-fit:fill}
.framing-progress{height:5px;background:rgba(0,0,0,.10);border-radius:999px;overflow:hidden;margin-top:10px}
.framing-progress>span{display:block;height:100%;width:0;background:var(--brand);transition:width .08s linear}
.framing-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:12px}
.framing-actions .framing-preview-button{grid-column:auto}
.framing-actions [hidden]{display:none!important}
.framing-actions .button:disabled{opacity:.46;cursor:not-allowed}
.framing-actions:has(#restart-framing[hidden]) .framing-preview-button{grid-column:1/-1}
@media(max-width:420px){.framing-stage.is-preview{width:min(78vw,286px)}.framing-actions{grid-template-columns:1fr 1fr}.framing-actions .framing-preview-button{grid-column:auto}}

/* Per-reel Moment Order: visually separate from the mix and placement controls. */
.moment-order-settings{margin-top:22px;padding-top:18px;border-top:1px solid rgba(16,24,40,.12)}
.moment-order-settings legend{padding-right:10px}

/* Once framing is recorded, dragging the canvas should scroll the editor.
   Keep touch-action:none while the user is actively hold-to-follow recording. */
.framing-stage.is-preview,.framing-stage.is-landscape.is-framed{touch-action:pan-y}
.processing-cancel-actions{margin-top:16px}.processing-cancel-actions .button{width:100%;min-height:44px}
.processing-cancel-actions[hidden]{display:none!important}
