.app-shell{--bg:rgb(var(--background));--surface:rgb(var(--brand-surface));--surface-2:rgb(var(--brand-raised));--ink:rgb(var(--brand-ink));--muted:rgb(var(--muted-foreground));--line:rgb(var(--border));--accent:rgb(var(--brand-sunrise));--brand-primary-color:rgb(var(--primary));--accent-ink:rgb(var(--primary-foreground));--gold:rgb(var(--brand-sunny));--lilac:rgb(var(--brand-dream));--sky:rgb(var(--brand-sky));--meadow:rgb(var(--brand-meadow));--green:rgb(var(--brand-meadow-deep));--success:rgb(var(--brand-success));--peach:rgb(var(--brand-peach));--danger:rgb(var(--destructive));--face-detail:rgb(var(--brand-ink));--font:var(--font-brand);--heading-weight:var(--font-weight-display);--body-weight:var(--font-weight-body);min-height:100vh;background:var(--bg);color:var(--ink);font-family:var(--font);font-weight:var(--body-weight);overflow-x:hidden;position:relative;transition:background var(--duration-standard) var(--ease-standard),color var(--duration-standard) var(--ease-standard)}.app-shell .ambient-shape{position:fixed;border-radius:50%;pointer-events:none;opacity:.35;filter:blur(1px)}.app-shell .shape-one{width:330px;height:330px;background:var(--lilac);top:-190px;right:15%}.app-shell .shape-two{width:260px;height:260px;background:var(--peach);bottom:-150px;left:-90px}.app-shell .shape-three{width:75px;height:75px;border:18px solid var(--accent);right:-25px;top:48%;background:transparent}.app-shell .topbar{height:calc(var(--space-16) + var(--space-4));max-width:1440px;margin:auto;padding:var(--space-4) 34px;display:flex;align-items:center;justify-content:space-between;position:relative;z-index:3}.app-shell .wordmark{display:block;width:154px;height:auto;margin:0;padding:0;-o-object-fit:contain;object-fit:contain;-o-object-position:left center;object-position:left center}.app-shell .progress-wrap{max-width:1372px;margin:0 auto var(--space-4);padding:0 34px;position:relative;z-index:2}.app-shell .progress-copy{display:flex;justify-content:space-between;color:var(--muted);font-size:var(--font-size-meta);line-height:var(--line-height-meta);margin-bottom:var(--space-2)}.app-shell .progress{height:5px;border-radius:5px;background:color-mix(in srgb,var(--line) 80%,transparent);overflow:hidden}.app-shell .progress i{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--brand-primary-color));border-radius:inherit}.app-shell .onboarding-frame{width:calc(100% - 68px);max-width:1372px;min-height:calc(100vh - 190px);margin:auto;background:var(--surface-2);border:var(--border-width) solid var(--line);border-radius:var(--radius-panel);display:grid;grid-template-columns:minmax(340px,.86fr) minmax(570px,1.25fr);grid-template-rows:minmax(0,1fr) auto;overflow:hidden;position:relative;z-index:1;box-shadow:var(--shadow-panel)}.app-shell .illustration-panel{min-height:650px;background:var(--surface);position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:center;background:radial-gradient(circle at 88% 10%,color-mix(in srgb,var(--gold) 35%,transparent) 0 12%,transparent 12.5%),var(--surface)}.app-shell .memory-art{width:112%;margin-left:-6%;max-height:590px}.app-shell .art-sun{fill:var(--gold)}.app-shell .art-hill.back{fill:var(--lilac)}.app-shell .art-hill.front{fill:var(--meadow)}.app-shell .photo-paper{fill:var(--surface-2);stroke:var(--line);stroke-width:3}.app-shell .photo-sky{fill:var(--sky)}.app-shell .photo-head.one{fill:var(--peach)}.app-shell .photo-body.one{fill:var(--accent)}.app-shell .photo-head.two{fill:var(--gold)}.app-shell .photo-body.two{fill:var(--green)}.app-shell .note-card{fill:var(--ink)}.app-shell .note-dot,.app-shell .note-line{fill:var(--gold)}.app-shell .note-line.soft{opacity:.45}.app-shell .note-wave{stroke:var(--surface-2);stroke-width:8;stroke-linecap:round}.app-shell .sparkles{fill:var(--accent);stroke:var(--accent);stroke-width:8;stroke-linecap:round}.app-shell .step-illustration{width:100%;height:100%;min-height:650px;position:relative;display:flex;align-items:flex-end;justify-content:center;overflow:hidden}.app-shell .illustration-heading{position:absolute;z-index:2;top:42px;left:42px;right:36px}.app-shell .illustration-heading span{display:block;color:var(--accent);font-size:11px;font-weight:var(--font-weight-ui);line-height:1.3;letter-spacing:.14em;text-transform:uppercase}.app-shell .illustration-heading h2{max-width:340px;margin:8px 0 0;font-size:clamp(24px,2.2vw,36px);line-height:1.08;letter-spacing:-.025em;font-weight:var(--heading-weight);text-wrap:balance}.app-shell .scene-art{width:108%;max-height:535px;margin:0 -4% -9px;overflow:visible;transform-origin:center bottom}.app-shell .scene-sun{fill:var(--gold)}.app-shell .scene-ground.one{fill:var(--meadow)}.app-shell .scene-ground.two{fill:var(--lilac)}.app-shell .scene-card rect:first-child{fill:var(--surface-2);stroke:var(--line);stroke-width:3}.app-shell .scene-card circle{fill:var(--peach)}.app-shell .scene-card path{fill:var(--accent)}.app-shell .scene-card.card-two path{fill:var(--lilac)}.app-shell .scene-card.card-two circle{fill:var(--gold)}.app-shell .scene-card.card-three path{fill:none;stroke:var(--ink);stroke-width:12;stroke-linecap:round}.app-shell .scene-card.card-three circle{fill:var(--accent)}.app-shell .scene-card{transform-box:fill-box;transform-origin:center}.app-shell .card-one{transform:rotate(-8deg)}.app-shell .card-two{transform:translateY(-15px)}.app-shell .card-three{transform:rotate(8deg)}.app-shell .scene-art{animation:scene-float-a 6s ease-in-out infinite}@keyframes scene-float-a{0%,to{transform:translateY(0) rotate(-.4deg)}50%{transform:translateY(-10px) rotate(.4deg)}}.app-shell .scene-orbit{fill:none;stroke:color-mix(in srgb,var(--accent) 48%,transparent);stroke-width:4;stroke-dasharray:8 12}.app-shell .scene-profile circle{fill:var(--peach)}.app-shell .scene-profile>path:not(.face-line){fill:var(--accent)}.app-shell .scene-profile.person-1>path:not(.face-line){fill:var(--green)}.app-shell .scene-profile.person-2>path:not(.face-line){fill:var(--lilac)}.app-shell .face-line{fill:none!important;stroke:var(--face-detail);stroke-width:6;stroke-linecap:round}.app-shell .scene-detail-lines rect{fill:var(--ink);opacity:.7}.app-shell .scene-photo>rect:first-child{fill:var(--surface-2);stroke:var(--line);stroke-width:3}.app-shell .scene-photo>rect:nth-child(2){fill:var(--sky)}.app-shell .scene-photo circle{fill:var(--gold)}.app-shell .scene-photo path{fill:var(--green)}.app-shell .scene-photo>rect:last-child{fill:var(--ink);opacity:.5}.app-shell .scene-spark{fill:none;stroke:var(--accent);stroke-width:8;stroke-linecap:round}.app-shell .connection-line{fill:none;stroke:var(--accent);stroke-width:4;stroke-dasharray:9 12;opacity:.65}.app-shell .scene-face circle{fill:var(--peach)}.app-shell .scene-face>path:not(.face-line){fill:var(--accent)}.app-shell .scene-face.two circle{fill:var(--gold)}.app-shell .scene-face.two>path:not(.face-line){fill:var(--green)}.app-shell .scene-face.three>path:not(.face-line){fill:var(--lilac)}.app-shell .scene-check circle{fill:var(--accent)}.app-shell .scene-check path{fill:none;stroke:var(--accent-ink);stroke-width:7;stroke-linecap:round;stroke-linejoin:round}.app-shell .name-tag rect{fill:var(--surface-2);stroke:var(--line);stroke-width:3}.app-shell .name-tag path{stroke:var(--ink);stroke-width:10;stroke-linecap:round;opacity:.65}.app-shell .launch-ring{fill:none;stroke:var(--lilac);stroke-width:3;opacity:.5}.app-shell .launch-ring.two{stroke:var(--accent);stroke-dasharray:7 13}.app-shell .launch-book path{fill:var(--surface-2);stroke:var(--ink);stroke-width:5;stroke-linejoin:round}.app-shell .launch-book .book-line{fill:none;stroke:var(--accent);stroke-width:7;stroke-linecap:round}.app-shell .content-panel{padding:clamp(34px,5vw,calc(var(--space-16) + var(--space-2)));display:flex;align-items:center;min-width:0}.app-shell .onboarding-frame[data-screen="2"] .content-panel{background:linear-gradient(145deg,color-mix(in srgb,var(--gold) 7%,var(--surface-2)),var(--surface-2) 45%,color-mix(in srgb,var(--lilac) 8%,var(--surface-2)))}.app-shell .onboarding-frame[data-screen="3"] .content-panel{background:linear-gradient(180deg,color-mix(in srgb,var(--sky) 8%,var(--surface-2)),var(--surface-2) 36%)}.app-shell .onboarding-frame[data-screen="4"] .content-panel{background:linear-gradient(145deg,color-mix(in srgb,var(--lilac) 10%,var(--surface-2)),var(--surface-2) 48%)}.app-shell .screen{width:100%;max-width:760px;margin:auto}.app-shell .screen-heading{margin-bottom:var(--space-8);max-width:700px}.app-shell .eyebrow{color:var(--accent);text-transform:uppercase;letter-spacing:.16em;font-size:var(--font-size-meta);font-weight:var(--font-weight-ui);margin:0 0 var(--space-3)}.app-shell .screen-heading h1,.app-shell .waiting h1{font-size:clamp(var(--font-size-section-title),4vw,var(--font-size-display));letter-spacing:var(--letter-spacing-display);line-height:var(--line-height-page-title);font-weight:var(--heading-weight);margin:0 0 var(--space-4);text-wrap:balance}.app-shell .screen-heading>p:last-child,.app-shell .waiting>p{margin:0;color:var(--muted);line-height:var(--line-height-body);font-size:var(--font-size-body);max-width:650px}.app-shell .choice-grid{display:grid;gap:var(--space-3)}.app-shell .choice-card{text-align:left;width:100%;border:var(--control-border-width) solid var(--line);background:var(--surface);border-radius:var(--radius-panel);padding:var(--space-4);display:grid;grid-template-columns:52px 1fr 28px;align-items:center;gap:var(--space-4);cursor:pointer;transition:transform var(--duration-quick) var(--ease-standard),border-color var(--duration-quick) var(--ease-standard),background var(--duration-quick) var(--ease-standard)}.app-shell .choice-card:hover{transform:translateY(-2px);border-color:var(--accent)}.app-shell .choice-card.selected{background:color-mix(in srgb,var(--accent) 10%,var(--surface-2));border-color:var(--accent)}.app-shell .begin-session-button:active,.app-shell .choice-card:active,.app-shell .source-button:active{transform:scale(var(--scale-pressed))}.app-shell .choice-icon{width:52px;height:52px;display:grid;place-items:center;border-radius:calc(var(--radius-panel) * .65);background:color-mix(in srgb,var(--lilac) 45%,var(--surface-2))}.app-shell .choice-icon svg{width:23px}.app-shell .choice-card span:nth-child(2){display:flex;flex-direction:column;gap:var(--space-1)}.app-shell .choice-card strong{font-size:var(--font-size-body)}.app-shell .choice-card small{font-size:var(--font-size-meta);line-height:var(--line-height-meta);color:var(--muted)}.app-shell .choice-card>i{width:25px;height:25px;display:grid;place-items:center;border-radius:50%;background:var(--brand-primary-color);color:var(--accent-ink)}.app-shell .choice-card>i:empty{background:transparent;border:var(--control-border-width) solid var(--line)}.app-shell .choice-card>i svg{width:14px;stroke-width:3}.app-shell .form-stack{display:grid;gap:var(--space-4)}.app-shell .form-stack label,.app-shell .metadata-grid label{display:grid;gap:var(--space-2)}.app-shell .form-stack label>span,.app-shell .metadata-grid label>span{font-size:var(--font-size-ui);line-height:var(--line-height-ui);font-weight:var(--font-weight-ui)}.app-shell .form-stack label>span em{color:var(--muted);font-style:normal;font-weight:var(--body-weight)}.app-shell input,.app-shell select{width:100%;height:var(--control-height);border:var(--control-border-width) solid var(--line);border-radius:var(--radius-control);background:var(--surface);color:var(--ink);padding:0 var(--control-padding-inline);outline:none;transition:border-color var(--duration-quick) var(--ease-standard),box-shadow var(--duration-quick) var(--ease-standard)}.app-shell input:focus,.app-shell select:focus{border-color:var(--accent);box-shadow:0 0 0 var(--focus-ring-width) rgb(var(--brand-sunrise)/var(--focus-ring-alpha))}.app-shell input[aria-invalid=true]{border-color:var(--danger)}.app-shell .select-wrap{position:relative}.app-shell .select-wrap select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:calc(var(--control-padding-inline) + var(--space-6))}.app-shell .select-wrap svg{position:absolute;right:var(--control-padding-inline);top:50%;width:20px;transform:translateY(-50%);pointer-events:none}.app-shell .field-error,.app-shell .field-help{font-size:var(--font-size-meta);line-height:var(--line-height-meta)}.app-shell .field-help{color:var(--muted)}.app-shell .field-error{color:var(--danger)}.app-shell .form-error{padding:var(--space-3);border:var(--border-width) solid color-mix(in srgb,var(--danger) 40%,var(--line));border-radius:var(--radius-control);background:color-mix(in srgb,var(--danger) 9%,var(--surface));color:var(--danger);font-size:var(--font-size-meta)}.app-shell .gentle-note{display:flex;align-items:center;gap:var(--space-3);background:color-mix(in srgb,var(--meadow) 24%,var(--surface));padding:var(--space-4);border-radius:var(--radius-panel);color:var(--muted);font-size:var(--font-size-meta)}.app-shell .gentle-note svg{color:var(--success);width:21px}.app-shell .file-input{display:none}.app-shell .photo-loader{display:grid;grid-template-columns:minmax(220px,.8fr) 1fr;gap:22px;align-items:center}.app-shell .photo-preview{position:relative;aspect-ratio:4/3;transform:rotate(-2deg);border:10px solid var(--surface-2);box-shadow:var(--shadow-raised);border-radius:10px;overflow:visible}.app-shell .photo-preview>img,.app-shell .photo-preview>svg{border-radius:4px;overflow:hidden}.app-shell .tape{position:absolute;width:68px;height:22px;background:color-mix(in srgb,var(--gold) 65%,transparent);z-index:3}.app-shell .tape.top{top:-16px;left:50%;transform:translateX(-50%) rotate(4deg)}.app-shell .tape.bottom{bottom:-16px;right:22px;transform:rotate(-7deg)}.app-shell .photo-busy-overlay{position:absolute;z-index:2;inset:0;border-radius:var(--radius-small);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-4);background:color-mix(in srgb,var(--surface-2) 88%,transparent);color:var(--ink);text-align:center;backdrop-filter:blur(5px)}.app-shell .photo-busy-overlay strong{max-width:240px;font-size:var(--font-size-ui);line-height:var(--line-height-ui);font-weight:var(--font-weight-ui)}.app-shell .photo-busy-overlay small{color:var(--muted);font-size:var(--font-size-meta);line-height:var(--line-height-meta)}.app-shell .photo-busy-orbit{width:44px;height:44px;border:var(--control-border-width) solid color-mix(in srgb,var(--accent) 38%,var(--line));border-radius:50%;display:grid;place-items:center;color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--surface-2));animation:photo-busy-orbit var(--duration-voice-fast) ease-in-out infinite alternate}.app-shell .photo-busy-orbit svg{width:20px;height:20px}.app-shell .photo-busy-progress{position:relative;width:min(190px,80%);height:6px;margin-top:var(--space-1);border-radius:var(--radius-pill);overflow:hidden;background:color-mix(in srgb,var(--line) 80%,transparent)}.app-shell .photo-busy-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),var(--brand-primary-color));transition:width var(--duration-standard) var(--ease-standard)}.app-shell .photo-busy-progress.indeterminate i{width:42%;animation:photo-busy-progress var(--duration-voice) var(--ease-journey) infinite}@keyframes photo-busy-orbit{0%{transform:scale(.94) rotate(-8deg)}to{transform:scale(1.04) rotate(8deg);box-shadow:0 0 0 var(--space-2) color-mix(in srgb,var(--accent) 8%,transparent)}}@keyframes photo-busy-progress{0%{transform:translateX(-120%)}to{transform:translateX(340%)}}.app-shell .photo-actions,.app-shell .source-button{display:grid;gap:var(--space-3)}.app-shell .source-button{width:100%;min-height:58px;border:var(--control-border-width) solid var(--line);background:var(--surface);border-radius:var(--radius-panel);padding:var(--space-3) var(--space-4);grid-template-columns:40px 1fr 20px;align-items:center;text-align:left;cursor:pointer}.app-shell .source-button:hover{border-color:var(--accent)}.app-shell .source-button>svg:first-child{width:23px;color:var(--accent)}.app-shell .source-button>svg:last-child{width:18px}.app-shell .source-button>span{display:flex;flex-direction:column;gap:var(--space-1)}.app-shell .source-button strong{font-size:var(--font-size-ui)}.app-shell .source-button small{color:var(--muted);font-size:var(--font-size-meta)}.app-shell .source-compact{display:none}.app-shell .primary-source{background:color-mix(in srgb,var(--accent) 10%,var(--surface));border-color:color-mix(in srgb,var(--accent) 40%,var(--line))}.app-shell .google-photos-icon{height:23px;overflow:visible}.app-shell .google-photos-icon .petal-top{fill:var(--accent)}.app-shell .google-photos-icon .petal-right{fill:var(--gold)}.app-shell .google-photos-icon .petal-bottom{fill:var(--green)}.app-shell .google-photos-icon .petal-left{fill:var(--sky)}.app-shell .skip-photo-button{border-style:dashed}.app-shell .skip-photo-button>svg:first-child{color:var(--muted)}.app-shell .family-photo,.app-shell .uploaded-photo{width:100%;height:100%;display:block;-o-object-fit:cover;object-fit:cover}.app-shell .photo-person circle{fill:var(--peach)}.app-shell .photo-person path{fill:var(--accent)}.app-shell .photo-person.p2 circle{fill:var(--gold)}.app-shell .photo-person.p2 path{fill:var(--lilac)}.app-shell .photo-person.p3 circle{fill:var(--peach)}.app-shell .photo-person.p3 path{fill:var(--sky)}.app-shell .face{fill:none;stroke:var(--face-detail);stroke-width:5;stroke-linecap:round}.app-shell .recognition-summary{min-height:38px;margin:calc(var(--space-2) * -1) 0 var(--space-3);display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.app-shell .status-pill{width:-moz-max-content;width:max-content;min-height:30px;padding:var(--space-2) var(--space-3);border:var(--border-width) solid color-mix(in srgb,var(--accent) 32%,var(--line));border-radius:var(--radius-pill);display:inline-flex;align-items:center;gap:var(--space-2);background:color-mix(in srgb,var(--accent) 8%,var(--surface-2));color:var(--ink);font-size:var(--font-size-meta-small);font-weight:var(--font-weight-ui);letter-spacing:.03em}.app-shell .status-pill svg{width:13px;height:13px;color:var(--accent)}.app-shell .status-pill.is-live i{width:7px;height:7px;border-radius:50%;background:var(--accent);animation:status-pulse 1.4s ease-in-out infinite}.app-shell .avatar-stack{display:flex;align-items:center;padding-left:10px}.app-shell .avatar-stack>span{width:38px;height:38px;margin-left:-10px;border:3px solid var(--surface-2);border-radius:50%;overflow:hidden;background:var(--surface);transition:opacity .2s,filter .2s,transform .2s}.app-shell .avatar-stack>span:first-child{margin-left:0}.app-shell .avatar-stack>span.excluded{opacity:.42;filter:grayscale(1);transform:scale(.88)}.app-shell .avatar-stack .face-crop-canvas,.app-shell .avatar-stack .face-thumb{width:100%;height:100%;border:0;border-radius:0}.app-shell .avatar-stack .mini-hair{transform:scale(.9);transform-origin:top left}.app-shell .identify-layout{display:flex;justify-content:center}.app-shell .tagged-photo{width:min(100%,var(--photo-desktop-width,560px));aspect-ratio:4/3;position:relative;border-radius:var(--radius-panel);overflow:hidden;background:var(--surface)}.app-shell .tagged-photo .uploaded-photo{-o-object-fit:cover;object-fit:cover}.app-shell .face-box{position:absolute;z-index:2;min-width:34px;min-height:34px;border:3px solid var(--accent);border-radius:18px;background:color-mix(in srgb,var(--accent) 7%,transparent);cursor:pointer;transition:transform var(--duration-quick) var(--ease-standard),border-color var(--duration-quick) var(--ease-standard),background var(--duration-quick) var(--ease-standard),opacity var(--duration-quick) var(--ease-standard)}.app-shell .face-box:hover{transform:scale(1.035)}.app-shell .face-box>span{position:absolute;right:-11px;top:-11px;width:25px;height:25px;border-radius:50%;display:grid;place-items:center;border:2px solid var(--surface-2);background:var(--accent);color:var(--accent-ink)}.app-shell .face-box>span svg{width:13px;stroke-width:3}.app-shell .face-box.removed{border-color:var(--muted);border-style:dashed;background:color-mix(in srgb,var(--muted) 12%,transparent);opacity:.58}.app-shell .face-box.removed>span{background:var(--muted);color:var(--surface-2)}.app-shell .no-faces-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:color-mix(in srgb,var(--surface) 82%,transparent);color:var(--muted)}.app-shell .no-faces-overlay svg{width:30px;color:var(--accent)}.app-shell .no-faces-overlay span{font-size:var(--font-size-meta);font-weight:var(--font-weight-strong)}.app-shell .face-thumb{width:42px;height:42px;background:var(--peach);border-radius:38% 38% 46% 46%;position:relative;overflow:hidden}.app-shell .face-thumb.gold{background:var(--gold)}.app-shell .face-thumb.blue{background:var(--sky)}.app-shell .mini-hair{position:absolute;left:8px;top:4px;width:27px;height:16px;border-radius:50% 50% 30% 30%;background:var(--face-detail)}.app-shell .mini-face{position:absolute;left:10px;top:11px;width:23px;height:27px;border-radius:45%;background:color-mix(in srgb,var(--peach) 70%,var(--surface-2))}.app-shell .mini-face i{position:absolute;width:3px;height:3px;border-radius:50%;background:var(--face-detail);top:9px;left:5px}.app-shell .mini-face i:nth-child(2){left:15px}.app-shell .mini-face b{position:absolute;left:7px;top:17px;width:9px;height:4px;border-bottom:2px solid var(--face-detail);border-radius:50%}.app-shell .metadata-grid{display:grid;grid-template-columns:.7fr 1.3fr;gap:12px;margin-top:17px}.app-shell .metadata-grid label>span{display:flex;align-items:center;gap:7px}.app-shell .metadata-grid label svg{width:16px;color:var(--accent)}.app-shell .staged-photo-location{display:grid;align-self:start;align-content:start;gap:var(--space-2);min-width:0}.app-shell .staged-photo-location>span:first-child{display:flex;align-items:center;gap:7px;font-size:var(--font-size-ui);line-height:var(--line-height-ui);font-weight:var(--font-weight-ui)}.app-shell .staged-location-suggestions{position:absolute;left:0;right:0;bottom:calc(100% + var(--space-1));z-index:40;max-height:208px;overflow-y:auto;padding:var(--space-1);border:var(--border-width) solid var(--line);border-radius:var(--radius-control);background:var(--surface);box-shadow:var(--shadow-raised)}.app-shell .staged-location-option{display:block;width:100%;padding:var(--space-2) var(--space-3);border:0;border-radius:var(--radius-small);background:transparent;color:var(--ink);text-align:left;cursor:pointer}.app-shell .staged-location-option:focus-visible,.app-shell .staged-location-option:hover{background:color-mix(in srgb,var(--accent) 8%,var(--surface));outline:none}.app-shell .staged-location-option>span{display:block;font-size:var(--font-size-ui);font-weight:var(--font-weight-ui)}.app-shell .staged-location-option>small{display:block;overflow:hidden;color:var(--muted);font-size:var(--font-size-meta);text-overflow:ellipsis;white-space:nowrap}.app-shell .photo-metadata-error{margin-top:var(--space-3)}.app-shell .person-detail-layout{display:grid;grid-template-columns:210px 1fr;gap:30px;align-items:start}.app-shell .portrait-card{min-height:280px;border-radius:var(--radius-panel);background:color-mix(in srgb,var(--lilac) 55%,var(--surface));position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden}.app-shell .portrait-card .face-crop-canvas,.app-shell .portrait-card .face-thumb{width:142px;height:142px}.app-shell .portrait-card .mini-hair{left:27px;top:9px;width:92px;height:55px}.app-shell .portrait-card .mini-face{left:34px;top:34px;width:74px;height:86px}.app-shell .portrait-card .mini-face i{width:7px;height:7px;top:30px;left:18px}.app-shell .portrait-card .mini-face i:nth-child(2){left:49px}.app-shell .portrait-card .mini-face b{left:24px;top:57px;width:29px;height:10px;border-bottom-width:4px}.app-shell .portrait-card>.status-pill{margin-top:14px}.app-shell .portrait-spark{position:absolute;width:22px;height:22px;border:6px solid var(--accent);border-radius:50%}.app-shell .portrait-spark.one{top:24px;right:18px}.app-shell .portrait-spark.two{width:12px;height:12px;border-width:4px;bottom:32px;left:18px;border-color:var(--gold)}.app-shell .field-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.app-shell .pill-options{display:flex;gap:var(--space-2);flex-wrap:wrap}.app-shell .pill-options button{min-height:44px;border:var(--border-width) solid var(--line);background:var(--surface);border-radius:var(--radius-pill);padding:var(--space-2) var(--space-3);font-size:var(--font-size-ui);cursor:pointer}.app-shell .pill-options button.active{background:var(--ink);color:var(--bg);border-color:var(--ink)}.app-shell .identity-selector{display:grid;gap:var(--space-2)}.app-shell .identity-selector>span{font-size:var(--font-size-ui);line-height:var(--line-height-ui);font-weight:var(--font-weight-ui)}.app-shell .identity-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2)}.app-shell .identity-options button{min-width:0;min-height:var(--control-height);padding:0 var(--space-3);border:var(--control-border-width) solid var(--line);border-radius:var(--radius-control);display:flex;align-items:center;justify-content:center;gap:var(--space-2);background:var(--surface);color:var(--ink);cursor:pointer;transition:border-color var(--duration-quick) var(--ease-standard),background var(--duration-quick) var(--ease-standard),transform var(--duration-quick) var(--ease-standard)}.app-shell .identity-options button:hover{border-color:var(--accent)}.app-shell .identity-options button:active{transform:scale(var(--scale-pressed))}.app-shell .identity-options button.active{border-color:var(--success);background:color-mix(in srgb,var(--success) 10%,var(--surface))}.app-shell .identity-options svg{width:18px;height:18px;flex:0 0 auto;color:var(--accent)}.app-shell .identity-options button.active svg{color:var(--success)}.app-shell .identity-options button span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--font-size-ui);line-height:var(--line-height-ui);font-weight:var(--font-weight-ui)}.app-shell .self-name-field input:-moz-read-only{background:color-mix(in srgb,var(--surface) 72%,var(--line));color:var(--muted);cursor:not-allowed}.app-shell .self-name-field input:read-only{background:color-mix(in srgb,var(--surface) 72%,var(--line));color:var(--muted);cursor:not-allowed}.app-shell .face-crop-canvas{width:112px;height:112px;display:block;border-radius:38%;-o-object-fit:cover;object-fit:cover;border:4px solid color-mix(in srgb,var(--surface-2) 88%,transparent)}.app-shell .relationship-editor{display:grid;gap:6px}.app-shell .relationship-label{font-size:var(--font-size-ui);font-weight:var(--font-weight-ui)}.app-shell .relationship-prompt{color:var(--muted);font-size:var(--font-size-meta);line-height:1.4}.app-shell .relationship-combobox{position:relative}.app-shell .relationship-input-shell{min-height:92px;padding:8px 10px;border:var(--control-border-width) solid var(--line);border-radius:calc(var(--radius-control) * .72);background:var(--surface);display:flex;flex-wrap:wrap;align-content:flex-start;gap:7px;transition:border-color var(--duration-quick) var(--ease-standard),box-shadow var(--duration-quick) var(--ease-standard)}.app-shell .relationship-input-shell:focus-within{border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 15%,transparent)}.app-shell .relationship-input-shell>input{flex:1;min-width:145px;width:auto;height:34px;padding:0 4px;border:0;background:transparent;box-shadow:none;font-size:var(--font-size-ui)}.app-shell .relationship-input-shell>input:focus{border:0;box-shadow:none}.app-shell .relationship-chip,.app-shell .relationship-type-token{display:inline-flex;align-items:center;min-height:34px;max-width:100%;padding:4px 8px 4px 11px;border-radius:var(--radius-pill);font-size:var(--font-size-meta)}.app-shell .relationship-chip{gap:6px;border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line));background:color-mix(in srgb,var(--accent) 9%,var(--surface-2))}.app-shell .relationship-chip>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-shell .relationship-chip button{width:24px;height:24px;padding:0;border:0;border-radius:50%;display:grid;place-items:center;background:transparent;color:var(--muted);cursor:pointer}.app-shell .relationship-chip button:hover{background:color-mix(in srgb,var(--danger) 12%,transparent);color:var(--danger)}.app-shell .relationship-chip svg{width:12px}.app-shell .relationship-type-token{color:var(--muted)}.app-shell .relationship-menu,.app-shell .relationship-type-token{border:var(--border-width) solid var(--line);background:var(--surface-2)}.app-shell .relationship-menu{position:absolute;z-index:12;left:0;right:0;top:calc(100% + 5px);max-height:190px;overflow:auto;padding:5px;border-radius:calc(var(--radius-panel) * .55);box-shadow:var(--shadow-card-hover)}.app-shell .relationship-menu button{width:100%;min-height:44px;padding:8px 10px;border:0;border-radius:var(--radius-small);background:transparent;display:flex;align-items:center;gap:8px;text-align:left;font-size:13px;cursor:pointer}.app-shell .relationship-menu button:hover{background:var(--surface)}.app-shell .relationship-menu button>svg{width:14px;color:var(--muted)}.app-shell .relationship-menu button>span{flex:1}.app-shell .relationship-menu button small{color:var(--muted)}.app-shell .relationship-menu p{margin:0;padding:9px;color:var(--muted);font-size:var(--font-size-meta)}.app-shell .relationship-input-shell{border-radius:var(--radius-control)}.app-shell .relationship-editor{gap:var(--space-2)}.app-shell .relationship-prompt{line-height:var(--line-height-meta)}.app-shell .relationship-input-shell{padding:var(--space-2) var(--space-3);gap:var(--space-2)}.app-shell .relationship-input-shell:focus-within{box-shadow:0 0 0 var(--focus-ring-width) rgb(var(--brand-sunrise)/var(--focus-ring-alpha))}.app-shell .relationship-chip{gap:var(--space-2);border-width:var(--border-width)}.app-shell .ready-card{display:grid;grid-template-columns:.72fr 1.28fr;background:var(--surface);border:var(--border-width) solid var(--line);border-radius:var(--radius-panel);padding:13px;gap:20px;align-items:center}.app-shell .ready-photo{aspect-ratio:1/1;border-radius:calc(var(--radius-panel) * .8);overflow:hidden;position:relative}.app-shell .ready-badge{position:absolute;right:8px;bottom:8px;width:34px;height:34px;border-radius:50%;background:var(--brand-primary-color);color:var(--accent-ink);display:grid;place-items:center;border:3px solid var(--surface-2)}.app-shell .ready-badge svg{width:16px;stroke-width:3}.app-shell .ready-copy{padding:10px 10px 10px 0}.app-shell .session-label{color:var(--accent);display:flex;align-items:center;gap:7px;font-size:var(--font-size-meta);font-weight:var(--font-weight-ui);letter-spacing:.1em}.app-shell .session-label svg{width:15px}.app-shell .ready-avatars{margin-top:11px;padding-left:0}.app-shell .ready-copy h2{font-size:24px;margin:9px 0 7px;line-height:1.2}.app-shell .ready-copy p{color:var(--muted);font-size:var(--font-size-ui);line-height:1.5;margin:0}.app-shell .begin-session-button{min-height:var(--control-height);margin-top:var(--space-4);padding:0 var(--control-padding-inline);border:0;border-radius:var(--radius-control);background:var(--brand-primary-color);color:var(--accent-ink);display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);white-space:nowrap;font-size:var(--font-size-ui);font-weight:var(--font-weight-ui);cursor:pointer;transition:transform var(--duration-quick) var(--ease-standard)}.app-shell .begin-session-button svg{width:15px;flex:0 0 auto}.app-shell .final-action-note{margin:var(--space-3) 0 0;color:var(--success);display:flex;align-items:center;justify-content:center;gap:var(--space-2);font-size:var(--font-size-meta)}.app-shell .final-action-note svg{width:15px}.app-shell .no-photo-ready{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:color-mix(in srgb,var(--lilac) 25%,var(--surface-2));color:var(--muted)}.app-shell .no-photo-ready>svg{width:30px;color:var(--accent)}.app-shell .no-photo-ready>span{font-size:var(--font-size-meta);font-weight:var(--font-weight-strong);text-align:center}.app-shell .ready-card.with-photo{grid-template-columns:1.18fr .82fr}.app-shell .ready-card.with-photo .ready-photo{aspect-ratio:4/3}.app-shell .ready-card.with-photo .ready-photo .uploaded-photo{-o-object-position:center;object-position:center}.app-shell .waiting-frame{grid-template-columns:1fr;grid-template-rows:1fr}.app-shell .waiting-frame .content-panel{min-height:calc(100vh - 120px);grid-column:1/-1}.app-shell .waiting{width:100%;max-width:620px;margin:auto;text-align:center;display:flex;flex-direction:column;align-items:center}.app-shell .waiting-scan{width:min(440px,82vw);aspect-ratio:4/3;margin-bottom:18px;border:8px solid var(--surface-2);border-radius:calc(var(--radius-panel) * .8);overflow:hidden;position:relative;transform:rotate(-1.5deg);background:var(--surface)}.app-shell .waiting-scan .family-photo,.app-shell .waiting-scan .uploaded-photo{-o-object-fit:cover;object-fit:cover}.app-shell .scan-line{position:absolute;z-index:4;left:4%;right:4%;height:2px;background:var(--accent);box-shadow:0 0 14px var(--accent)}.app-shell .scan-face{position:absolute;z-index:3;border:3px solid var(--accent);border-radius:var(--radius-control);background:color-mix(in srgb,var(--accent) 7%,transparent)}.app-shell .scan-face.one{left:30%;top:35%;width:16%;height:24%}.app-shell .scan-face.two{left:50%;top:34%;width:15%;height:22%}.app-shell .scan-face.three{left:66%;top:43%;width:12%;height:18%}.app-shell .waiting>h1{margin:12px 0 10px}.app-shell .waiting>p{text-align:center;max-width:480px}.app-shell .waiting-steps{margin-top:22px;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px}.app-shell .waiting-steps span{min-height:32px;padding:7px 10px;border:var(--border-width) solid var(--line);border-radius:var(--radius-pill);display:flex;align-items:center;gap:6px;color:var(--muted);background:var(--surface);font-size:var(--font-size-meta-small);font-weight:var(--font-weight-strong)}.app-shell .waiting-steps svg{width:13px}.app-shell .waiting-steps .done{color:var(--green);border-color:color-mix(in srgb,var(--green) 30%,var(--line))}.app-shell .waiting-steps .active{color:var(--ink);border-color:var(--accent);background:color-mix(in srgb,var(--accent) 9%,var(--surface))}.app-shell .waiting-steps .done{color:var(--success);border-color:color-mix(in srgb,var(--success) 30%,var(--line))}.app-shell .action-bar{min-height:76px;width:100%;padding:var(--space-3) var(--space-6);border-top:var(--border-width) solid var(--line);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;grid-column:1/-1;background:color-mix(in srgb,var(--surface-2) 94%,transparent);position:relative;z-index:3}@keyframes status-pulse{50%{opacity:.35;transform:scale(.72)}}.app-shell .back-button,.app-shell .continue-button{border:0;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:9px;min-height:var(--control-height);padding:0 22px;border-radius:var(--radius-control);white-space:nowrap;font-weight:var(--font-weight-ui);transition:transform var(--duration-quick) var(--ease-standard)}.app-shell .back-button:active,.app-shell .continue-button:active{transform:scale(var(--scale-pressed))}.app-shell .back-button{justify-self:start;background:transparent}.app-shell .back-button:disabled{opacity:.3;cursor:default}.app-shell .back-button svg,.app-shell .continue-button svg{width:18px;flex:0 0 auto}.app-shell .continue-button{justify-self:end;background:var(--brand-primary-color);color:var(--accent-ink)}.app-shell .desktop-style-label{font-size:var(--font-size-meta-small);color:var(--muted);letter-spacing:.08em;text-transform:uppercase}.app-shell .continue-button.secondary-action{background:var(--surface);color:var(--muted);border:var(--border-width) solid var(--line);font-weight:var(--font-weight-strong)}.app-shell .begin-session-button:disabled,.app-shell .continue-button:disabled,.app-shell .source-button:disabled{cursor:wait;opacity:.58}@media (min-width:981px){.app-shell:not(.landing-shell){width:100%;height:100dvh;min-height:0;padding-bottom:var(--space-6);box-sizing:border-box;display:grid;grid-template-rows:84px auto minmax(0,1fr);overflow-y:hidden}.app-shell .progress-wrap,.app-shell .topbar{width:100%}.app-shell .illustration-panel,.app-shell .onboarding-frame,.app-shell .step-illustration{height:100%;min-height:0}.app-shell .content-panel{max-height:100%;overflow-y:auto}.app-shell .waiting-frame .content-panel{min-height:0}.app-shell .action-bar{height:76px}}@media (max-width:980px){.app-shell .onboarding-frame{width:calc(100% - (var(--space-6) * 2));grid-template-columns:1fr}.app-shell .illustration-panel{min-height:240px;max-height:280px}.app-shell .step-illustration{min-height:280px}.app-shell .illustration-heading{top:28px;left:34px;right:55%}.app-shell .illustration-heading h2{font-size:24px}.app-shell .scene-art{position:absolute;width:58%;height:310px;right:-2%;bottom:-32px}.app-shell .content-panel{padding:var(--space-8)}.app-shell .onboarding-frame{min-height:auto}.app-shell .desktop-style-label{display:none}.app-shell .action-bar{grid-template-columns:1fr 1fr}}@media (max-width:640px){.app-shell:not(.landing-shell){padding-bottom:24px}.app-shell .topbar{height:64px;padding:var(--space-2) var(--space-4)}.app-shell .wordmark{width:120px;height:42px}.app-shell .progress-wrap{padding:0 var(--space-4);margin-bottom:var(--space-3)}.app-shell .progress-copy{font-size:var(--font-size-meta)}.app-shell .onboarding-frame{width:calc(100% - (var(--space-4) * 2));border-radius:var(--radius-panel);display:flex;flex-direction:column}.app-shell .illustration-panel,.app-shell .step-illustration{min-height:120px;max-height:120px}.app-shell .illustration-heading{top:var(--space-4);left:var(--space-4);right:47%}.app-shell .illustration-heading span{font-size:var(--font-size-meta-small);letter-spacing:.11em}.app-shell .illustration-heading h2{font-size:var(--font-size-body);line-height:var(--line-height-ui);font-weight:var(--font-weight-ui);margin-top:var(--space-1)}.app-shell .scene-art{height:166px;right:0;bottom:-30px;width:49%;margin-left:0}.app-shell .content-panel{padding:var(--space-6) var(--space-4) var(--space-8);align-items:flex-start}.app-shell .screen-heading{margin-bottom:20px}.app-shell .screen-heading h1,.app-shell .waiting h1{margin-bottom:var(--space-3);font-size:var(--font-size-section-title)}.app-shell .screen-heading>p:last-child,.app-shell .waiting>p{font-size:var(--font-size-body);line-height:var(--line-height-body)}.app-shell .choice-card{min-height:62px;padding:10px 12px;grid-template-columns:42px 1fr 24px;gap:11px}.app-shell .choice-icon{width:42px;height:42px}.app-shell .choice-card strong{font-size:var(--font-size-body)}.app-shell .choice-card small{font-size:var(--font-size-meta)}.app-shell .identify-layout,.app-shell .person-detail-layout{grid-template-columns:1fr}.app-shell .onboarding-frame[data-screen="2"] .illustration-heading span{font-size:var(--font-size-meta-small);letter-spacing:.07em;white-space:nowrap}.app-shell .onboarding-frame[data-screen="2"] .photo-loader{grid-template-columns:1fr;gap:12px;align-items:start}.app-shell .onboarding-frame[data-screen="2"] .photo-preview{width:100%;max-width:calc(100% - 18px);margin:4px auto;transform:rotate(-2.5deg);border-width:8px;overflow:visible}.app-shell .onboarding-frame[data-screen="2"] .photo-preview .tape{display:block;width:58px;height:17px;opacity:.82}.app-shell .onboarding-frame[data-screen="2"] .photo-preview .tape.top{top:-12px}.app-shell .onboarding-frame[data-screen="2"] .photo-preview .tape.bottom{bottom:-11px}.app-shell .onboarding-frame[data-screen="2"] .photo-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.app-shell .onboarding-frame[data-screen="2"] .source-button{min-height:78px;padding:8px 5px;grid-template-columns:1fr;grid-template-rows:28px auto;justify-items:center;align-content:center;gap:4px;text-align:center}.app-shell .onboarding-frame[data-screen="2"] .source-button>svg:first-child{width:24px;height:24px}.app-shell .onboarding-frame[data-screen="2"] .source-button>svg:last-child{display:none}.app-shell .onboarding-frame[data-screen="2"] .source-button>span{align-items:center}.app-shell .onboarding-frame[data-screen="2"] .source-button strong{font-size:var(--font-size-ui);line-height:var(--line-height-ui)}.app-shell .onboarding-frame[data-screen="2"] .source-button small,.app-shell .onboarding-frame[data-screen="2"] .source-full{display:none}.app-shell .onboarding-frame[data-screen="2"] .source-compact{display:inline}.app-shell .field-row,.app-shell .metadata-grid{grid-template-columns:1fr}.app-shell .person-detail-layout{gap:16px}.app-shell .portrait-card{min-height:154px;flex-direction:row;gap:12px}.app-shell .portrait-card .face-crop-canvas,.app-shell .portrait-card .face-thumb{width:88px;height:88px}.app-shell .portrait-card .mini-hair{left:18px;top:6px;width:58px;height:34px}.app-shell .portrait-card .mini-face{left:22px;top:22px;width:50px;height:57px}.app-shell .portrait-card .mini-face i{top:20px;left:12px}.app-shell .portrait-card .mini-face i:nth-child(2){left:34px}.app-shell .portrait-card .mini-face b{left:16px;top:39px;width:21px}.app-shell .portrait-card>.status-pill{margin:0;font-size:var(--font-size-meta-small)}.app-shell .ready-card{grid-template-columns:80px minmax(0,1fr);gap:var(--space-3);padding:var(--space-3)}.app-shell .ready-photo{width:80px;height:80px;aspect-ratio:1}.app-shell .ready-card.with-photo{grid-template-columns:1fr;gap:12px}.app-shell .ready-card.with-photo .ready-photo{width:100%;height:auto;aspect-ratio:16/9}.app-shell .ready-card.with-photo .ready-copy{padding:5px 4px 4px}.app-shell .ready-photo .ready-badge{width:28px;height:28px;right:4px;bottom:4px;border-width:2px}.app-shell .ready-photo .ready-badge svg{width:13px}.app-shell .ready-photo.no-photo-ready{gap:3px;padding:6px}.app-shell .ready-photo.no-photo-ready>svg{width:22px}.app-shell .ready-photo.no-photo-ready>span{max-width:68px;font-size:var(--font-size-meta-small);line-height:1.15}.app-shell .ready-copy{padding:4px 4px 4px 0}.app-shell .ready-copy h2{font-size:var(--font-size-card-title);margin:var(--space-2) 0 var(--space-1)}.app-shell .ready-copy p{font-size:var(--font-size-ui);line-height:var(--line-height-ui)}.app-shell .begin-session-button{width:100%;min-height:var(--control-height);margin-top:var(--space-3);padding-inline:10px;gap:6px;font-size:var(--font-size-ui)}.app-shell .action-bar{position:static;min-height:68px;margin-top:auto;padding:9px 14px;background:color-mix(in srgb,var(--surface-2) 96%,transparent);backdrop-filter:blur(16px);border-top:var(--border-width) solid var(--line);grid-template-columns:auto minmax(0,1fr);gap:10px}.app-shell .action-bar .continue-button{width:100%}.app-shell .back-button,.app-shell .continue-button{min-height:var(--control-height);padding:0 15px;font-size:var(--font-size-ui)}.app-shell .waiting-frame{min-height:calc(100vh - 92px)}.app-shell .waiting-frame .content-panel{min-height:calc(100vh - 92px);padding:24px}.app-shell .waiting-scan{width:min(100%,410px)}}@media (max-width:640px) and (max-height:820px){.app-shell:not(.landing-shell){padding-bottom:16px}.app-shell .topbar{height:56px;padding:7px 16px}.app-shell .wordmark{width:114px;height:38px}.app-shell .progress-wrap{margin-bottom:11px;padding-inline:16px}.app-shell .progress-copy{margin-bottom:var(--space-1);font-size:var(--font-size-meta)}.app-shell .progress{height:4px}.app-shell .onboarding-frame{width:calc(100% - (var(--space-4) * 2))}.app-shell .illustration-panel,.app-shell .step-illustration{min-height:100px;max-height:100px}.app-shell .illustration-heading{top:13px;left:18px;right:48%}.app-shell .illustration-heading span{font-size:var(--font-size-meta-small)}.app-shell .illustration-heading h2{margin-top:3px;font-size:var(--font-size-body);line-height:1.06}.app-shell .scene-art{height:145px;right:1%;bottom:-24px;width:47%;margin-left:0}.app-shell .content-panel{padding:16px 16px 18px}.app-shell .screen-heading{margin-bottom:14px}.app-shell .screen-heading h1,.app-shell .waiting h1{margin-bottom:var(--space-2);font-size:var(--font-size-section-title);line-height:var(--line-height-section-title)}.app-shell .screen-heading>p:last-child,.app-shell .waiting>p{font-size:var(--font-size-body);line-height:var(--line-height-body)}.app-shell .choice-grid{gap:7px}.app-shell .choice-card{min-height:60px;padding:8px 10px;grid-template-columns:40px 1fr 22px;gap:9px}.app-shell .choice-icon{width:40px;height:40px;border-radius:var(--radius-control)}.app-shell .choice-icon svg{width:20px}.app-shell .choice-card strong{font-size:var(--font-size-ui);line-height:1.2}.app-shell .choice-card small{margin-top:1px;font-size:var(--font-size-meta);line-height:1.25}.app-shell .choice-card>i{width:22px;height:22px}.app-shell .form-stack{gap:10px}.app-shell .form-stack label,.app-shell .metadata-grid label{gap:5px}.app-shell input,.app-shell select{height:48px}.app-shell .onboarding-frame[data-screen="2"] .illustration-heading h2{font-size:var(--font-size-body)}.app-shell .onboarding-frame[data-screen="2"] .photo-loader{grid-template-columns:1fr;gap:10px}.app-shell .onboarding-frame[data-screen="2"] .photo-preview{max-width:calc(100% - 18px);border-width:8px;box-shadow:var(--shadow-raised)}.app-shell .onboarding-frame[data-screen="2"] .photo-preview.has-photo{margin:12px auto 16px}.app-shell .onboarding-frame[data-screen="2"] .photo-actions{gap:6px}.app-shell .onboarding-frame[data-screen="2"] .source-button{min-height:72px;padding:7px 4px}.app-shell .onboarding-frame[data-screen="3"] .content-panel{padding:12px 16px 14px}.app-shell .onboarding-frame[data-screen="3"] .screen-heading{margin-bottom:9px}.app-shell .onboarding-frame[data-screen="3"] .screen-heading h1{font-size:var(--font-size-section-title)}.app-shell .onboarding-frame[data-screen="3"] .recognition-summary{min-height:30px;margin:0 0 8px}.app-shell .onboarding-frame[data-screen="3"] .tagged-photo{width:min(100%,var(--photo-compact-width,307px))}.app-shell .onboarding-frame[data-screen="3"] .metadata-grid{grid-template-columns:.9fr 1.1fr;gap:8px;margin-top:9px}.app-shell .onboarding-frame[data-screen="3"] .metadata-grid label{gap:4px;min-width:0}.app-shell .onboarding-frame[data-screen="3"] .metadata-grid label>span{font-size:var(--font-size-meta);white-space:nowrap}.app-shell .onboarding-frame[data-screen="3"] .metadata-grid input{min-width:0;height:44px;padding-inline:10px;font-size:var(--font-size-meta);text-overflow:ellipsis}.app-shell .onboarding-frame[data-screen="4"] .illustration-panel,.app-shell .onboarding-frame[data-screen="4"] .step-illustration{min-height:84px;max-height:84px}.app-shell .onboarding-frame[data-screen="4"] .illustration-heading{top:10px}.app-shell .onboarding-frame[data-screen="4"] .scene-art{height:126px;bottom:-30px}.app-shell .onboarding-frame[data-screen="4"] .content-panel{padding:10px 16px 12px}.app-shell .onboarding-frame[data-screen="4"] .screen-heading{margin-bottom:8px}.app-shell .onboarding-frame[data-screen="4"] .screen-heading h1{margin-bottom:var(--space-1);font-size:var(--font-size-section-title)}.app-shell .onboarding-frame[data-screen="4"] .screen-heading>p:last-child{font-size:var(--font-size-ui);line-height:1.3}.app-shell .onboarding-frame[data-screen="4"] .person-detail-layout{gap:8px}.app-shell .onboarding-frame[data-screen="4"] .portrait-card{min-height:96px}.app-shell .onboarding-frame[data-screen="4"] .portrait-card .face-crop-canvas,.app-shell .onboarding-frame[data-screen="4"] .portrait-card .face-thumb{width:64px;height:64px}.app-shell .onboarding-frame[data-screen="4"] .person-form{gap:7px}.app-shell .onboarding-frame[data-screen="4"] .person-form>label{gap:4px}.app-shell .onboarding-frame[data-screen="4"] .person-form input{height:44px}.app-shell .onboarding-frame[data-screen="4"] .pill-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}.app-shell .onboarding-frame[data-screen="4"] .pill-options button{min-height:44px;padding:var(--space-1);font-size:var(--font-size-meta)}.app-shell .onboarding-frame[data-screen="4"] .relationship-prompt{font-size:var(--font-size-meta-small);line-height:1.25}.app-shell .onboarding-frame[data-screen="4"] .relationship-input-shell{min-height:68px}.app-shell .metadata-grid{margin-top:10px}.app-shell .person-detail-layout{gap:10px}.app-shell .portrait-card{min-height:116px}.app-shell .portrait-card .face-crop-canvas,.app-shell .portrait-card .face-thumb{width:72px;height:72px}.app-shell .portrait-card>.status-pill{padding:4px 8px}.app-shell .person-form{gap:9px}.app-shell .relationship-editor{gap:5px}.app-shell .relationship-input-shell{min-height:76px}.app-shell .ready-card{grid-template-columns:72px minmax(0,1fr);gap:var(--space-2)}.app-shell .ready-photo{width:72px;height:72px}.app-shell .ready-copy h2{font-size:var(--font-size-card-title)}.app-shell .ready-copy p{font-size:var(--font-size-ui)}.app-shell .session-label{font-size:var(--font-size-meta)}.app-shell .action-bar{min-height:62px;padding:7px 12px}.app-shell .back-button,.app-shell .continue-button{min-height:var(--control-height);padding-inline:13px}}@media (max-width:420px) and (max-height:820px){.app-shell .onboarding-frame[data-screen="3"] .metadata-grid{grid-template-columns:1fr;gap:var(--space-3)}}@media (prefers-reduced-motion:reduce){.app-shell *,.app-shell :after,.app-shell :before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}