/* THEIA Touch 32 — 900 × 1600 logical canvas, ~2.26 logical px/mm.
   All changes scoped to this entry. Native portrait panel: 3384 × 6016. */
html[data-profile=touch32]{--touch-surface:rgba(30,28,24,.94);--touch-margin:44px}
html[data-profile=touch32] body.minimal{font-size:24px;line-height:1.4;--content-surface:var(--touch-surface)}
html[data-profile=touch32] .minimal-preview-frame,html[data-profile=touch32] .minimal-preview-frame iframe{width:900px;height:1600px}
html[data-profile=touch32] .minimal-preview-frame{transform-origin:center}
html[data-profile=touch32] body.minimal button,html[data-profile=touch32] body.minimal a.primary{min-width:60px;min-height:60px;padding:14px 22px;font:400 24px/1.25 Arial,sans-serif}
html[data-profile=touch32] body.minimal h2{font:400 32px/1.2 Arial,sans-serif;letter-spacing:0}
html[data-profile=touch32] body.minimal h3{font:400 27px/1.3 Arial,sans-serif}
html[data-profile=touch32] body.minimal .mini-brand{left:44px;top:36px;height:42px;gap:22px;z-index:3}
html[data-profile=touch32] body.minimal .mini-brand>span{font-size:28px}
html[data-profile=touch32] body.minimal .mini-brand small{font-size:13px}
html[data-profile=touch32] body.minimal .mini-brand img{width:100px}
html[data-profile=touch32] body.minimal .mini-brand img.mini-emblem{width:16px;height:16px}
/* Main content begins near the camera, no lower-half scene anchoring. */
html[data-profile=touch32] body.minimal[data-view] #page{left:44px;right:44px;top:132px;bottom:206px;height:auto;max-height:none;padding:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}
html[data-profile=touch32] body.minimal[data-view] .page-heading{position:static;inset:auto;width:auto;height:auto;min-height:0;margin:0 0 26px;padding:0;border:0;background:none;visibility:visible}
html[data-profile=touch32] body.minimal .mini-bottom{left:44px;right:44px;bottom:100px;gap:18px;z-index:10}
html[data-profile=touch32] body.minimal .mini-bottom #voice-button{font-size:22px;min-height:64px;padding:16px 22px;background:var(--touch-surface)}
html[data-profile=touch32] body.minimal .mini-bottom .mini-menu-button,html[data-profile=touch32] body.minimal .mini-bottom .mini-settings-button{font-size:30px;background:var(--touch-surface);border:1px solid var(--line)}
html[data-profile=touch32] body.minimal .mini-privacy{left:44px;bottom:62px;max-width:730px;font-size:18px}
/* A quiet notification is kept below, never across the face or product title. */
html[data-profile=touch32] body.minimal #mini-guide{top:auto;bottom:185px;left:44px;right:44px;max-height:130px;padding:16px 22px;background:var(--touch-surface);z-index:12;overflow:auto}
html[data-profile=touch32] body.minimal #mini-guide small{font-size:14px}
html[data-profile=touch32] body.minimal #mini-guide p{font-size:23px;margin-top:5px;line-height:1.3}
html[data-profile=touch32] body.minimal #tray{top:auto;bottom:340px;right:44px;max-width:65%;z-index:11}
html[data-profile=touch32] body.minimal .tray button{font-size:22px;min-height:60px}
/* Two large frames per page, real pagination retained for agent-visible IDs. */
html[data-profile=touch32] body.minimal .mini-rail{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;width:100%;max-width:none;overflow:visible;justify-content:center}
html[data-profile=touch32] body.minimal .mini-rail[data-count="1"]{grid-template-columns:minmax(0,396px)}
html[data-profile=touch32] body.minimal .mini-card,html[data-profile=touch32] body.minimal[data-view=stylist] .mini-card{width:auto;height:310px;min-width:0;padding:20px;background:var(--touch-surface)}
html[data-profile=touch32] body.minimal .mini-card .product-image,html[data-profile=touch32] body.minimal[data-view=stylist] .mini-card .product-image{height:210px;min-height:0;padding:4px 0}
html[data-profile=touch32] body.minimal .mini-card .product-image img{width:100%;height:100%;object-fit:contain}
html[data-profile=touch32] body.minimal .mini-card-meta h3,html[data-profile=touch32] body.minimal .mini-look-anchors strong{font:400 27px/1.3 Arial,sans-serif;letter-spacing:0}
html[data-profile=touch32] body.minimal .mini-card-meta span{font-size:21px;color:#c6bdac}
html[data-profile=touch32] body.minimal .mini-card-meta button{font-size:32px;padding:8px}
html[data-profile=touch32] body.minimal .mini-pager{font-size:21px;gap:16px;margin:16px 0 24px}
html[data-profile=touch32] body.minimal .mini-pager button{min-height:60px;min-width:64px;font-size:25px}
/* Look analysis precedes its recommendations in reading order. */
html[data-profile=touch32] body.minimal .mini-look-anchors{position:static;inset:auto;width:auto;margin:0 0 26px;padding:0;height:auto;visibility:visible}
html[data-profile=touch32] body.minimal .mini-look-anchors .anchor-stage{height:auto;min-height:150px;padding:22px 26px;background:var(--touch-surface)}
html[data-profile=touch32] body.minimal .mini-look-anchors p{font-size:28px;line-height:1.35;overflow-wrap:anywhere}
html[data-profile=touch32] body.minimal .mini-look-anchors nav{margin:8px 0 0}
html[data-profile=touch32] body.minimal .mini-look-anchors nav span{font-size:21px;min-width:64px}
/* VTO first: face & bust at the very top. Controls and alternatives follow. */
html[data-profile=touch32] body.minimal[data-view=studio] #page{top:110px}
html[data-profile=touch32] body.minimal .studio{height:auto;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:520px auto auto;gap:22px;position:relative}
html[data-profile=touch32] body.minimal .studio>.camera-slot{grid-row:1;grid-column:1;order:0;width:100%;height:520px;min-height:0;flex:none;align-self:stretch;justify-self:stretch;background:rgba(25,24,21,.92);border:1px solid var(--line);overflow:hidden}
html[data-profile=touch32] body.minimal .camera-stage{width:100%;height:100%;max-height:none;border:0;mask:none;-webkit-mask:none}
html[data-profile=touch32] body.minimal .person-cutout{object-fit:contain;object-position:center top}
html[data-profile=touch32] body.minimal .studio>.fitting-controls{grid-row:2;grid-column:1;padding:0}
html[data-profile=touch32] body.minimal .studio>.try-carousel{grid-row:3;grid-column:1;order:0;margin:0;height:auto}
html[data-profile=touch32] body.minimal .studio .try-carousel-track{height:168px;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
html[data-profile=touch32] body.minimal .studio .try-tile{height:168px;padding:12px;gap:10px;background:var(--touch-surface)}
html[data-profile=touch32] body.minimal .studio .try-tile img{width:100%;max-width:290px;height:90px;max-height:90px;object-fit:contain}
html[data-profile=touch32] body.minimal .studio .try-tile strong{font-size:24px;line-height:1.3}
html[data-profile=touch32] body.minimal .mini-fittings-nav{gap:14px;margin-top:12px}
html[data-profile=touch32] body.minimal .mini-fittings-nav span{font-size:20px}
html[data-profile=touch32] body.minimal .mini-fitting-identity{align-items:baseline;gap:18px;margin:0 0 12px;min-height:42px}
html[data-profile=touch32] body.minimal .mini-fitting-identity h2{font-size:32px}
html[data-profile=touch32] body.minimal .mini-fitting-identity>span{font-size:24px}
html[data-profile=touch32] body.minimal .swatches,html[data-profile=touch32] body.minimal .fitting-controls .swatches{gap:12px;flex-wrap:wrap;margin:10px 0 18px}
html[data-profile=touch32] body.minimal .swatch{width:60px;height:60px;min-width:60px;padding:10px;background:var(--touch-surface)}
html[data-profile=touch32] body.minimal .swatch span{width:38px;height:38px}
html[data-profile=touch32] body.minimal .fitting-tools{display:flex;flex-wrap:wrap;gap:14px;margin-top:0}
html[data-profile=touch32] body.minimal .fitting-tools button{font-size:23px;padding:14px 22px;min-height:62px;background:var(--touch-surface)}
html[data-profile=touch32] body.minimal #vto-status{font-size:18px;margin:8px 0}
html[data-profile=touch32] body.minimal .studio[data-details=true]>.camera-slot{width:64%;justify-self:start}
html[data-profile=touch32] body.minimal .studio>.mini-fitting-details{top:0;right:0;width:33%;max-height:520px;padding:20px;overflow:auto;background:var(--touch-surface)}
html[data-profile=touch32] body.minimal .mini-fitting-details h3{font-size:24px}
html[data-profile=touch32] body.minimal .mini-fitting-details dl{gap:14px}
html[data-profile=touch32] body.minimal .mini-fitting-details dt{font-size:18px}
html[data-profile=touch32] body.minimal .mini-fitting-details dd{font-size:23px}
html[data-profile=touch32] body.minimal .mini-fitting-details header button{min-width:60px;height:60px;padding:0}
/* Product and lens identity remain attached to the visual, including confirmation. */
html[data-profile=touch32] body.minimal .mini-detail{padding:24px;background:var(--touch-surface)}
html[data-profile=touch32] body.minimal .detail-visuals,html[data-profile=touch32] body.minimal .detail-model,html[data-profile=touch32] body.minimal .model-poster>img{height:330px;min-height:0}
html[data-profile=touch32] body.minimal .mini-detail-line{font-size:24px;margin:18px 0}
html[data-profile=touch32] body.minimal .mini-detail>.mini-fitting-details{position:static;inset:auto;width:auto;max-height:none;margin-top:22px;padding:20px;background:#161512}
html[data-profile=touch32] body.minimal .mini-detail>.mini-fitting-details dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
html[data-profile=touch32] body.minimal .action-row{gap:14px;margin:24px 0 0;flex-wrap:wrap}
html[data-profile=touch32] body.minimal[data-view=lenses] .mini-pair{height:240px;width:100%;margin:0;display:flex;justify-content:center}
html[data-profile=touch32] body.minimal[data-view=lenses] .mini-pair .detail-model,html[data-profile=touch32] body.minimal[data-view=lenses] .mini-pair .model-poster>img{height:240px;width:100%}
html[data-profile=touch32] body.minimal[data-view=lenses] .mini-pair img{width:75%;height:230px;object-fit:contain}
html[data-profile=touch32] body.minimal[data-view=lenses] .mini-pair-identity{display:flex;align-items:baseline;justify-content:center;gap:18px;padding:14px 20px;margin:10px 0 28px;background:var(--touch-surface)}
html[data-profile=touch32] body.minimal[data-view=lenses] .mini-pair-identity h2{font-size:30px}
html[data-profile=touch32] body.minimal[data-view=lenses] .mini-pair-identity span{font-size:24px}
html[data-profile=touch32] body.minimal .mini-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:24px 0}
html[data-profile=touch32] body.minimal .mini-choices label{min-width:0}
html[data-profile=touch32] body.minimal .mini-choices label>span{min-height:152px;padding:22px;font-size:27px;gap:14px;background:var(--touch-surface)}
html[data-profile=touch32] body.minimal .mini-choices small{font-size:22px}
html[data-profile=touch32] body.minimal .mini-choices svg{width:30px;height:30px}
html[data-profile=touch32] body.minimal .mini-review{position:static;inset:auto;font-size:26px;padding:24px;margin:20px 0;background:var(--touch-surface)}
html[data-profile=touch32] body.minimal .mini-review strong{font-size:34px}
html[data-profile=touch32] body.minimal .mini-note{font-size:20px;line-height:1.5;margin:20px 0;color:#c0b6a4}
/* Appointment: four stores at once; large, legible date/time hit areas. */
html[data-profile=touch32] body.minimal .mini-stores{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
html[data-profile=touch32] body.minimal .mini-stores button{padding:0;background:var(--touch-surface)}
html[data-profile=touch32] body.minimal .mini-stores img{height:175px;opacity:1}
html[data-profile=touch32] body.minimal .mini-stores strong{font-size:26px;padding:18px}
html[data-profile=touch32] body.minimal .mini-store{padding:20px;gap:24px;background:var(--touch-surface)}
html[data-profile=touch32] body.minimal .mini-store img{width:150px;height:150px}
html[data-profile=touch32] body.minimal .mini-store h3{font-size:28px}
html[data-profile=touch32] body.minimal .mini-store small{font-size:21px;line-height:1.4}
html[data-profile=touch32] body.minimal .mini-store button{font-size:22px}
html[data-profile=touch32] body.minimal .mini-appointment-prompt{font-size:26px;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:22px;background:var(--touch-surface);margin:26px 0}
html[data-profile=touch32] body.minimal .mini-date-grid,html[data-profile=touch32] body.minimal .mini-time-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
html[data-profile=touch32] body.minimal .mini-date-grid button,html[data-profile=touch32] body.minimal .mini-time-grid button{font-size:25px;min-height:94px;background:var(--touch-surface);padding:14px}
/* Saved looks and comparisons: two prominent columns, four only when requested. */
html[data-profile=touch32] body.minimal .mini-photos,html[data-profile=touch32] body.minimal .comparison{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
html[data-profile=touch32] body.minimal .capture-photo{height:500px;max-height:500px;aspect-ratio:auto;background:var(--touch-surface)!important}
html[data-profile=touch32] body.minimal .capture-photo img{object-fit:contain;object-position:top}
html[data-profile=touch32] body.minimal .comparison>.card{padding:18px;background:var(--touch-surface)}
html[data-profile=touch32] body.minimal .comparison .product-image{height:245px}
html[data-profile=touch32] body.minimal .comparison .card h3{font-size:27px}
html[data-profile=touch32] body.minimal .comparison .card button{font-size:22px;min-height:60px}
html[data-profile=touch32] body.minimal .comparison-tabs{gap:12px;flex-wrap:wrap;margin:0 0 24px}
html[data-profile=touch32] body.minimal .comparison-tabs button{font-size:22px;min-height:60px;padding:14px}
html[data-profile=touch32] body.minimal .live-vto-mount{height:400px}
html[data-profile=touch32] body.minimal .comparison-live[data-count="4"] .live-vto-mount{height:240px}
html[data-profile=touch32] body.minimal .comparison .capture-photo{height:320px;max-height:320px}
html[data-profile=touch32] body.minimal .comparison .comparison-colours{max-height:none;gap:8px}
html[data-profile=touch32] body.minimal .comparison .comparison-colours .swatch{width:60px;height:60px}
html[data-profile=touch32] body.minimal .comparison .comparison-colours .swatch span{width:38px;height:38px}
html[data-profile=touch32] body.minimal .mini-basket{gap:22px;padding:24px;margin:0 0 22px;background:var(--touch-surface)}
html[data-profile=touch32] body.minimal .mini-basket img{width:220px;height:130px}
html[data-profile=touch32] body.minimal .mini-basket span{font-size:23px;display:block;margin:6px 0}
html[data-profile=touch32] body.minimal .mini-basket button{font-size:22px;min-height:60px}
html[data-profile=touch32] body.minimal .mini-fields{display:grid;grid-template-columns:1fr;gap:24px;margin:26px 0}
html[data-profile=touch32] body.minimal .mini-fields label{font-size:23px;gap:12px}
html[data-profile=touch32] body.minimal input,html[data-profile=touch32] body.minimal select{font-size:26px;min-height:64px;padding:16px}
/* Reachable dialogs; scroll remains available for large text & software keyboards. */
html[data-profile=touch32] body.minimal dialog{width:812px;max-width:calc(100vw - 88px);max-height:1050px;position:fixed;top:175px;bottom:auto;margin:0 auto;padding:30px;overflow:auto;background:rgba(22,21,18,.98);font-size:24px}
html[data-profile=touch32] body.minimal .mini-menu{gap:16px}
html[data-profile=touch32] body.minimal .mini-menu button{min-height:80px;font-size:26px}
html[data-profile=touch32] body.minimal .presence-choice>span{font-size:26px}
html[data-profile=touch32] body.minimal .presence-choice small{font-size:20px}
html[data-profile=touch32] body.minimal .auto-save{font-size:23px;line-height:1.4;margin:24px 0}
html[data-profile=touch32] body.minimal .auto-save input{width:30px;height:30px;min-height:30px}
html[data-profile=touch32] body.minimal .language-setting button{font-size:24px}
html[data-profile=touch32] body.minimal #toast{max-width:790px;font-size:24px;padding:20px;bottom:260px}
html[data-profile=touch32] body.minimal .fitting-loader h3{font-size:30px}
html[data-profile=touch32] body.minimal .fitting-loader p{font-size:22px}
html[data-profile=touch32] body.minimal #mini-celebration .celebration-copy{top:42%;left:44px;right:44px;text-align:center}
html[data-profile=touch32] body.minimal #mini-celebration h2{font-size:46px}
html[data-profile=touch32] body.minimal #mini-celebration h3{font-size:32px}
html[data-profile=touch32] body.minimal #mini-celebration p{font-size:26px}
html[data-profile=touch32] body.minimal #mini-celebration .celebration-actions{bottom:18%;left:44px;right:44px;justify-content:center}
html[data-profile=touch32] body.minimal .touch-demo-portrait{width:100%;height:100%;object-fit:contain;object-position:center top}
html[data-profile=touch32] body.minimal[data-processing=true] #page{pointer-events:none}
@media(prefers-reduced-motion:reduce){html[data-profile=touch32] body.minimal *{animation:none!important;transition:none!important}}
/* Explicitly undo remaining mirror-only alignment rules. */
html[data-profile=touch32] body.minimal .mini-rail[data-count="1"]>.mini-card{grid-column:auto}
html[data-profile=touch32] body.minimal[data-view] .page-heading h2,html[data-profile=touch32] body.minimal[data-view=stylist] .mini-selection-title h2{font-size:32px;line-height:1.25}
html[data-profile=touch32] body.minimal .mini-card-meta{justify-content:space-between}
html[data-profile=touch32] body.minimal .comparison-copy .comparison-specs{display:block;margin-top:10px}
html[data-profile=touch32] body.minimal .comparison-copy .comparison-colour{font-size:22px}
html[data-profile=touch32] body.minimal .comparison-copy .comparison-colour-disc{width:22px;height:22px}
html[data-profile=touch32] body.minimal .comparison-copy .comparison-measurements,html[data-profile=touch32] body.minimal .comparison-copy .comparison-fit{display:none}
html[data-profile=touch32] body.minimal .comparison .comparison-colours{display:flex;flex-wrap:nowrap;overflow-x:auto;max-height:none;padding:8px 0;scrollbar-width:thin}
html[data-profile=touch32] body.minimal .comparison .comparison-colours .swatch{flex:0 0 60px}
html[data-profile=touch32] body.minimal .comparison .card-actions{display:flex;flex-wrap:wrap;gap:10px}
html[data-profile=touch32] body.minimal .comparison .card-top{flex-wrap:wrap;gap:8px}
html[data-profile=touch32] body.minimal .comparison .card-top>span{font-size:22px}
html[data-profile=touch32] body.minimal .small{font-size:20px;line-height:1.5}
html[data-profile=touch32] body.minimal #mini-celebration .celebration-actions{top:auto;bottom:18%}
html[data-profile=touch32] body.minimal #mini-celebration .celebration-copy>small{font-size:18px}
html[data-profile=touch32] body.minimal #mini-celebration .celebration-copy>strong{font-size:32px}
html[data-profile=touch32] body.minimal .touch-checkout-pair{display:flex;align-items:center;gap:26px;background:var(--touch-surface);padding:22px;margin:0 0 26px;border:1px solid var(--line)}
html[data-profile=touch32] body.minimal .touch-checkout-pair img{width:210px;height:110px;object-fit:contain}
html[data-profile=touch32] body.minimal .touch-checkout-pair span{display:block;font-size:24px;color:#c6bdac;margin-top:6px}

/* Shared conversation, independent boutique palette. */
html[data-profile=touch32]{--touch-bg:#000;--touch-secondary:#c6bdac}
html[data-profile=touch32] body.minimal,html[data-profile=touch32] body.minimal #app{background:var(--touch-bg)}
html[data-profile=touch32] .fallback-logo{filter:brightness(0) invert(.88)}
html[data-profile=touch32] .touch-theme-picker h2{font:12px Arial;color:inherit;margin-top:24px}
html[data-profile=touch32] .touch-theme-picker .preview-switch{margin:12px 0}
/* Ink only the transparent introduction. Never filter camera/product pixels or the V2 shader. */
html[data-profile=touch32] body.minimal-preview{--ink:#e3ded2;--muted:#948e83;--line:#b1a79950;--accent:#d2c6af;color-scheme:dark}
