@font-face{font-family:Caslon;src:url('/assets/caslon.ttf')}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden}body{background:#f3f1e8;color:#192c4b;font:17px Arial, sans-serif}button,input,select{font:inherit;color:inherit}button{cursor:pointer;border:0;background:transparent;min-height:44px}button:disabled{opacity:.4;cursor:default}button,a,input{touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #a97846;outline-offset:3px}[hidden]{display:none!important}h1,h2,h3,p{margin:0}h1,h2,h3,.brand{font-family:Caslon,Georgia,serif;font-weight:400}h2{font-size:clamp(30px,3.5vw,52px);line-height:1.05}h3{font-size:28px}p{line-height:1.4}a{color:inherit;text-underline-offset:5px}.small{font-size:14px}.muted,.privacy-line,.local-camera-note{color:#667286}.eyebrow{font-size:11px;letter-spacing:1.8px;text-transform:uppercase}.primary,.secondary,.chip{padding:12px 18px;border:1px solid #b9c5d8;border-radius:3px}.primary{background:#245ab2;color:#fff;border-color:#245ab2}.secondary{background:#f9f8f2}.quiet{text-decoration:underline;text-underline-offset:5px;padding:8px}.icon{min-width:44px;font-size:25px}.chip{padding:7px 13px;min-height:38px;font-size:14px}.chip[aria-pressed=true],.chosen{background:#e1eaf9}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
#app{height:100dvh;display:flex;flex-direction:column;max-width:1200px;margin:auto;padding:0 28px}.topbar{height:64px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #d1d8e1}.brand{font-size:35px;text-decoration:none}.topbar-right{display:flex;gap:12px}.shell{flex:1;min-height:0;display:flex;flex-direction:column}.companion{height:116px;flex-shrink:0;display:grid;grid-template-columns:minmax(0,1fr) 80px minmax(0,1fr);gap:20px;align-items:center;border-bottom:1px solid #d1d8e1;position:relative}.intro h1{font-size:72px;line-height:.9}.intro .eyebrow{margin-bottom:8px}.voice-area{justify-self:end}.voice-area .primary{margin-top:8px;min-height:42px;padding:9px 18px}.voice-status{font-size:10px;color:#6c7890;margin-top:5px}.status-line{font-size:15px}.dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#9aacca;margin-right:5px}.dot.on{background:#245ab2}.conversation{display:none}.orb{--size:72px;width:var(--size);height:var(--size);border-radius:50%;background:radial-gradient(circle at 28% 20%,#f1f5ff 0%,#a8c5f0 30%,#437dcc 67%,#183c82);box-shadow:0 0 0 6px #e1e9f5,0 8px 22px #254a8820;position:relative;overflow:hidden}.orb:after{content:'';position:absolute;inset:15% -35%;border:1px solid #f1f5ff9c;border-radius:50%;transform:rotate(25deg);box-shadow:0 10px 0 #e4eeff3c,0 20px 0 #e4eeff3c}.orb.speaking{animation:speaking 1s ease-in-out infinite}.orb.thinking:after{animation:orbit 3s linear infinite}.workspace{flex:1;min-height:0;display:flex;flex-direction:column;padding-top:16px;position:relative}#page{flex:1;min-height:0;display:flex;flex-direction:column;gap:14px;animation:arrive .25s ease-out}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-shrink:0}.page-heading .eyebrow{margin-bottom:7px}.page-heading .muted{margin-top:7px}.nav{display:flex;gap:4px;justify-content:space-between;flex-shrink:0;border-top:1px solid #c9d1df;margin-top:14px;height:54px}.nav button{font-size:13px;padding:8px 4px;border-bottom:3px solid transparent;white-space:nowrap}.nav button.active{border-color:#245ab2}.composer{flex-shrink:0;min-height:32px;position:relative}.composer-inner{display:flex;align-items:center;justify-content:space-between;gap:14px}.mode-label{font-size:10px;color:#65748b}.keyboard summary{font-size:12px;cursor:pointer;padding:8px}.keyboard[open]{position:absolute;bottom:0;background:#f3f1e8;padding:12px;width:100%;z-index:10;box-shadow:0 -5px 20px #0001}.keyboard form{display:flex;gap:8px}.keyboard input{flex:1}.tray{display:flex;align-items:center;gap:9px;font-size:12px}.tray-thumbs{display:flex}.tray-thumbs img{width:36px;height:26px;object-fit:contain}.tray .secondary{padding:5px 10px;min-height:30px}.tray .icon{min-height:30px}.filters,.action-row,.step-footer{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.page-turn{display:flex;justify-content:space-between;align-items:center;flex-shrink:0;font-size:14px}.grid,.comparison{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;flex:1;min-height:0;grid-auto-rows:minmax(0,1fr)}.grid[data-count="1"]{grid-template-columns:1fr}.card{min-width:0;min-height:0;display:flex;flex-direction:column;gap:6px;background:#faf9f4;border:1px solid #d6dde8;padding:12px}.product-image,.capture-photo{flex:1;min-height:0;width:100%;position:relative;display:block;background:#f0f1f3;overflow:hidden;padding:0}.product-image img,.capture-photo img{width:100%;height:100%;object-fit:contain;display:block}.product-image img{mix-blend-mode:multiply;opacity:0;transition:opacity .25s}.product-image.loaded img{opacity:1}.product-image:not(.loaded):after{content:'';position:absolute;inset:0;background:linear-gradient(100deg,transparent,#fff5,transparent);animation:shimmer 1.6s infinite}.card-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.card-top h3{font-size:clamp(23px,3vw,34px);white-space:nowrap}.card-top .price{font-size:17px;white-space:nowrap}.card>p{font-size:13px;color:#627289}.card-actions{display:flex;justify-content:space-between;gap:4px;border-top:1px solid #dde2eb;margin-top:2px}.card-actions button{font-size:12px;padding:5px;min-height:38px}.vto-label{font-size:10px;letter-spacing:.2px;color:#245ab2}.capture-label{position:absolute;left:7px;bottom:7px;font-size:9px;padding:5px;background:#f9f8f0de}.capture-check{position:absolute;right:7px;top:7px;background:#f9f8f0;border:1px solid #245ab2;padding:8px}.capture-check.active{background:#245ab2;color:white}.comparison[data-count="3"],.comparison[data-count="4"]{grid-template-rows:repeat(2,minmax(0,1fr))}.photo-gallery .card{gap:4px}.scene-detail{flex:1;min-height:0;display:flex;flex-direction:column;gap:20px}.scene-detail .product-image{flex:1}.detail-copy{display:flex;flex-direction:column;gap:12px;font-size:16px;flex-shrink:0}.detail-facts{display:flex;gap:18px;align-items:center}.swatches{display:flex;gap:10px}.swatch{width:44px;height:44px;border:1px solid transparent;border-radius:50%;padding:6px}.swatch.active{border-color:#245ab2}.swatch span{display:block;width:100%;height:100%;border-radius:50%;background-size:cover}.mirror-welcome{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:24px}.mirror-welcome h2{font-size:clamp(50px,8vw,104px);line-height:.98}.mirror-welcome>p{max-width:430px}.welcome-actions{display:flex;gap:12px}.privacy-line,.local-camera-note{font-size:12px}.empty{flex:1;display:flex;align-items:center;justify-content:center;text-align:center;gap:22px;flex-direction:column}
.studio{flex:1;min-height:0;display:flex;flex-direction:column;gap:10px}.camera-slot{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;background:#e8edf5}.camera-stage{position:relative;overflow:hidden;background:#e8edf5;flex-shrink:0;--shopar-ar-loading-bar-fg:#245ab2;--shopar-ar-loading-background:#e8edf5}.camera-stage video{width:100%;height:100%;object-fit:contain}.camera-source{position:fixed;left:-2px;bottom:-2px;width:2px;height:2px;opacity:.01;pointer-events:none}.ar-surface{position:relative;width:100%;height:100%;overflow:hidden}.ar-surface canvas{max-width:100%;max-height:100%;object-fit:contain}.placeholder{height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:25px}.fitting-controls{flex-shrink:0;display:flex;flex-direction:column;gap:7px}.vto-colours{display:flex;gap:6px;justify-content:center;flex-wrap:wrap}.fitting-tools{display:flex;gap:7px;justify-content:center;align-items:center}.fitting-tools button{font-size:12px;padding:8px}.fitting-controls>p{text-align:center;font-size:12px}.saved-look-badge{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);background:#f5f4ebeb;border-radius:3px;padding:8px 12px;white-space:nowrap;font-size:12px;max-width:95%}.saved-look-badge:empty{display:none}.try-carousel{flex-shrink:0;border-top:1px solid #ccd5e3;padding-top:5px}.try-carousel-heading{display:flex;justify-content:space-between;align-items:center;height:35px}.try-carousel-heading .icon{min-height:32px}.try-carousel-track{display:flex;gap:10px}.try-tile{display:flex;align-items:center;flex:1;min-width:0;text-align:left;border:1px solid #cbd5e6;padding:8px;gap:8px;background:#faf9f2;height:65px}.try-tile img{width:45%;height:45px;object-fit:contain;mix-blend-mode:multiply}.try-tile strong,.try-tile small{display:block;font-size:13px}.try-tile small{font-size:11px;margin-top:4px}.make-pair strong{margin-top:6px}.style-workspace{flex:1;min-height:0;display:flex;flex-direction:column;gap:18px}.style-panel{display:flex;flex-direction:column;gap:12px;flex-shrink:0}.style-summary{font-size:15px;background:#e3eaf7;padding:14px}.quiz{flex:1;min-height:0;display:flex;flex-direction:column;justify-content:center;gap:26px}fieldset{border:0;padding:0;margin:0}.options,.lens-options{display:grid;grid-template-columns:1fr 1fr;gap:16px}.options label,.lens-options label{display:flex;align-items:center;gap:14px;min-height:90px;border:1px solid #c4cedf;padding:22px;background:#faf9f2;cursor:pointer}.options label:has(input:checked),.lens-options label:has(input:checked){background:#dde7f7;border-color:#245ab2}input[type=radio],input[type=checkbox]{accent-color:#245ab2;width:22px;height:22px;flex-shrink:0}.lens-options strong,.lens-options small{display:block}.lens-options small{margin-top:9px;font-size:13px;color:#667286}.step-footer{justify-content:space-between}.handoff-form{display:flex;flex-direction:column;gap:20px;justify-content:center;flex:1}.handoff-form>label{display:flex;flex-direction:column;gap:8px}.handoff-form fieldset{display:flex;flex-direction:column;gap:20px}.handoff-form fieldset label{display:flex;align-items:center;gap:14px;padding:18px;background:#faf9f2;border:1px solid #c4cedf}input:not([type=radio]):not([type=checkbox]),select{padding:14px;border:1px solid #bac8de;background:#faf9f2;border-radius:2px;min-height:48px}.draft-notice{font-size:12px;color:#687791}.basket-list{flex:1;min-height:0;display:flex;flex-direction:column;justify-content:center}.basket-item{display:flex;align-items:center;gap:18px;padding:16px 0;border-bottom:1px solid #ccd5e3;flex:1;min-height:0}.basket-item img{width:24%;height:100%;max-height:130px;object-fit:contain;mix-blend-mode:multiply}.basket-item>div{flex:1}.basket-item p{font-size:14px;margin-top:8px}.basket-item h3{font-size:30px}
#suggestion:empty{display:none}#suggestion{position:absolute;bottom:68px;left:0;right:0;z-index:9}.suggestion{display:flex;align-items:center;gap:12px;padding:12px 18px;background:#e0e9f8;box-shadow:0 8px 30px #253d7220;border:1px solid #b8c8e1;border-radius:5px;font-size:14px}.suggestion p{flex:1}.fitting-loader{position:absolute;inset:0;z-index:5;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#f1efe5;transition:opacity .25s;pointer-events:none}.fitting-loader.leaving{opacity:0}.loader-art{position:relative;width:100%;height:55%}.loader-art>img{position:absolute;width:90%;height:100%;left:5%;object-fit:contain;mix-blend-mode:multiply;transition:opacity .3s}.loader-art>img.replaced{opacity:0}.loader-scene{position:absolute;inset:0;opacity:0;transition:opacity .3s}.loader-scene.ready{opacity:1}.loader-scene iframe{width:100%;height:100%;border:0;mix-blend-mode:multiply}.fitting-loader h3{font-size:35px;margin-top:8px}.fitting-loader p{font-size:12px;margin-top:12px;color:#697e9c;text-align:center}.loader-line{height:2px;background:#c8d1e4;width:100px;margin-top:25px;overflow:hidden}.loader-line:after{content:'';display:block;width:50%;height:100%;background:#3768bd;animation:shimmer 1.8s infinite}.camera-note{position:absolute;bottom:10px;padding:12px;background:#f5f4ebed;font-size:13px}.counter{position:absolute;inset:0;display:grid;place-items:center;font-size:100px;color:white}dialog{background:#f7f6ef;color:#192c4b;border:1px solid #bfcbe0;border-radius:6px;padding:28px;width:min(700px,92vw);max-height:88dvh;overflow:auto}dialog::backdrop{background:#253c6290}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}dialog>p{margin:18px 0}dialog>.product-image,dialog>.capture-photo{height:55dvh}dialog .auto-save{display:flex;align-items:center;gap:12px;margin:18px 0}dialog .settings-label{display:block;margin:20px 0 10px}.connection-row{display:flex;justify-content:space-between;gap:20px;padding:17px 0;border-bottom:1px solid #d0d8e7;font-size:13px}.connection-row strong{text-align:right}#toast{position:fixed;bottom:60px;left:50%;transform:translate(-50%,20px);background:#192c4b;color:white;padding:16px 25px;border-radius:4px;z-index:30;opacity:0;pointer-events:none;max-width:90vw;transition:.2s}#toast.show{opacity:1;transform:translate(-50%,0)}.access{margin:auto;max-width:600px;padding:40px}.sample-portrait{background-image:url('/assets/try-on-sample-grid.png');background-size:300% 300%;background-position:center var(--row)}
@keyframes speaking{50%{transform:scale(1.09);box-shadow:0 0 0 10px #d7e2f7,0 0 30px #467dbd30}}@keyframes orbit{to{transform:rotate(385deg)}}@keyframes shimmer{from{transform:translateX(-100%)}to{transform:translateX(200%)}}@keyframes arrive{from{opacity:.4;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@media(min-aspect-ratio:6/5){.scene-detail{flex-direction:row}.scene-detail>.product-image{flex:1}.detail-copy{flex:1;justify-content:center}.style-workspace{flex-direction:row}.style-panel{flex:1;justify-content:center}.style-workspace .camera-slot{flex:1}.mirror-welcome{gap:15px}.mirror-welcome h2{font-size:68px}.companion{height:95px}.intro h1{font-size:62px}.studio .try-carousel{display:none}}
@media(max-height:850px){#app{padding:0 20px}.topbar{height:50px}.brand{font-size:29px}.companion{height:92px}.intro h1{font-size:57px}.companion .eyebrow{font-size:9px}.orb{--size:57px}.workspace{padding-top:12px}#page{gap:10px}h2{font-size:32px}.nav{height:46px;margin-top:10px}.nav button{font-size:12px}.card{padding:10px}.card h3{font-size:26px}.comparison .card{gap:3px}.comparison .card-actions button{min-height:30px}.comparison .card h3{font-size:23px}.try-tile{height:48px}.try-carousel-heading{height:28px}.mirror-welcome{gap:14px}.mirror-welcome h2{font-size:58px}.options label,.lens-options label{min-height:75px;padding:16px}.handoff-form{gap:13px}.style-panel{gap:8px}.style-panel h3{font-size:25px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
.camera-source.camera-source-mounted{position:absolute;inset:0;width:100%;height:100%;opacity:1;object-fit:contain;transform:scaleX(-1);z-index:0}

/* Explicit visit lifecycle and mirror-sized product stage. */
body[data-visit=idle] #nav,body[data-visit=idle] .composer,body[data-visit=idle] [data-action=end]{visibility:hidden;pointer-events:none}
.detail-visuals{flex:1;min-height:0;display:grid;grid-template-rows:minmax(100px,.65fr) minmax(150px,1fr);gap:14px}
.detail-visuals:not(:has(.detail-model)){grid-template-rows:1fr}
.detail-model{position:relative;min-height:0;background:radial-gradient(ellipse at 50% 45%,#fcfaf2,#e6eaf2);display:flex;flex-direction:column;text-align:center;overflow:hidden;padding:12px}
.model-mount{position:relative;flex:1;min-height:0}.detail-model small{font-size:11px;color:#69768a}.detail-model iframe{mix-blend-mode:multiply}
.loader-art{height:74%;width:116%;max-width:none}.fitting-loader{background:radial-gradient(ellipse at 45% 38%,#fcfaf2,#e7ebf3)}.loader-scene{inset:-8% 0}.fitting-loader h3{font-size:clamp(32px,5vw,54px)}.fitting-loader p{margin-top:7px}.loader-line{margin-top:15px}
.studio{display:grid;grid-template-columns:minmax(0,1fr) 152px;grid-template-rows:minmax(0,1fr) auto;gap:12px}.studio>.camera-slot{grid-column:1;grid-row:1}.studio>.fitting-controls{grid-column:1/-1;grid-row:2}.studio>.try-carousel{grid-column:2;grid-row:1;border-top:0;padding:0;display:flex;flex-direction:column;min-height:0}.studio .try-carousel-heading{height:auto;display:flex;flex-direction:column;gap:5px;flex-shrink:0}.studio .try-carousel-track{display:flex;flex:1;min-height:0;flex-direction:column;gap:10px}.studio .try-tile{height:auto;min-height:65px;flex-direction:column;justify-content:center;text-align:center;padding:9px}.studio .try-tile img{width:100%;height:60%;max-height:90px}.studio .try-tile.make-pair{flex:0;min-height:70px}.studio .try-tile strong{font-size:17px}.studio .try-tile small{font-size:12px}
.saved-look-thumb{padding:0!important;display:flex;gap:7px;align-items:center;font-size:10px!important}.saved-look-thumb img{width:42px;height:50px;object-fit:cover;border:1px solid #245ab2}.saved-look-badge{white-space:normal;text-align:center;width:max-content}
@media(min-aspect-ratio:6/5){.detail-visuals{flex:1.2}.detail-copy{flex:1}.studio{grid-template-columns:minmax(0,1fr) 180px}.studio .try-tile{flex-direction:row;min-height:42px}.studio .try-tile img{width:45%;height:45px}.studio .try-tile strong{font-size:14px}.studio .try-tile.make-pair{min-height:40px}}
@media(max-height:850px){.detail-copy{gap:8px;font-size:14px}.detail-visuals{grid-template-rows:minmax(60px,.4fr) minmax(100px,1fr)}.studio .try-carousel-track{gap:6px}.studio .try-tile.make-pair{min-height:36px}.studio .try-tile strong{font-size:13px}.studio .try-carousel-heading .eyebrow{font-size:9px}}
/* Suggestions occupy their own row so fitting controls remain touchable. */
#suggestion{position:relative;inset:auto;z-index:1;flex-shrink:0;margin-bottom:10px}
#suggestion:empty{margin:0}
.suggestion{box-shadow:none;padding:8px 12px}
/* Styling uses the visit camera in the background; every recommendation explains itself. */
.style-thinking{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:20px}.style-thinking h3{font-size:clamp(30px,4vw,48px)}.style-thinking>p{max-width:420px;color:#667286}.style-halo{width:90px;height:90px;border-radius:50%;background:radial-gradient(circle at 30% 25%,#eef3ff,#9ebae4 40%,#245ab2);box-shadow:0 0 0 14px #dce4f780;animation:speaking 3s ease-in-out infinite}.style-skeletons{width:min(640px,95%);display:flex;gap:15px;margin-top:16px}.style-skeletons span{height:90px;flex:1;background:linear-gradient(110deg,#e4e9f3 20%,#f6f5ed 45%,#e4e9f3 70%);background-size:250% 100%;animation:style-shimmer 2s ease-in-out infinite;border:1px solid #d5deed}
.style-results{flex:1;min-height:0;display:flex;flex-direction:column;gap:12px}.style-results>.style-summary{flex-shrink:0;font-size:14px;padding:12px;line-height:1.4}.style-recommendations{flex:1;min-height:0;display:grid;grid-auto-rows:minmax(0,1fr);gap:12px}.style-pair{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);align-items:stretch;gap:18px;min-height:0}.style-pair>.product-image{height:100%;min-height:0;aspect-ratio:auto}.style-pair-copy{display:flex;flex-direction:column;gap:8px;justify-content:center;min-width:0}.style-pair .card-top h3{font-size:clamp(25px,3.8vw,38px)}.style-pair .card-top>span{font-size:16px}.style-reason{font-size:15px;line-height:1.45}.style-pair .card-actions{margin-top:5px;flex-wrap:wrap}.style-pair .card-actions button{min-height:44px;font-size:13px}.style-pair .small{font-size:12px}
@keyframes style-shimmer{to{background-position:-250% 0}}
@media(min-aspect-ratio:6/5){.style-recommendations{grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr)}.style-pair{display:flex;flex-direction:column;gap:8px}.style-pair>.product-image{flex:1;min-height:50px}.style-pair-copy{flex-shrink:0}.style-reason{font-size:13px}.style-pair .card-top h3{font-size:27px}.style-pair-copy{gap:5px}.style-pair .card-actions{gap:5px}.style-pair .card-actions button{font-size:12px}}
@media(prefers-reduced-motion:reduce){.style-halo,.style-skeletons span{animation:none}}
.comparison-advice{flex-shrink:0;padding:12px 16px;background:#e3eaf7;font-size:14px;line-height:1.4}

/* Packaging blue: fine crossed grain, concentrated on branded surfaces. */
:root{--brand-blue:#245ab2;--brand-ink:#192c4b;--paper:#f3f1e8}
.primary{background-color:var(--brand-blue);background-image:repeating-linear-gradient(35deg,transparent 0 2px,#ffffff08 2px 3px),repeating-linear-gradient(125deg,transparent 0 3px,#102d6812 3px 4px)}
.brand img{display:block;width:192px;height:auto;max-height:40px}
.brand-stamp{width:clamp(64px,10vh,108px);height:clamp(64px,10vh,108px);opacity:.85}
.orb{background:radial-gradient(circle at 28% 20%,#f1f6ff 0%,#9ebfec 27%,#396fc0 64%,#173b80)}
.frame-traits{display:flex;gap:8px;flex-wrap:wrap;text-transform:capitalize}.frame-traits span{padding:7px 12px;background:#e4ebf6;border:1px solid #d2ddec;font-size:14px}
.detail-copy{gap:14px}.detail-facts{font-size:20px}.frame-dimensions{font-size:13px}
.swatches{flex-wrap:wrap;gap:8px}.swatch{width:54px;height:54px;padding:6px;flex-shrink:0}.swatch span{box-shadow:inset 0 0 0 1px #192c4b20}.swatch.active{border:2px solid var(--brand-blue)}
.card-swatches{display:flex;gap:0;flex-shrink:0;justify-content:flex-start}.card-swatches .swatch{width:38px;height:44px;padding:7px 5px}.card-swatches .swatch.active{border:0}.card-swatches .swatch.active span{outline:2px solid var(--brand-blue);outline-offset:3px}
.colour-choice{display:flex;flex-direction:column;align-items:center;gap:5px;min-width:60px;padding:4px 7px;font-size:11px}.colour-disc{display:block;width:42px;height:42px;border-radius:50%;background-size:cover;background-position:center;box-shadow:inset 0 0 0 1px #192c4b30}.colour-choice.active .colour-disc{outline:2px solid var(--brand-blue);outline-offset:3px}.colour-choice.active{font-weight:bold}
/* SDK exposes these CSS variables. Keep its camera canvas and progress events intact. */
.camera-stage{--shopar-ar-loading-container-display:none;--shopar-ar-loading-bar-height:0px;--shopar-ar-loading-bar-width:0px;--shopar-ar-loading-bar-fg:transparent;--shopar-ar-loading-bar-bg:transparent;--shopar-ar-loading-container-bg:transparent;--shopar-ar-loading-container-gap:0px}
.loader-line{display:none}
@media(max-height:850px){.brand img{width:160px}.brand-stamp{width:58px;height:58px}.mirror-welcome{gap:12px}.mirror-welcome h2{font-size:50px}.card{gap:3px}.card-swatches .swatch{width:34px;height:44px;padding:9px 5px}.colour-disc{width:34px;height:34px}.colour-choice{min-width:52px;font-size:10px}.detail-copy{gap:8px}.swatch{width:48px;height:48px}.frame-traits span{padding:5px 8px;font-size:12px}}

.more-colours{min-width:40px;font-size:12px;padding:0 4px}

/* Real-time emblem replaces the legacy CSS sphere; dimensions remain in the companion grid. */
#thea-orb.orb{justify-self:center;background:none;box-shadow:none;border-radius:0;overflow:visible;animation:none;transform:scale(1.45)}
#thea-orb.orb::after{content:none;animation:none}

/* One persistent orb: a reserved scene slot or the precisely centred navigation dock. */
#orb-dock{grid-column:2;grid-row:1;width:80px;height:100%;display:grid;place-items:center;justify-self:center}
.companion>.intro{grid-column:1;grid-row:1}.companion>.voice-area{grid-column:3;grid-row:1}
.main-orb-slot{position:relative;flex-shrink:0;width:clamp(64px,10vh,108px);height:clamp(64px,10vh,108px)}
.style-thinking .main-orb-slot{width:112px;height:112px}
#thea-orb[data-placement=main]{position:absolute;width:160%;height:160%;left:50%;top:50%;transform:translate(-50%,-50%)}
@media(max-height:850px){.mirror-welcome .main-orb-slot{width:58px;height:58px}.style-thinking .main-orb-slot{width:90px;height:90px}}

/* Only the native GLES layer makes the existing homepage transparent. */
html.native-live-home,html.native-live-home body{background:transparent}
#mirror-live-background{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}
body:has(#mirror-live-background) #app{position:relative;z-index:1}
/* Mirror edit: eight models, two columns, no page turn within the edit. */
.scene-grid[data-count="5"],.scene-grid[data-count="6"],.scene-grid[data-count="7"],.scene-grid[data-count="8"]{gap:10px}
.scene-grid:is([data-count="5"],[data-count="6"],[data-count="7"],[data-count="8"]) .card{display:grid;grid-template-columns:42% minmax(0,1fr);grid-template-rows:minmax(25px,1fr) 22px 38px 40px;gap:2px 9px;padding:8px}
.scene-grid:is([data-count="5"],[data-count="6"],[data-count="7"],[data-count="8"]) .product-image{grid-column:1;grid-row:1/4;height:100%}
.scene-grid:is([data-count="5"],[data-count="6"],[data-count="7"],[data-count="8"]) .card-top{grid-column:2;display:block;align-self:end}.scene-grid:is([data-count="5"],[data-count="6"],[data-count="7"],[data-count="8"]) .card-top h3{font-size:25px;white-space:normal;line-height:1}.scene-grid:is([data-count="5"],[data-count="6"],[data-count="7"],[data-count="8"]) .card-top .price{font-size:13px}.scene-grid:is([data-count="5"],[data-count="6"],[data-count="7"],[data-count="8"]) .card>p{grid-column:2;font-size:11px}.scene-grid:is([data-count="5"],[data-count="6"],[data-count="7"],[data-count="8"]) .card-swatches{grid-column:2;overflow:hidden;gap:0}.scene-grid:is([data-count="5"],[data-count="6"],[data-count="7"],[data-count="8"]) .card-swatches .swatch{width:27px;height:36px;padding:8px 4px}.scene-grid:is([data-count="5"],[data-count="6"],[data-count="7"],[data-count="8"]) .vto-label{display:none}.scene-grid:is([data-count="5"],[data-count="6"],[data-count="7"],[data-count="8"]) .card-actions{grid-column:1/-1;grid-row:4}.scene-grid:is([data-count="5"],[data-count="6"],[data-count="7"],[data-count="8"]) .card-actions button{font-size:11px;min-height:38px}
/* One product stage: poster during preparation, then the interactive 3D frame. */
.detail-visuals,.detail-visuals:not(:has(.detail-model)){grid-template-rows:minmax(0,1fr)}
.detail-model{padding:14px}.model-poster{position:absolute;inset:0;display:flex;flex-direction:column;transition:opacity .5s ease;pointer-events:none}.model-poster>.product-image{flex:1}.model-poster .product-image img{opacity:1}.model-loading{font-size:13px;padding:14px;color:#476387}.model-mount[data-ready=true] .model-poster{opacity:0}.model-mount iframe{transition:opacity .5s ease}.model-loading:before{content:'';display:inline-block;vertical-align:middle;width:8px;height:8px;margin-right:9px;border-radius:50%;background:#245ab2;animation:speaking 1.8s ease-in-out infinite}.model-mount[data-failed=true] .model-loading:before{display:none}
.fitting-loader .loader-art img{animation:frame-float 3s ease-in-out infinite;transition:opacity .45s ease}.fitting-loader .loader-scene{transition:opacity .45s ease}.fitting-loader p:after{content:' · Preparing your try-on';display:block;font-size:13px;margin-top:10px;color:#627289}.fitting-loader.leaving{pointer-events:none}
@keyframes frame-float{50%{transform:translateY(-5px) scale(1.025)}}
/* The chosen pair anchors every step; options stay close to it. */
.lens-journey,.pair-basket{display:flex;flex-direction:column;gap:22px;min-height:0;flex:1}.lens-journey{justify-content:flex-start}.pair-summary{display:flex;align-items:center;gap:25px;background:#e8ecf2;padding:20px;min-height:140px;max-height:260px;flex:1}.pair-summary>img{width:54%;height:100%;max-height:220px;object-fit:contain;mix-blend-mode:multiply}.pair-summary h3{font-size:40px;margin:8px 0}.pair-summary p{margin-top:7px}.lens-journey legend{margin-bottom:12px}.lens-options{gap:12px}.lens-options label{position:relative;padding:18px 15px;gap:12px;min-height:116px}.choice-icon{width:38px;height:38px;flex-shrink:0;color:#245ab2}.lens-options input{position:absolute;right:12px;top:12px;width:18px;height:18px}.lens-options strong{padding-right:20px;font-size:16px}.lens-options small{margin-top:5px}.lens-price{display:block;margin-top:10px;font-size:20px}.lens-journey .step-footer{padding-top:6px}.lens-journey .step-footer p{max-width:270px;line-height:1.4}
.pair-basket{justify-content:flex-start}.basket-list{flex:0 1 auto;justify-content:flex-start;gap:12px}.basket-item{flex:0 0 auto;min-height:160px;padding:18px;background:#faf9f4;border:1px solid #ccd5e3}.basket-item img{width:38%;height:150px;max-height:180px}.basket-item h3{font-size:37px}.basket-item .quiet{font-size:13px;min-height:38px}.pair-next{display:flex;flex-direction:column;gap:18px;padding:24px;background:#e7edf6;border:1px solid #d0dbea}.next-options{display:grid;grid-template-columns:1fr 1fr;gap:12px}.next-options button{display:flex;text-align:left;align-items:center;gap:10px;padding:16px;background:#faf9f4;border:1px solid #c4cedf}.next-options strong,.next-options small{display:block}.next-options small{font-size:12px;margin-top:7px;line-height:1.4}.next-options button>span:last-child{margin-left:auto}.pair-next>.primary{align-self:flex-start}
.handoff-form{justify-content:flex-start;gap:22px;padding:24px;background:#faf9f4;border:1px solid #d1dbe8;flex:0 1 auto}.handoff-form label{display:flex;flex-direction:column;gap:8px;font-size:14px;min-width:0}.booking-fields,.contact-fields{display:grid;grid-template-columns:1fr 1fr;gap:18px}.booking-fields input,.contact-fields input,.booking-fields select{width:100%;min-width:0}.booking-intro{display:flex;align-items:center;gap:18px;border-bottom:1px solid #d1dbe8;padding-bottom:20px}.booking-intro h3{font-size:32px}.booking-intro p{margin-top:6px;font-size:14px}.booking-intro .choice-icon{width:52px;height:52px}.handoff-form .prescription-options label{position:relative;display:flex;flex-direction:row;align-items:center;gap:20px;min-height:110px;padding:20px}.prescription-options input{position:absolute;right:18px}.prescription-options strong,.prescription-options small{display:block;padding-right:25px}.prescription-options strong{font-size:20px}.prescription-options small{font-size:14px;margin-top:8px;color:#667286}.prescription-options label:has(:checked){background:#e3ebf8;border-color:#245ab2}
.style-recommendations:is([data-count="4"],[data-count="5"],[data-count="6"],[data-count="7"],[data-count="8"]){grid-template-columns:1fr 1fr;grid-auto-flow:row;grid-template-rows:none}.style-recommendations:is([data-count="4"],[data-count="5"],[data-count="6"],[data-count="7"],[data-count="8"]) .style-pair{display:grid;grid-template-columns:38% minmax(0,1fr);gap:9px;padding:8px}.style-recommendations:is([data-count="4"],[data-count="5"],[data-count="6"],[data-count="7"],[data-count="8"]) .card-top{display:block}.style-recommendations:is([data-count="4"],[data-count="5"],[data-count="6"],[data-count="7"],[data-count="8"]) h3{font-size:25px}.style-recommendations:is([data-count="4"],[data-count="5"],[data-count="6"],[data-count="7"],[data-count="8"]) .style-reason{font-size:12px;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.style-recommendations:is([data-count="4"],[data-count="5"],[data-count="6"],[data-count="7"],[data-count="8"]) .style-pair-copy{gap:4px}.style-recommendations:is([data-count="4"],[data-count="5"],[data-count="6"],[data-count="7"],[data-count="8"]) .card-actions button{font-size:11px;min-height:36px}
@media(max-height:850px){.pair-summary{max-height:125px;min-height:90px;padding:12px}.pair-summary>img{max-height:115px}.pair-summary h3{font-size:28px}.lens-options label{min-height:88px;padding:10px}.lens-journey,.pair-basket{gap:12px}.lens-price{margin-top:5px;font-size:17px}.basket-item{min-height:120px;padding:12px}.basket-item img{height:110px}.pair-next{padding:16px;gap:12px}.handoff-form{padding:16px;gap:14px}.handoff-form .prescription-options label{min-height:85px;padding:12px}.booking-intro{padding-bottom:10px}.booking-fields,.contact-fields{gap:12px}}
@media(prefers-reduced-motion:reduce){.fitting-loader .loader-art img,.model-loading:before{animation:none}.model-mount iframe,.model-poster{transition:none}}
.card-swatches .swatch span{height:auto;aspect-ratio:1}
/* Stable welcome geometry across voice animation, presence and media readiness. */
.mirror-welcome #arrival-message{height:3em;min-height:3em;display:flex;align-items:center;justify-content:center;line-height:1.5}
.mirror-welcome #camera-ready{height:3em;min-height:3em;display:flex;align-items:center;justify-content:center;line-height:1.5}
.mirror-welcome .main-orb-slot{margin-block:clamp(18px,3vh,33px)}
.status-line{min-height:2.4em;line-height:1.2;display:flex;align-items:center}
.booking-steps{display:flex;gap:24px;border-bottom:1px solid #c6d1de;padding:4px 0 15px;font-size:13px;color:#728099;flex-shrink:0}
.booking-steps b{font-weight:400;margin-right:8px}.booking-steps .current{color:#155bad}.booking-lead{font-size:17px;flex-shrink:0}
.store-grid{flex:1;min-height:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(4,minmax(0,1fr));gap:12px}
.store-card{padding:0;position:relative;overflow:hidden;background:#203d59;text-align:left;color:white;isolation:isolate;border:1px solid #a8b8c9;min-height:0}
.store-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s ease;z-index:-2}
.store-card:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#081f3500 5%,#081f3550 35%,#071c35ed 100%);z-index:-1}
.store-card:hover img,.store-card:focus-visible img{transform:scale(1.05)}
.store-caption{position:absolute;left:16px;right:26px;bottom:13px;display:flex;flex-direction:column;gap:4px}
.store-caption strong{font-family:Caslon,Georgia,serif;font-size:25px;line-height:1.08}.store-caption small{font-size:10px;letter-spacing:1.4px;text-transform:uppercase}.store-caption>span{font-size:11px;line-height:1.3}
.store-arrow{position:absolute;right:14px;top:12px;font-size:21px}.booking-footnote{font-size:12px;color:#64758b;line-height:1.4;flex-shrink:0}
.booking-plan{display:flex;flex-direction:column;gap:25px;flex:1;min-height:0}.booking-store{display:flex;flex-direction:column;gap:20px;flex:1;min-height:0}.booking-store>img{width:100%;height:clamp(120px,25vh,340px);min-height:0;object-fit:cover;flex:1}.booking-store h3{font-size:36px;margin:7px 0}.booking-store p{font-size:16px;margin-bottom:12px}.booking-question{display:flex;gap:20px;align-items:center}.booking-question h3{font-size:30px}.booking-question p{margin-top:8px}.booking-preferences{display:flex;flex-direction:column;gap:20px}.booking-preferences .booking-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}.booking-fields label{display:flex;flex-direction:column;gap:10px}.booking-fields input{min-height:56px;font-size:19px}.booking-summary{display:flex;flex-direction:column;gap:12px}.booking-summary h3{font-size:32px}.booking-finish{display:flex;gap:12px}.booking-finish a{display:inline-flex;align-items:center;text-decoration:none}.booking-plan>.saved-handoff{font-size:13px}
@media(max-height:850px){.store-grid{gap:8px}.store-caption{left:10px;bottom:9px;gap:2px}.store-caption strong{font-size:21px}.store-caption small{display:none}.store-caption>span{font-size:10px}.booking-steps{padding-bottom:8px}.booking-plan{gap:14px}.booking-store{flex-direction:row;gap:15px;flex:none}.booking-store>img{width:38%;height:150px;flex:none}.booking-store h3{font-size:27px}.booking-store p{font-size:13px}.booking-preferences{gap:12px}.booking-question h3{font-size:26px}.booking-fields input{min-height:48px}.booking-question p{font-size:13px}.booking-summary{gap:8px}.booking-summary h3{font-size:26px}}
/* Fitting feedback belongs to the chrome, not the visitor's moving reflection. */
.fitting-change{font-size:12px;margin-top:7px;min-height:17px;color:#245ab2}
.page-heading[data-fitting=loading] .fitting-change:before{content:'';display:inline-block;width:6px;height:6px;border-radius:50%;background:currentColor;margin-right:7px;animation:style-shimmer 1.5s ease-in-out infinite}
.page-heading[data-fitting=ready] .fitting-change{animation:frame-arrived 1.5s ease-out}
@keyframes frame-arrived{0%{background:#bdd4f5;transform:translateY(3px)}100%{background:transparent;transform:none}}
.try-tile.is-current{border:2px solid #245ab2;background:#e3edfa}.queue-state{color:#245ab2;font-size:11px!important}
.studio .try-carousel-track[data-count="5"],.studio .try-carousel-track[data-count="6"],.studio .try-carousel-track[data-count="7"],.studio .try-carousel-track[data-count="8"]{gap:4px}
.studio .try-carousel-track[data-count="5"] .try-tile,.studio .try-carousel-track[data-count="6"] .try-tile,.studio .try-carousel-track[data-count="7"] .try-tile,.studio .try-carousel-track[data-count="8"] .try-tile{min-height:0;gap:2px;padding:4px;flex:1}
.studio .try-carousel-track[data-count="5"] img,.studio .try-carousel-track[data-count="6"] img,.studio .try-carousel-track[data-count="7"] img,.studio .try-carousel-track[data-count="8"] img{height:28px}
.studio .try-carousel-track[data-count="8"] strong{font-size:13px}.studio .try-carousel-track[data-count="8"] small{margin-top:1px;font-size:10px}
.studio .try-carousel-track[data-count="8"] .make-pair{display:none}
.comparison-tabs{display:flex;gap:6px;flex-shrink:0;padding:5px;background:#e5eaf1;border-radius:4px}.comparison-tabs button{flex:1;min-height:44px;font-size:14px}.comparison-tabs [aria-pressed=true]{background:#245ab2;color:white;border-radius:2px}.comparison-tabs button:disabled{opacity:.42}
.comparison.comparison-3d{display:grid;grid-template-columns:1fr;grid-template-rows:repeat(2,minmax(0,1fr));gap:12px;flex:1;min-height:0}
.comparison-3d .card{display:flex;flex-direction:column;min-height:0;padding:12px 18px;gap:4px}.comparison-3d .detail-model{flex:1;min-height:0}.comparison-3d .model-mount{flex:1;min-height:0;height:100%;position:relative}.comparison-3d h3{font-size:26px}.comparison-3d .card>p{font-size:12px}.comparison-3d .card-actions button{min-height:32px}.model-mount iframe{transition:opacity .35s ease-out}
.style-discovery{position:relative;overflow:hidden;background:radial-gradient(ellipse at 50% 35%,#d5e4f677,transparent 65%);border:1px solid #d4ddeb;padding:28px 16px;gap:22px}
.style-orbits{position:relative;width:260px;height:230px;display:grid;place-items:center;flex-shrink:0}.style-orbits i{position:absolute;inset:25px 0;border:1px solid #7295c75c;border-radius:50%;transform:rotate(-25deg);animation:style-orbit 12s ease-in-out infinite}.style-orbits i:nth-child(2){inset:0 30px;animation-delay:-4s}.style-orbits i:nth-child(3){inset:30px 40px;animation-delay:-8s}.style-orbits .main-orb-slot{width:130px;height:130px}
@keyframes style-orbit{50%{transform:rotate(45deg) scale(.88)}}
.style-discovery h3{font-size:44px;line-height:1.08}.style-discovery #style-observation{min-height:64px;max-width:450px;font-size:17px;line-height:1.5}
.style-study{display:flex;gap:18px;width:94%}.style-study>div{flex:1;min-width:0;padding:14px 6px;border-top:1px solid #aac0df;background:linear-gradient(120deg,#d8e5f244,transparent)}.style-study svg{width:100%;fill:none;stroke:#4275b8;stroke-width:2;stroke-dasharray:420;animation:draw-frame 3s ease-in-out infinite;animation-delay:var(--delay)}.style-study small{font-size:12px;color:#536c8e}
@keyframes draw-frame{0%{stroke-dashoffset:420;opacity:.3}70%,100%{stroke-dashoffset:0;opacity:1}}
@media(prefers-reduced-motion:reduce){.style-orbits i,.style-study svg,.fitting-change{animation:none!important}}
/* Reserve the status line and two colour rows across frame switches, so the
   retained live camera never moves when a label or new swatches arrive. */
body[data-view=studio] .page-heading{position:relative;padding-bottom:25px;min-height:92px}
body[data-view=studio] .page-heading>div{min-width:0}
body[data-view=studio] .page-heading h2{font-size:36px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body[data-view=studio] .fitting-change{position:absolute;left:0;bottom:2px;margin:0;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body[data-view=studio] .vto-colours{height:148px;flex-shrink:0;align-content:center;align-items:center}
body[data-view=studio] .fitting-tools{min-height:44px}
/* Specs stay aligned below each chosen look, in photos, product and 3D views. */
.comparison-specs{flex-shrink:0;color:#192c4b}
.comparison-colour{display:flex;align-items:center;gap:9px;min-height:35px;font-size:14px}
.comparison-colour-disc{width:28px;height:28px;flex-shrink:0;object-fit:cover;border-radius:50%;border:1px solid #192c4b30;padding:0}
.comparison-fit{margin-left:auto;white-space:nowrap;font-size:12px;color:#627289}
.comparison-measurements{display:grid;grid-template-columns:1fr 1fr;gap:6px 14px;margin:7px 0 2px;padding-top:8px;border-top:1px solid #dce2eb}
.comparison-measurements>div{min-width:0;display:flex;flex-direction:column;gap:2px}
.comparison-measurements dt{font-size:10px;color:#667286;line-height:1.2}
.comparison-measurements dd{margin:0;font-size:13px;line-height:1.25}
.comparison-measurements>div:nth-child(-n+2) dd{text-transform:capitalize}
.comparison-measurements .comparison-dimensions{grid-column:1/-1;flex-direction:row;align-items:baseline;justify-content:space-between;gap:8px}
.comparison[data-count="3"] .card,.comparison[data-count="4"] .card{gap:4px}
.comparison[data-count="3"] .comparison-measurements,.comparison[data-count="4"] .comparison-measurements{gap:4px 10px;padding-top:5px;margin-top:4px}
.comparison[data-count="3"] .comparison-colour,.comparison[data-count="4"] .comparison-colour{min-height:28px}
.comparison[data-count="3"] .comparison-colour-disc,.comparison[data-count="4"] .comparison-colour-disc{width:24px;height:24px}
.comparison .card-top{flex-shrink:0}.comparison .card-actions{flex-shrink:0}
.comparison[data-count="3"] .comparison-measurements>div,.comparison[data-count="4"] .comparison-measurements>div{flex-direction:row;align-items:baseline;justify-content:space-between;gap:5px}
.comparison[data-count="3"] .comparison-measurements dd,.comparison[data-count="4"] .comparison-measurements dd{font-size:12px}
.comparison[data-count="3"] .card,.comparison[data-count="4"] .card{gap:2px}
.comparison[data-count="3"] .card-actions button,.comparison[data-count="4"] .card-actions button{min-height:34px}

/* Parallel live fitting: identical framing, one screen, readable colour/specs. */
.comparison.comparison-live{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:minmax(0,1fr);flex:1;min-height:0;gap:14px}
.comparison.comparison-live:is([data-count="3"],[data-count="4"]){grid-template-rows:repeat(2,minmax(0,1fr))}
.comparison-live .card{display:flex;flex-direction:column;min-height:0;overflow:hidden;padding:10px;gap:6px}
.live-vto-mount{position:relative;min-height:100px;flex:1;background:#e5eaf1;overflow:hidden;isolation:isolate}
.live-vto-frame{position:absolute;inset:0;width:100%;height:100%;border:0;opacity:0;pointer-events:none;transition:opacity .4s ease}
.live-vto-mount[data-live-state=ready] .live-vto-frame{opacity:1}
.live-view-poster{position:absolute;inset:0;display:grid;place-items:center;background:radial-gradient(ellipse,#f4f5f7,#dbe5f1)}
.live-view-poster img{width:85%;mix-blend-mode:multiply;animation:live-pair-arrival 2.5s ease-in-out infinite}
.live-vto-mount[data-live-state=ready] .live-view-poster{visibility:hidden}
.live-view-status{position:absolute;bottom:8px;left:8px;right:8px;z-index:2;font-size:12px;text-align:center;padding:6px;background:#f5f3ecee;border-radius:2px;color:#193558}
.live-vto-mount[data-live-state=ready] .live-view-status{right:auto;font-size:10px;text-transform:uppercase;letter-spacing:1px}
.live-vto-mount[data-live-state=ready] .live-view-status:before{content:'';display:inline-block;background:#245ab2;width:5px;height:5px;border-radius:50%;margin-right:5px}
.live-vto-mount[data-live-state=failed] .live-view-poster img{animation:none;opacity:.45}
.live-comparison-status{min-height:30px;flex-shrink:0;font-size:12px;line-height:1.4}
.comparison-live h3{font-size:27px}.comparison-live .card-actions button{min-height:40px}
.comparison-live:is([data-count="3"],[data-count="4"]) .comparison-measurements{font-size:11px}
.comparison-live:is([data-count="3"],[data-count="4"]) h3{font-size:24px}
.comparison-live:is([data-count="3"],[data-count="4"]) .card{padding:8px;gap:3px}
@keyframes live-pair-arrival{50%{transform:translateY(-5px);opacity:.6}}
@media(prefers-reduced-motion:reduce){.live-view-poster img{animation:none}.live-vto-frame{transition:none}}
/* Product-first mirror edit: full-width frames, bounded supporting copy. */
#page{position:relative}
.scene-grid:not(.photo-gallery) .card,.style-recommendations .card.style-pair{display:flex!important;flex-direction:column;gap:3px!important;padding:8px!important;min-height:0;overflow:hidden}
.scene-grid:not(.photo-gallery) .product-image,.style-recommendations .style-pair>.product-image{width:100%;flex:1;min-height:45px;height:auto;aspect-ratio:auto;grid-area:auto}
.scene-grid:not(.photo-gallery) .product-image img,.style-pair>.product-image img{width:100%;height:100%;object-fit:contain;transform:scale(1.15)}
.scene-grid:not(.photo-gallery) .card-top,.style-recommendations .card-top{display:flex!important;align-items:baseline;justify-content:space-between;gap:8px;flex-shrink:0}
.scene-grid:not(.photo-gallery) .card-top h3,.style-recommendations .card-top h3{font-size:25px!important;line-height:1.05;white-space:nowrap}
.scene-grid:not(.photo-gallery) .card-top .price,.style-recommendations .card-top>span{font-size:13px}
.scene-grid:not(.photo-gallery) .card>p,.scene-grid:not(.photo-gallery) .vto-label{display:none}
.scene-grid:not(.photo-gallery) .card-swatches{flex-shrink:0;height:32px;overflow:hidden;gap:1px}
.scene-grid:not(.photo-gallery) .card-swatches .swatch{width:32px;height:32px;padding:6px}
.scene-grid:not(.photo-gallery) .card-actions,.style-pair .card-actions{margin:0;padding-top:2px;gap:5px;flex-wrap:nowrap}
.scene-grid:not(.photo-gallery) .card-actions button,.style-pair .card-actions button{font-size:11px!important;min-height:32px!important;padding:3px}
.style-recommendations{grid-template-columns:1fr 1fr;grid-auto-flow:row;gap:10px}
.style-recommendations .style-pair-copy{gap:3px;flex-shrink:0;min-height:0}
.style-results>.style-summary{font-size:12px;padding:9px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.style-recommendations .style-reason{font-size:12px!important;line-height:1.3;display:-webkit-box;-webkit-line-clamp:1!important;-webkit-box-orient:vertical;overflow:hidden}
.style-recommendations:is([data-count="7"],[data-count="8"]) .style-reason{display:none}
.style-recommendations:is([data-count="7"],[data-count="8"]) .small{font-size:10px}
.style-recommendations[data-count="3"] .style-pair:last-child{grid-column:1/-1;max-width:calc(50% - 5px);width:100%;justify-self:center}
/* Looks occupy the space; colour controls sit alongside the face. */
.comparison .comparison-visual{flex:1;min-height:0;display:flex;gap:5px;position:relative}
.comparison-visual>.capture-image,.comparison-visual>.product-image,.comparison-visual>.detail-model{flex:1;min-width:0;min-height:0;height:100%}
.comparison-copy{flex-shrink:0;display:flex;flex-direction:column;gap:4px;min-width:0}
.comparison-copy h3{font-size:26px;line-height:1.1}
.comparison-colours{display:flex;flex-direction:column;justify-content:center;align-items:center;flex-wrap:wrap;align-content:center;gap:2px;width:34px;flex-shrink:0;max-height:100%}
.comparison-colours .swatch{width:34px;height:34px;min-height:34px;padding:5px;flex-shrink:0}
.comparison-colours .swatch span{width:100%;height:100%;border-radius:50%;display:block;background-size:cover}
.comparison .live-vto-mount{min-width:0;min-height:0}
.comparison:is([data-count="3"],[data-count="4"]) .comparison-measurements{display:none}
.comparison:is([data-count="3"],[data-count="4"]) .comparison-fit{display:none}
.comparison:is([data-count="3"],[data-count="4"]) .comparison-copy{gap:2px}
.comparison:is([data-count="3"],[data-count="4"]) .comparison-colour{font-size:12px;min-height:24px}
.comparison:is([data-count="3"],[data-count="4"]) .comparison-colour-disc{width:20px;height:20px}
.comparison:is([data-count="3"],[data-count="4"]) .card-actions button{min-height:30px;font-size:11px}
.comparison[data-count="2"] .comparison-measurements{gap:4px 10px;margin:4px 0;padding-top:5px}
.comparison[data-count="2"] .comparison-measurements>div{flex-direction:row;align-items:baseline;justify-content:space-between}
.comparison[data-count="2"] .comparison-measurements dd{font-size:12px}
.comparison-live .card{gap:5px}
.live-comparison-status{min-height:18px;font-size:11px}
.live-vto-mount[data-live-state=switching] .live-vto-frame{opacity:1}
.live-vto-mount[data-live-state=switching] .live-view-poster{visibility:hidden}
.live-vto-mount[data-live-state=switching] .live-view-status{animation:live-pair-arrival 1.2s ease-in-out infinite}
/* Two generous, almost square interactive stages with concise side notes. */
.comparison.comparison-3d .card{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(170px,1fr);gap:14px;padding:12px}
.comparison-3d .comparison-visual{height:100%;min-height:0;flex-direction:column}
.comparison-3d .detail-model{padding:0;min-height:0}
.comparison-3d .comparison-colours{width:100%;height:auto;max-height:72px;flex-direction:row;flex-wrap:wrap;flex-shrink:0}
.comparison-3d .comparison-copy{justify-content:center}
.comparison-3d .comparison-copy .card-top{flex-wrap:wrap}
.comparison-3d .comparison-measurements{grid-template-columns:1fr}
.comparison-3d .comparison-measurements .comparison-dimensions{flex-direction:column}
.comparison-3d .card-actions{flex-wrap:wrap;gap:3px}
.comparison-3d .card-actions button{font-size:11px}
.comparison-3d small{font-size:10px;padding:5px}
#catalogue-research{position:absolute;inset:0;z-index:12;background:radial-gradient(ellipse at 50% 40%,#dce7f5,#f4f1e8 70%);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:24px;padding:35px}
#catalogue-research h2{font-size:42px;line-height:1.1}
#catalogue-research p{max-width:360px;line-height:1.5}
.research-frame{font-size:150px;color:#245ab2;animation:style-orbit 6s ease-in-out infinite}
@media(prefers-reduced-motion:reduce){.research-frame,.live-vto-mount[data-live-state=switching] .live-view-status{animation:none}}
.scene-grid:not(.photo-gallery) .card-top{align-self:stretch}
.scene-grid:not(.photo-gallery) .product-image img,.style-pair>.product-image img{object-fit:cover;transform:scale(1.08)}
.comparison-colours{overflow-y:auto;scrollbar-width:thin}
.comparison-colours{display:grid;grid-template-columns:repeat(var(--colour-cols,1),34px);width:calc(var(--colour-cols,1)*34px);grid-auto-rows:34px;overflow:visible;gap:1px;align-content:center}
.comparison-3d .comparison-colours{display:flex;width:100%;justify-content:center;flex-direction:row}
/* Eight-frame cards share one control row, leaving room for the entire frame. */
.scene-grid:not(.photo-gallery):is([data-count="5"],[data-count="6"],[data-count="7"],[data-count="8"]) .card{display:grid!important;grid-template-columns:minmax(0,1fr) 90px;grid-template-rows:minmax(0,1fr) 26px 32px;gap:2px!important;padding:6px!important}
.scene-grid:not(.photo-gallery):is([data-count="5"],[data-count="6"],[data-count="7"],[data-count="8"]) .product-image{grid-column:1/-1;grid-row:1;height:100%;min-height:0}
.scene-grid:not(.photo-gallery):is([data-count="5"],[data-count="6"],[data-count="7"],[data-count="8"]) .card-top{grid-column:1/-1;grid-row:2;align-self:stretch}
.scene-grid:not(.photo-gallery):is([data-count="5"],[data-count="6"],[data-count="7"],[data-count="8"]) .card-swatches{grid-column:1;grid-row:3;gap:0;height:32px}
.scene-grid:not(.photo-gallery):is([data-count="5"],[data-count="6"],[data-count="7"],[data-count="8"]) .card-swatches .swatch{width:25px;height:32px;padding:6px 3px}
.scene-grid:not(.photo-gallery):is([data-count="5"],[data-count="6"],[data-count="7"],[data-count="8"]) .card-actions{grid-column:2;grid-row:3;border:0;gap:0;justify-content:space-between;align-items:center}
.scene-grid:not(.photo-gallery):is([data-count="5"],[data-count="6"],[data-count="7"],[data-count="8"]) .card-actions button{font-size:0!important;min-width:30px;padding:0}
.scene-grid:not(.photo-gallery):is([data-count="5"],[data-count="6"],[data-count="7"],[data-count="8"]) .card-actions button:after{font-size:18px}
.scene-grid:not(.photo-gallery):is([data-count="5"],[data-count="6"],[data-count="7"],[data-count="8"]) [data-action=favorite]:after{content:'♡'}
.scene-grid:not(.photo-gallery):is([data-count="5"],[data-count="6"],[data-count="7"],[data-count="8"]) [data-action=favorite][aria-pressed=true]:after{content:'♥'}
.scene-grid:not(.photo-gallery):is([data-count="5"],[data-count="6"],[data-count="7"],[data-count="8"]) [data-action=select]:after{content:'+'}
.scene-grid:not(.photo-gallery):is([data-count="5"],[data-count="6"],[data-count="7"],[data-count="8"]) [data-action=select][aria-pressed=true]:after{content:'✓'}
.scene-grid:not(.photo-gallery):is([data-count="5"],[data-count="6"],[data-count="7"],[data-count="8"]) [data-action=try_on]:after{content:'↗'}
.style-recommendations:is([data-count="5"],[data-count="6"],[data-count="7"],[data-count="8"]) .style-pair{display:grid!important;grid-template-columns:minmax(0,1fr) 94px;grid-template-rows:minmax(0,1fr) 26px 32px;gap:2px!important;padding:6px!important}
.style-recommendations:is([data-count="5"],[data-count="6"],[data-count="7"],[data-count="8"]) .style-pair-copy{display:contents}
.style-recommendations:is([data-count="5"],[data-count="6"],[data-count="7"],[data-count="8"]) .product-image{grid-column:1/-1;grid-row:1;height:100%;min-height:0}
.style-recommendations:is([data-count="5"],[data-count="6"],[data-count="7"],[data-count="8"]) .card-top{grid-column:1/-1;grid-row:2}
.style-recommendations:is([data-count="5"],[data-count="6"],[data-count="7"],[data-count="8"]) .small{grid-column:1;grid-row:3;align-self:center;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.style-recommendations:is([data-count="5"],[data-count="6"],[data-count="7"],[data-count="8"]) .style-reason{display:none}
.style-recommendations:is([data-count="5"],[data-count="6"],[data-count="7"],[data-count="8"]) .card-actions{grid-column:2;grid-row:3;border:0}
.style-recommendations:is([data-count="5"],[data-count="6"],[data-count="7"],[data-count="8"]) .card-actions button{font-size:0!important;min-width:40px}
.style-recommendations:is([data-count="5"],[data-count="6"],[data-count="7"],[data-count="8"]) [data-action=favorite]:after{content:'♡';font-size:18px}
.style-recommendations:is([data-count="5"],[data-count="6"],[data-count="7"],[data-count="8"]) [data-action=try_on]:after{content:'Try →';font-size:12px}
/* 0.10.7: preserve the full face width; colours belong below the live image. */
.comparison:not(.comparison-3d) .comparison-visual{flex-direction:column;gap:3px}
.comparison:not(.comparison-3d) .comparison-colours{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;align-content:center;flex-wrap:wrap;width:100%;height:auto;max-height:none;gap:0;padding:2px 0;overflow:visible}
.comparison:not(.comparison-3d) .comparison-colours .swatch{width:30px;height:30px;min-height:30px;padding:5px}
.comparison:not(.comparison-3d) .comparison-visual>.live-vto-mount{width:100%;height:auto;flex:1}
.comparison:not(.comparison-3d) .comparison-visual>.product-image{height:0;flex:1}
/* An inset selection ring cannot be clipped by the compact catalogue row. */
.scene-grid:not(.photo-gallery) .card-swatches{overflow:visible;align-items:center}
.scene-grid:not(.photo-gallery) .card-swatches .swatch{min-height:0;align-self:center;border:0;display:flex;align-items:center;justify-content:center}
.scene-grid:not(.photo-gallery) .card-swatches .swatch span{display:block;width:100%;height:auto;aspect-ratio:1;flex-shrink:0}
.scene-grid:not(.photo-gallery) .card-swatches .swatch.active span{outline:0;box-shadow:0 0 0 2px var(--paper,#f4f1e8),0 0 0 4px var(--brand-blue);transform:scale(.8)}
.fitting-specs{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 18px;padding:8px 0;border-top:1px solid #d1d8e1;border-bottom:1px solid #d1d8e1;margin:0;flex-shrink:0}
.fitting-specs>div{display:flex;gap:5px;align-items:baseline}
.fitting-specs dt{font-size:10px;color:#61718a}.fitting-specs dd{margin:0;font-size:12px;font-weight:500}
body[data-view=studio] .vto-colours{height:auto;min-height:68px;max-height:110px;padding:7px 4px;gap:4px;justify-content:center}
body[data-view=studio] .colour-choice{min-width:48px;padding:3px;font-size:10px}
body[data-view=studio] .colour-disc{width:34px;height:34px}
.studio .try-tile{overflow:hidden;gap:3px;padding:5px;min-height:54px}
.studio .try-tile img{min-height:0;max-height:70px;flex:1;object-fit:contain}
.studio .try-tile>span{flex-shrink:0;line-height:1.2}
.studio .try-tile strong{font-size:15px}.studio .try-tile small{font-size:10px}
.studio .try-tile.make-pair{min-height:54px}
/* Lens journey: one decision per mirror screen, shared by speech and touch. */
.lens-heading h2{margin:0 0 16px}.lens-progress{display:flex;list-style:none;padding:0;margin:0 0 20px;gap:16px;justify-content:space-between;color:var(--muted);font-size:12px}.lens-progress li{display:flex;align-items:center;gap:6px}.lens-progress li span{display:grid;place-items:center;border:1px solid currentColor;border-radius:50%;width:24px;height:24px}.lens-progress [aria-current]{color:#245bbe;font-weight:700}.lens-journey{justify-content:flex-start!important;gap:18px}.lens-journey .pair-summary{flex:0 0 auto;max-height:175px}.lens-journey .pair-summary img{height:140px;object-fit:contain}.lens-journey legend{font-size:16px;margin-bottom:16px}.lens-options .lens-choice{position:relative;min-height:130px;padding:18px;gap:14px;align-items:center}.lens-choice:has(input:checked){background:#e5edfa;border-color:#245bbe;box-shadow:inset 0 0 0 1px #245bbe}.lens-illustration{display:grid;place-items:center;width:62px;height:62px;border-radius:50%;background:linear-gradient(130deg,#fff,#ccddf5);flex:none}.lens-illustration.transition{background:linear-gradient(110deg,#eff5ff 45%,#29456b 55%);color:#245bbe}.lens-illustration.zeiss{background:#245bbe;color:white}.lens-illustration .choice-icon{width:42px;height:42px}.lens-step-finish{grid-template-columns:1fr}.lens-step-finish .lens-choice{min-height:112px}.lens-review{padding:28px;background:#e5edfa;border:1px solid #c4d4eb}.lens-total{font-size:32px;display:block;margin:22px 0}.lens-review p{line-height:1.5}.lens-journey .step-footer{margin-top:auto}.lens-journey .lens-price{display:block;margin-top:8px}
/* Two recommendations are wide, complete product portraits, never cropped. */
.scene-grid:not(.photo-gallery)[data-count="2"],.style-recommendations[data-count="2"]{grid-template-columns:minmax(0,1fr);grid-template-rows:repeat(2,minmax(0,1fr))}
.scene-grid:not(.photo-gallery)[data-count="2"] .product-image,.style-recommendations[data-count="2"] .product-image{min-height:0;overflow:hidden}
.research-frame{width:150px;height:150px;flex:none;display:grid;place-items:center;font-size:0}
.research-frame svg{display:block;width:100%;height:100%}
/* Wide two-item portraits trim only the square photo's empty top/bottom margins. */
.scene-grid:not(.photo-gallery)[data-count="2"] .product-image img,.style-recommendations[data-count="2"] .product-image img{object-fit:cover;object-position:center;transform:none}

/* Mirror-distance type, with the fitting actions separated from visit navigation. */
.fitting-specs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px 18px;padding:12px 8px;text-align:left}
.fitting-specs>div{display:flex;flex-direction:column;gap:3px;min-width:0;align-items:flex-start}
.fitting-specs dt{font-size:12px;line-height:1.2}.fitting-specs dd{font-size:17px;line-height:1.2;font-weight:600;text-transform:capitalize}
body[data-view=studio] .fitting-tools{gap:22px;min-height:42px}
.fitting-tools button{font-size:15px;padding:10px 20px;white-space:nowrap}
.fitting-menu{display:grid;gap:14px;margin-top:20px}.fitting-menu button{min-height:56px;font-size:18px}

.settings-version{padding:18px 20px;margin:4px 0 22px;background:#e5edfa;border:1px solid #c4d4eb;border-radius:4px}.settings-version>div{display:flex;justify-content:space-between;align-items:baseline;gap:16px}.settings-version strong{font-size:28px;color:#245ab2}.settings-version p{font-size:12px;color:#61718a;line-height:1.4;margin:6px 0 0}.settings-version .settings-current-model{padding-top:12px;margin-top:12px;border-top:1px solid #c4d4eb;font-size:14px}.settings-current-model b{text-align:right;font-weight:600}
