:root{color-scheme:dark;--dark:#0e1915;--night:#09120f;--forest:#152b22;--forest-light:#274239;--wood:#442a20;--wood2:#67422d;--gold:#d7b27a;--gold-bright:#eed09a;--amber:#e6ad6a;--cream:#f4e8d1;--muted:#a6a797;--line:rgba(224,190,127,.23);--paper:#e3d1b2;--radius:13px;--serif:Georgia,'Times New Roman',serif;--sans:system-ui,-apple-system,'Segoe UI',Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--dark);color:var(--cream);font-family:var(--sans);-webkit-font-smoothing:antialiased}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}a{color:inherit}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--gold-bright);outline-offset:4px}img{max-width:100%}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--serif);font-weight:400}h1{font-size:clamp(3.5rem,8vw,7.5rem);line-height:.93;letter-spacing:-.045em}h2{font-size:clamp(2.3rem,5vw,4.3rem);line-height:1.08;letter-spacing:-.035em}h3{font-size:1.5rem;line-height:1.2}p{line-height:1.65}.ambient-grain{pointer-events:none;position:fixed;inset:0;z-index:101;opacity:.1;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='.28'/%3E%3C/svg%3E");mix-blend-mode:screen}.skip-link{position:absolute;top:-50px;left:15px;z-index:200;padding:12px 20px;background:var(--gold);color:#111}.skip-link:focus{top:12px}
.site-header{height:87px;position:fixed;top:0;z-index:90;left:0;right:0;display:flex;align-items:center;gap:2rem;padding:0 clamp(20px,4vw,76px);border-bottom:1px solid rgba(239,205,147,.17);background:linear-gradient(180deg,rgba(9,19,16,.95),rgba(11,23,19,.87));backdrop-filter:blur(20px)}.brand-lockup{display:flex;align-items:center;gap:12px;min-width:235px;padding:0;border:0;background:none;text-align:left;color:var(--gold-bright)}.brand-compass{font-size:3rem;line-height:1;color:var(--gold);text-shadow:0 0 17px #c58a4b88}.brand-type{display:flex;flex-direction:column;font:1.8rem/1.1 var(--serif);white-space:nowrap}.brand-type small{margin-top:6px;font:500 .57rem/1.3 var(--sans);letter-spacing:.2em;color:#ccb28a}.primary-nav{display:flex;gap:clamp(18px,3vw,42px);align-items:center;justify-content:center;flex:1}.primary-nav button,.footer-links button{background:none;border:0;color:#d9d6c5;font-size:.84rem;letter-spacing:.045em;transition:color .2s}.primary-nav button:hover,.primary-nav button[aria-current='page'],.footer-links button:hover{color:var(--gold-bright)}.header-actions{display:flex;align-items:center;gap:22px}.prototype-tag{font-size:.6rem;letter-spacing:.16em;color:#d3bc8d;border:1px solid #c1a16a6b;padding:8px 10px;border-radius:2px}.basket-trigger{color:var(--cream);white-space:nowrap;display:flex;align-items:center;gap:9px;background:none;border:0;font-size:.85rem}.basket-trigger>span:first-child{font-size:1.6rem;color:var(--gold)}.basket-trigger strong{display:grid;place-items:center;min-width:24px;height:24px;border-radius:50%;background:var(--gold);color:#17271c;font-size:.72rem}.mobile-menu{display:none;color:var(--gold);font-size:1.6rem;background:none;border:0}.eyebrow{font-size:.65rem!important;line-height:1.4;letter-spacing:.25em;color:var(--gold);font-weight:700;text-transform:uppercase}.small-caps{letter-spacing:.17em;text-transform:uppercase;font-size:.7rem;color:var(--gold)}.stars{color:#d6b476;letter-spacing:8px;font-size:1.1rem}.text-muted{color:var(--muted)}.divider-ornament{display:flex;align-items:center;gap:14px;color:var(--gold);font-size:1rem}.divider-ornament:before,.divider-ornament:after{content:"";display:block;width:60px;height:1px;background:var(--line)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:16px;text-align:center;min-height:54px;padding:13px 24px;border-radius:3px;border:1px solid var(--gold);font-weight:600;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;transition:transform .18s,background .18s,border-color .18s,box-shadow .18s}.btn:hover{transform:translateY(-2px)}.btn-gold{background:var(--gold);color:#18271f}.btn-gold:hover{background:#f0d39f;box-shadow:0 7px 34px #d9aa7550}.btn-outline{color:var(--gold-bright);background:#0819114d}.btn-outline:hover{background:#263b2de0}.btn-dark{border-color:#466252;background:#193128;color:var(--cream)}.btn-plain{border:0;background:none;color:var(--gold)}.full-width{width:100%}.section-shell{max-width:1400px;margin:auto;padding:0 6vw}.ornate-frame{border:1px solid #e6bd7680;box-shadow:inset 0 0 0 6px #14251c,inset 0 0 0 7px #d1a56555}.gold-dot{color:var(--gold)}
/* home / exterior */
.home-hero{position:relative;min-height:max(760px,100vh);display:flex;align-items:center;overflow:hidden}.hero-image{position:absolute;inset:0;background-image:url('/assets/shop-exterior.webp');background-size:cover;background-position:center 55%;filter:saturate(.94) contrast(1.06)}.hero-veils{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,13,12,.91) 0%,rgba(7,18,17,.76) 29%,rgba(10,21,19,.25) 64%,transparent 100%),linear-gradient(0deg,#101b16 0%,rgba(11,20,17,.13) 32%,rgba(13,22,20,.1) 71%,rgba(8,15,13,.35) 100%)}.hero-content{position:relative;z-index:1;width:min(760px,92%);padding:125px 0 110px;margin-left:clamp(22px,8.3vw,140px)}.hero-content .eyebrow{letter-spacing:.4em}.hero-content h1{margin:30px 0 14px;text-shadow:0 8px 40px #0a110db3;color:#f7e8c7}.hero-content h1 em{font-weight:400;font-style:italic;color:var(--gold-bright);font-size:.76em}.hero-intro{font:clamp(1.05rem,1.9vw,1.35rem)/1.7 var(--serif);max-width:500px;color:#f3e6cc}.hero-ctas{display:flex;gap:13px;flex-wrap:wrap;margin-top:35px}.hero-bottom{position:absolute;z-index:2;left:8.5vw;bottom:34px;display:flex;gap:24px;align-items:center;color:#eee1c0;letter-spacing:.16em;font-size:.66rem}.hero-bottom:before{content:"";width:36px;height:1px;background:var(--gold)}.hero-scroll{position:absolute;right:42px;bottom:30px;z-index:2;color:var(--gold);font-size:1.1rem;animation:bob 2s infinite}@keyframes bob{50%{transform:translateY(7px)}}
.explore-section{background:#13241d;padding:110px 0 120px;background-image:radial-gradient(ellipse at 10% 4%,#42624b36,transparent 48%)}.section-intro{text-align:center;max-width:730px;margin:auto auto 55px}.section-intro p{color:#bdbdae;font-size:1.08rem}.choose-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:27px}.journey-card{min-height:460px;position:relative;border:1px solid #c4a67066;overflow:hidden;display:flex;align-items:flex-end;background:#122017;isolation:isolate}.journey-card:hover .journey-visual{transform:scale(1.04)}.journey-visual{position:absolute;inset:0;transition:transform .5s;z-index:-2}.journey-visual.catalog-visual{background:linear-gradient(180deg,transparent 15%,#06100bcf),url('/assets/mirror.svg') center 26%/cover,#253d32}.journey-visual.virtual-visual{background:linear-gradient(180deg,transparent 15%,#06100be8),url('/assets/exterior-reference-2.webp') center 45%/cover}.journey-card:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 18%,rgba(6,16,12,.9));z-index:-1}.journey-copy{padding:40px}.journey-copy h3{font-size:2.3rem;margin-bottom:7px}.journey-copy p{max-width:390px;color:#dbcdb4;font-size:.95rem}.card-arrow{display:inline-block;margin-top:12px;color:var(--gold);letter-spacing:.11em;text-transform:uppercase;font-size:.76rem;font-weight:700}.story-band{padding:100px 0;background:#e3d2ad;color:#243327;text-align:center;position:relative;background-image:radial-gradient(ellipse at center,#fcf3db,#d7c298)}.story-band h2{max-width:860px;margin:25px auto}.story-band p{max-width:660px;margin:0 auto;color:#53634c}.story-band .eyebrow{color:#876238}.story-band .divider-ornament{justify-content:center;color:#876238}
/* catalogue */
.catalog-page{min-height:100vh;padding:155px 0 90px;background:radial-gradient(ellipse at top left,#2d44335e,transparent 42%),#111e17}.catalog-header{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:45px}.catalog-header h1{font-size:clamp(3.5rem,6vw,6.4rem);margin-bottom:16px}.catalog-header .lede{max-width:480px;color:#b7bbae}.catalog-toolbar{padding:22px 0 27px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:18px;justify-content:space-between;flex-wrap:wrap}.search-wrap{display:flex;align-items:center;min-width:min(370px,100%);gap:11px;border:1px solid #476047;padding:13px 17px;color:var(--gold);background:#0b1914}.search-wrap input{width:100%;outline:0;border:0;background:none;color:var(--cream);font-size:.89rem}.search-wrap input::placeholder{color:#8d998e}.category-pills{display:flex;gap:9px;flex-wrap:wrap;padding:26px 0 34px}.filter-pill{padding:10px 14px;border:1px solid #344d3d;border-radius:3px;background:transparent;color:#b9c7b5;font-size:.76rem}.filter-pill.active,.filter-pill:hover{border-color:var(--gold);color:var(--gold-bright);background:#d7b27a12}.result-count{color:var(--muted);font-size:.8rem}.product-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}.product-card{min-width:0;position:relative;background:#192b22;border:1px solid #55654762;transition:transform .2s,border-color .2s}.product-card:hover{transform:translateY(-5px);border-color:#caa46bba}.product-card .image-wrap{position:relative;aspect-ratio:4/4.7;overflow:hidden;background:#132219;cursor:pointer}.product-card img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s}.product-card:hover img{transform:scale(1.045)}.card-tag{position:absolute;top:13px;left:13px;padding:7px 10px;background:#15271ee6;border:1px solid #caaa7478;color:var(--gold);font-size:.61rem;letter-spacing:.09em}.card-content{padding:20px 18px 22px}.card-category{color:var(--gold);font-size:.63rem;letter-spacing:.15em;text-transform:uppercase}.card-title{font:1.2rem/1.22 var(--serif);margin:9px 0 10px;min-height:3em}.card-price{font:1.17rem var(--serif);color:#e8c792}.card-bottom{display:flex;align-items:center;justify-content:space-between;gap:8px}.mini-btn{background:none;border:1px solid #be9b5d;color:#d4b77f;width:37px;height:37px;font-size:1.45rem;line-height:1;transition:.2s}.mini-btn:hover{background:#d1ab70;color:#192d21}.catalog-footnote{padding:32px 0;color:#9aa99a;font-size:.8rem}.empty-state{padding:90px 20px;text-align:center;border:1px solid var(--line)}
/* virtual shop */
.experience-page{height:100vh;min-height:640px;padding-top:87px;background:#0c120e;overflow:hidden}.experience-layout{height:100%;position:relative}.experience-canvas{position:absolute;inset:0;width:100%;height:100%;touch-action:none;display:block;background:#182019}.scene-fade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(0deg,#080f0bc2 0%,transparent 26%,transparent 72%,#081009a6 100%)}.scene-header{position:absolute;top:27px;left:32px;max-width:340px;pointer-events:none;text-shadow:0 2px 8px #000}.scene-header h2{font-size:2.2rem;margin:8px 0}.scene-header .eyebrow{font-size:.56rem!important}.scene-header p{color:#e8d8ba;font-size:.76rem;line-height:1.5}.scene-hud{position:absolute;top:20px;right:25px;display:flex;align-items:start;gap:13px}.hud-panel{padding:13px 17px;background:#0b1a15dd;border:1px solid #bf965c86;backdrop-filter:blur(12px)}.hud-panel strong{font:1.4rem var(--serif);color:var(--gold)}.hud-panel small{display:block;font-size:.57rem;letter-spacing:.15em;color:#e2d4af}.compass-rose{width:53px;height:53px;display:grid;place-items:center;font:2rem var(--serif);color:var(--gold);border:1px solid var(--line);border-radius:50%;transform-origin:center}.scene-help{position:absolute;bottom:28px;left:30px;max-width:490px;display:flex;align-items:center;gap:14px}.help-card{padding:15px 18px;background:#0c1b16e9;border:1px solid #9d8a5c93;backdrop-filter:blur(12px)}.help-card b{font:1rem var(--serif);color:var(--gold-bright)}.help-card p{font-size:.72rem;margin:4px 0 0;color:#e6d9bd;line-height:1.45}.keycaps{display:flex;gap:5px;margin-bottom:7px}.keycaps span{border:1px solid #cbaa76;padding:5px 8px;color:#e5cd9f;font:.67rem var(--sans);min-width:26px;text-align:center}.scene-actions{position:absolute;bottom:28px;right:30px;display:flex;flex-direction:column;align-items:flex-end;gap:8px}.scene-actions .btn{background:#112319dd;font-size:.67rem;min-height:42px;padding:8px 12px}.scene-actions .btn-gold{background:var(--gold)}.nearby-prompt{position:absolute;left:50%;bottom:122px;transform:translateX(-50%);background:#091911e6;border:1px solid #d5ae7188;padding:12px 18px;color:#f7e6be;font-size:.76rem;text-align:center;pointer-events:none;min-width:min(400px,95vw)}.nearby-prompt strong{color:var(--gold)}.mobile-move{display:none;position:absolute;bottom:25px;left:17px;gap:8px}.mobile-move button{background:#112319c7;border:1px solid #d7b27a66;color:#e9cca0;border-radius:9px;width:51px;height:51px;font-size:1.25rem}.mobile-move .move-arrow-up{grid-column:2}.mobile-move .move-arrow-left{grid-column:1;grid-row:2}.mobile-move .move-arrow-down{grid-column:2;grid-row:2}.mobile-move .move-arrow-right{grid-column:3;grid-row:2}.scene-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#101b17}.scene-loading .stars{font-size:3rem}
/* counter */
.counter-page{min-height:100vh;padding:150px 6vw 95px;background:radial-gradient(ellipse at 65% 8%,#63452e77,transparent 45%),linear-gradient(180deg,#172b23 0%,#1c2820 48%,#1d1612 49%,#2a1a13 100%)}.counter-head{text-align:center;max-width:700px;margin:0 auto 45px}.counter-head h1{font-size:clamp(3.5rem,7vw,6.5rem);margin:15px 0}.counter-head p{color:#dbccb3}.counter-room{max-width:1150px;margin:auto;position:relative;background:linear-gradient(130deg,#623d24,#392119 48%,#6b442c);border:10px solid #341e15;box-shadow:0 0 0 2px #af8150,0 18px 55px #0008,inset 0 0 35px #120b0a;min-height:240px;padding:32px;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));align-items:center;gap:23px}.counter-room:before{content:"";position:absolute;inset:10px;border:1px solid #d8af736e;pointer-events:none}.counter-object{background:#101d16b5;border:1px solid #dfb7826e;min-height:180px;padding:10px;position:relative;text-align:center}.counter-object img{width:104px;height:116px;object-fit:contain}.counter-object span{display:block;font:.76rem var(--serif);max-width:180px;margin:auto}.counter-object button{position:absolute;right:7px;top:3px;border:0;background:#172b21;color:var(--gold);font-size:1.3rem}.counter-empty{grid-column:1/-1;display:grid;place-items:center;gap:7px;text-align:center;padding:35px}.counter-empty .symbol{font-size:3rem;color:var(--gold)}.counter-total{max-width:1150px;margin:30px auto;display:grid;grid-template-columns:1fr auto;gap:30px;align-items:center}.counter-total .receipt{border:1px solid var(--line);padding:20px 26px;background:#0d1814}.receipt-row{display:flex;justify-content:space-between;gap:22px;margin:9px 0;font-size:.88rem;color:#d3d3c4}.receipt-row.total{border-top:1px solid var(--line);padding-top:15px;margin-top:20px;font:1.5rem var(--serif);color:var(--gold)}.counter-actions{display:flex;gap:11px;flex-wrap:wrap;justify-content:flex-end}.counter-warning{font-size:.72rem;color:#b9b7a1;margin-top:12px}
/* about */
.about-page{padding:160px 8vw 110px;min-height:85vh;display:grid;grid-template-columns:1.1fr 1fr;gap:8vw;align-items:center;background:#14271e}.about-page h1{font-size:clamp(3.5rem,6vw,6.6rem)}.about-page p{max-width:530px;color:#d0cbbb}.about-image{aspect-ratio:4/5;border:6px solid #8c663d;box-shadow:0 0 0 8px #23392a,0 0 0 9px #8f794e;background:url('/assets/exterior-reference-1.webp') center/cover}
/* drawer + modal */
.screen-shade{position:fixed;inset:0;z-index:97;background:#07110bd9;backdrop-filter:blur(5px)}.screen-shade[hidden],.cart-drawer[hidden],.product-backdrop[hidden]{display:none}.cart-drawer{position:fixed;right:0;top:0;bottom:0;width:min(485px,100vw);z-index:98;background:#16271e;border-left:1px solid #ac905b8f;display:flex;flex-direction:column;box-shadow:-30px 0 90px #0008}.drawer-head{padding:38px 32px 25px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:15px}.drawer-head h2{font-size:2.6rem;margin:0}.icon-close{font:2.1rem var(--serif);color:var(--gold);border:0;background:none;line-height:1}.drawer-items{flex:1;overflow:auto;padding:22px 31px}.cart-row{display:grid;grid-template-columns:80px 1fr auto;gap:14px;padding:15px 0;border-bottom:1px solid var(--line)}.cart-row img{width:80px;height:95px;object-fit:cover}.cart-row h4{font:1.1rem var(--serif);margin:5px 0}.cart-row p{color:#b7b6a2;font-size:.7rem;margin:0}.cart-row strong{color:var(--gold);font-weight:500}.remove-btn{align-self:start;border:0;background:none;color:#acb9ac;font-size:1.4rem}.drawer-footer{padding:23px 31px 32px;background:#0f2118;border-top:1px solid var(--line)}.subtotal{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.subtotal strong{font:1.6rem var(--serif);color:var(--gold)}.tiny-note{color:#a6b29b;font-size:.73rem;line-height:1.45}.cart-empty{text-align:center;margin:50px 0}.cart-empty span{font-size:2.3rem;color:var(--gold)}.cart-empty p{color:#b0b6a5}
.product-backdrop{position:fixed;inset:0;z-index:110;display:grid;place-items:center;overflow:auto;padding:24px;background:#030a06e9;backdrop-filter:blur(10px)}.product-modal{width:min(960px,100%);max-height:min(92vh,850px);overflow:auto;display:grid;grid-template-columns:.96fr 1.04fr;position:relative;background:#182d21;border:1px solid #c09d68;box-shadow:0 30px 140px #000a}.modal-close{position:absolute;z-index:3;top:16px;right:19px;border:1px solid #e5c89577;color:var(--gold-bright);background:#0c2117cf;width:40px;height:40px;font-size:1.5rem}.modal-visual{padding:32px;background:radial-gradient(#34503a,#101a15);display:flex;align-items:center;justify-content:center;position:relative}.modal-visual img{width:100%;max-height:600px;object-fit:contain}.modal-visual .inspect-note{position:absolute;bottom:40px;left:50%;transform:translateX(-50%);white-space:nowrap;color:#dec39a;font-size:.68rem;letter-spacing:.12em;background:#071910b9;padding:9px 13px}.modal-copy{padding:65px 42px 38px;overflow:auto}.modal-copy h2{font-size:clamp(2rem,4vw,3.4rem);margin:14px 0}.modal-price{font:2rem var(--serif);color:var(--gold);margin-bottom:23px}.modal-desc{color:#e2dccd;font-size:.92rem}.modal-story{padding:17px 20px 13px;border-left:2px solid var(--gold);background:#0c1d1559;font:italic 1.05rem/1.6 var(--serif);color:#d5cbb1;margin:24px 0}.item-details{display:grid;grid-template-columns:1fr 1fr;gap:13px 17px;margin:24px 0 30px}.item-details dt{font-size:.58rem;letter-spacing:.13em;color:var(--gold);text-transform:uppercase}.item-details dd{margin:5px 0 0;font-size:.78rem;color:#ded5c1}.modal-actions{display:flex;flex-wrap:wrap;gap:8px}.modal-actions .btn{flex:1}.toast{position:fixed;bottom:26px;left:50%;transform:translate(-50%,130px);z-index:130;padding:16px 25px;background:#e5c489;color:#15291b;border:1px solid #fff6d1;box-shadow:0 12px 50px #0007;font-size:.85rem;transition:transform .25s;pointer-events:none;max-width:min(500px,90vw);text-align:center}.toast.show{transform:translate(-50%,0)}.site-footer{text-align:center;background:#0a1611;border-top:1px solid var(--line);padding:65px 20px 35px}.footer-mark{font:1.55rem var(--serif);color:var(--gold);letter-spacing:.12em}.site-footer p{color:#b1b4a3;font:italic 1.06rem var(--serif)}.footer-links{display:flex;align-items:center;justify-content:center;gap:26px;margin:28px 0}.site-footer .fineprint{font:.67rem var(--sans);color:#849183;letter-spacing:.05em}
@media(max-width:1080px){.site-header{gap:10px}.primary-nav{gap:16px}.brand-lockup{min-width:202px}.brand-type{font-size:1.52rem}.prototype-tag{display:none}.product-grid{grid-template-columns:repeat(3,1fr)}.catalog-header{align-items:start;flex-direction:column}}
@media(max-width:760px){.site-header{height:71px;padding:0 18px}.brand-lockup{min-width:0}.brand-compass{font-size:2.4rem}.brand-type{font-size:1.4rem}.brand-type small{font-size:.46rem}.basket-label{display:none}.header-actions{margin-left:auto;gap:8px}.mobile-menu{display:block}.primary-nav{display:none;position:absolute;left:0;right:0;top:71px;padding:22px 25px;background:#11261b;box-shadow:0 15px 40px #0006;border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch}.primary-nav.open{display:flex}.primary-nav button{text-align:left;padding:13px}.home-hero{min-height:810px}.hero-image{background-position:64% center}.hero-veils{background:linear-gradient(90deg,#0b1b18da 0%,#0e211a77 75%),linear-gradient(0deg,#07120db5,transparent 38%,#08160ba3)}.hero-content{margin:0 23px;padding:160px 0 90px}.hero-content h1{font-size:clamp(3.6rem,15vw,5.4rem)}.hero-intro{font-size:1.08rem}.hero-bottom{left:25px;bottom:22px}.hero-scroll{display:none}.explore-section{padding:80px 0}.choose-grid{grid-template-columns:1fr}.journey-card{min-height:410px}.journey-copy{padding:28px}.story-band{padding:75px 0}.product-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.catalog-page{padding-top:120px}.catalog-toolbar{gap:12px}.search-wrap{width:100%}.category-pills{gap:6px}.filter-pill{font-size:.68rem;padding:9px}.product-card .card-content{padding:13px}.product-card .card-title{font-size:1rem}.card-tag{font-size:.54rem;top:6px;left:6px;padding:5px}.experience-page{padding-top:71px;min-height:500px}.scene-header{left:14px;top:14px}.scene-header h2{font-size:1.35rem}.scene-header p{display:none}.scene-hud{top:11px;right:12px}.compass-rose{display:none}.scene-help{display:none}.mobile-move{display:grid}.scene-actions{right:12px;bottom:15px}.scene-actions .btn{font-size:.58rem;max-width:160px;min-height:38px}.nearby-prompt{bottom:137px;font-size:.65rem;min-width:min(350px,90vw)}.counter-page{padding-top:117px}.counter-room{padding:20px;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.counter-object img{max-width:95px}.counter-total{grid-template-columns:1fr}.counter-actions{justify-content:stretch}.counter-actions .btn{width:100%}.product-modal{grid-template-columns:1fr;max-height:94vh}.modal-visual{padding:8px;min-height:240px;max-height:310px}.modal-visual img{max-height:275px}.modal-visual .inspect-note{bottom:11px;font-size:.57rem}.modal-copy{padding:22px}.modal-copy h2{font-size:2.2rem}.about-page{padding:120px 7vw 60px;grid-template-columns:1fr}.about-image{max-width:500px}.footer-links{gap:15px;flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;scroll-behavior:auto!important;transition:none!important}}

/* The shopkeeper greets each visitor once, then remains available on request. */
.shopkeeper-overlay[hidden],.shop-guide[hidden]{display:none!important}
.shopkeeper-overlay{position:absolute;inset:0;z-index:35;background:radial-gradient(ellipse at 65% 35%,#0e2118bc,#050e0be8 78%);backdrop-filter:blur(10px);display:grid;place-items:center;padding:clamp(14px,3vw,40px);overflow-y:auto}
.shopkeeper-dialog{display:grid;grid-template-columns:minmax(190px,.73fr) minmax(300px,1.27fr);width:min(920px,100%);min-height:450px;position:relative;align-items:stretch;border:1px solid #c4a16ba8;background:linear-gradient(140deg,#14251d,#192b20 46%,#101f18);box-shadow:0 0 0 7px #07130d,0 0 0 8px #947c4d9c,0 25px 100px #000d;animation:keeper-appear .5s ease-out both}
.shopkeeper-dialog:after{content:'';position:absolute;inset:10px;border:1px solid #cba86f36;pointer-events:none}
.shopkeeper-portrait{position:relative;overflow:hidden;background:radial-gradient(ellipse at 50% 30%,#7253327c,#17251e 65%,#101b14);border-right:1px solid #b8945c77;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;min-height:440px;padding:25px}
.portrait-arch{position:absolute;inset:19px 21px 45px;border:1px solid #bca17670;border-radius:140px 140px 8px 8px;overflow:hidden;background:radial-gradient(ellipse at 60% 28%,#b68e554a,#0f2018 72%)}
.portrait-arch:before{content:'✦';position:absolute;z-index:1;top:19px;left:50%;transform:translateX(-50%);font-size:20px;color:#dab87e}
.portrait-arch img{position:absolute;bottom:-2px;left:0;width:100%;height:92%;object-fit:contain;object-position:bottom;filter:drop-shadow(0 0 18px #ddaf6966)}
.shopkeeper-portrait p{z-index:1;position:relative;margin:0;font-size:.54rem;letter-spacing:.18em;color:#e6cea0;text-align:center;background:#0a201ac7;padding:10px 12px}
.shopkeeper-copy{padding:clamp(40px,6vw,75px) clamp(24px,5vw,62px) 36px;display:flex;flex-direction:column;justify-content:center}
.shopkeeper-copy h2{margin:17px 0 14px;font-size:clamp(2.4rem,5vw,4.6rem);color:#f4e4c6;line-height:1.06}
.shopkeeper-copy .eyebrow{color:#cca973;font-size:.65rem;letter-spacing:.2em}
.keeper-message{max-width:445px;margin:0 0 25px;font:italic clamp(1.05rem,1.8vw,1.23rem)/1.63 Georgia,serif;color:#deceb2}
.keeper-choices{display:grid;gap:11px}
.keeper-choice{width:100%;display:flex;align-items:center;gap:15px;min-height:76px;padding:12px 17px;border:1px solid #bda17167;background:#0d2019;color:#eedfba;text-align:left;transition:background .2s,border-color .2s,transform .2s}
.keeper-choice:hover,.keeper-choice:focus-visible,.keeper-category:hover,.keeper-category:focus-visible{background:#273f2f;border-color:#e6c58e;transform:translateX(3px)}
.keeper-choice.primary{background:#53432769;border-color:#cfb27d}
.keeper-choice .keeper-choice-symbol{font:2rem Georgia,serif;color:#edc88e}
.keeper-choice>span:nth-child(2){flex:1}
.keeper-choice strong,.keeper-choice small{display:block}
.keeper-choice strong{font:1.14rem Georgia,serif}
.keeper-choice small{font:.69rem/1.55 var(--sans);letter-spacing:.025em;color:#acbca8;margin-top:3px}
.keeper-choice>span:last-child{color:#e9c48e}
.keeper-category-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.keeper-category{min-height:65px;display:flex;align-items:center;gap:9px;justify-content:space-between;text-align:left;padding:11px 12px;background:#12271d;color:#eddab7;border:1px solid #b28b555c;font-size:.74rem;transition:.2s}
.keeper-category>span:first-child{color:#deba7f}
.keeper-plain{margin-top:13px;align-self:flex-start;background:none;border:0;border-bottom:1px solid #b89a6d;color:#d4bd95;padding:7px 0;font-size:.78rem}
.keeper-footnote{margin:22px 0 0;font-size:.68rem;color:#a5b3a1;letter-spacing:.05em}
.shopkeeper-skip{z-index:3;position:absolute;right:13px;top:12px;border:0;background:#0f2319;color:#e0c394;padding:10px 13px;font-size:.7rem;letter-spacing:.05em}
.shopkeeper-skip span{font-size:1rem;margin-left:5px}
.shop-guide{position:absolute;right:25px;top:109px;z-index:10;min-width:220px;max-width:min(330px,80vw);display:flex;align-items:start;gap:11px;padding:15px 15px 14px;background:#0b2018ee;border:1px solid #e6c185a8;box-shadow:0 15px 50px #0008;backdrop-filter:blur(8px)}
.shop-guide .guide-spark{font:2rem Georgia,serif;color:#ffdb92;animation:guide-twinkle 2s ease-in-out infinite}
.shop-guide .guide-information{flex:1;min-width:0}
.shop-guide small{font-size:.54rem;color:#c0af87;letter-spacing:.12em}
.shop-guide strong{display:block;color:#f2dbab;font:1.2rem Georgia,serif;margin:4px 0}
.shop-guide p{font-size:.72rem;color:#d6e5ce;margin:0;line-height:1.45}
.shop-guide.arrived{border-color:#fbe5a7;box-shadow:0 0 25px #daae5680}
.guide-close{align-self:flex-start;border:0;background:none;color:#d4c093;font-size:1.4rem;line-height:1;padding:0 3px}
@keyframes keeper-appear{from{opacity:0;transform:translateY(18px) scale(.986)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes guide-twinkle{50%{opacity:.52;transform:scale(1.13)}}
@media(max-width:760px){.shopkeeper-overlay{padding:12px;align-items:start}.shopkeeper-dialog{grid-template-columns:1fr;width:min(450px,100%);min-height:auto;margin:auto}.shopkeeper-portrait{min-height:138px;padding:12px 0;justify-content:center}.portrait-arch{inset:-56px 25% -29px;border-radius:140px 140px 0 0}.portrait-arch img{height:100%;object-position:bottom}.shopkeeper-portrait p{position:absolute;right:8px;bottom:9px;max-width:136px;font-size:.48rem}.shopkeeper-copy{padding:26px 25px 23px}.shopkeeper-copy h2{font-size:2.55rem;margin:11px 0}.keeper-message{font-size:1rem;margin-bottom:15px}.keeper-choice{min-height:61px}.keeper-category{min-height:58px;padding:8px 9px;font-size:.67rem}.keeper-category-grid{gap:7px}.shopkeeper-skip{font-size:.61rem;top:7px;right:7px}.keeper-footnote{margin-top:14px}.shop-guide{top:92px;left:13px;right:auto;width:min(300px,84vw);padding:9px 12px}.shop-guide strong{font-size:1rem}.shop-guide p{font-size:.67rem}.visitor-guide-dialog .keeper-identity{gap:10px;padding:9px 10px}.visitor-guide-dialog .keeper-identity-mark{width:46px;height:46px;font-size:1.45rem}}
@media(max-height:700px) and (min-width:761px){.shopkeeper-dialog{min-height:360px}.shopkeeper-portrait{min-height:360px}.shopkeeper-copy{padding:40px 45px 24px}}
@media(prefers-reduced-motion:reduce){.shopkeeper-dialog,.shop-guide .guide-spark{animation:none}}


/* ============================================================
   Interactive exterior opening: image-native coordinate hotspots.
   Keeping the photo in an aspect-ratio container makes the hanging
   sign and door clickable at every viewport without relying on the
   cropping and positioning of background-image: cover.
   ============================================================ */
.home-hero.home-hero-interactive{display:grid;grid-template-columns:minmax(300px, .92fr) minmax(350px, 1.08fr);gap:clamp(24px,3vw,60px);align-items:center;min-height:100svh;padding:108px clamp(22px,5.5vw,105px) 66px;isolation:isolate;background:#111d19;overflow:hidden}
.hero-atmosphere{position:absolute;z-index:-1;inset:-35px;background:linear-gradient(90deg,#091a18ed 5%,#10231dd8 44%,#13261c80 100%),url('/assets/shop-exterior.webp') center 56%/cover;filter:blur(21px) saturate(.65);transform:scale(1.06)}
.home-hero-interactive:after{content:'';position:absolute;z-index:-1;inset:0;background:linear-gradient(0deg,#0a1713 0%,transparent 28%),radial-gradient(ellipse at 78% 57%,#d3a3652a,transparent 49%);pointer-events:none}
.hero-story{position:relative;z-index:3;max-width:660px;min-width:0;justify-self:center;animation:hero-drift-in .8s both}
.hero-story h1{margin:25px 0 30px;font-size:clamp(3.2rem,6.3vw,6.8rem);color:#f8e8c9;text-shadow:0 7px 30px #020704a6}
.hero-story h1 em{font-style:italic;font-weight:400;color:#ecc58d;font-size:.79em}
.hero-story .eyebrow{letter-spacing:.25em;line-height:1.8}
.hero-story .hero-intro{max-width:490px;margin:28px 0 34px;color:#e5d9c2;font-size:clamp(1.07rem,1.6vw,1.25rem)}
.hero-instruction{text-transform:uppercase;color:#e1bd82;font-size:.68rem;letter-spacing:.21em;font-weight:700;margin-bottom:12px}
.hero-entry-options{display:grid;gap:10px;max-width:470px}
.hero-entry-option{width:100%;min-height:69px;display:flex;align-items:center;gap:16px;padding:12px 17px;text-align:left;background:#10251deb;color:#f0dfbd;border:1px solid #e0b97573;box-shadow:0 10px 30px #02060466;transition:border-color .2s,background .2s,transform .2s}
.hero-entry-option:hover,.hero-entry-option:focus-visible{border-color:#ffe1a4;background:#1c3b2af2;transform:translateX(4px)}
.hero-entry-option>span:nth-child(2){flex:1}.hero-entry-option strong,.hero-entry-option small{display:block}.hero-entry-option strong{font:1.18rem/1.2 Georgia,serif}.hero-entry-option small{font:.72rem/1.5 var(--sans);color:#b9c4b0;margin-top:4px}.hero-entry-option>span:last-child{color:#eac28a;font-size:1.2rem}.entry-icon{width:37px;height:37px;display:grid;place-items:center;border:1px solid #d1a86a80;border-radius:50%;font:1.5rem Georgia,serif;color:#e9c286}
.hero-whisper{font:italic .94rem/1.7 Georgia,serif;color:#c9b89a;margin:16px 0 0}
.exterior-stage{z-index:2;position:relative;width:100%;min-width:0;justify-self:center;display:grid;justify-items:center;align-items:center}
.exterior-scene{position:relative;aspect-ratio:1122/1402;width:min(100%,min(80svh,730px));overflow:visible;box-shadow:0 20px 90px #0009,0 0 0 1px #d7b47a5c;animation:hero-drift-in 1.2s .12s both}
.exterior-scene:after{content:'';position:absolute;inset:0;pointer-events:none;border:1px solid #f6d79b61;box-shadow:inset 0 0 65px #060d0980}
.exterior-scene-image{width:100%;height:100%;display:block;object-fit:contain;user-select:none}
.exterior-hotspot{position:absolute;z-index:4;display:block;padding:0;margin:0;background:transparent;border:0;color:#f9e8c3;cursor:pointer;touch-action:manipulation}
.exterior-sign{left:18.1%;top:35.5%;width:12.4%;height:16.9%}
.exterior-door{left:76.1%;top:39.8%;width:13.4%;height:39.4%}
.exterior-hotspot-outline{position:absolute;inset:-3px;border:2px solid #ffdf9999;border-radius:7px;box-shadow:0 0 22px #f4bd6880, inset 0 0 12px #f8ca4466;opacity:0;transition:opacity .2s}
.exterior-hotspot:hover .exterior-hotspot-outline,.exterior-hotspot:focus-visible .exterior-hotspot-outline{opacity:1}
.exterior-hotspot:focus-visible{outline:2px solid #ffdfab;outline-offset:6px;border-radius:3px}
.exterior-marker{position:absolute;z-index:5;display:flex;gap:10px;align-items:center;white-space:nowrap;text-align:left;padding:9px 12px;color:#fce7b5;background:#0a221acb;border:1px solid #e2b779c2;box-shadow:0 8px 24px #0009;backdrop-filter:blur(6px);transition:transform .2s,background .2s}
.exterior-marker strong,.exterior-marker small{display:block}.exterior-marker strong{font-size:.55rem;letter-spacing:.17em}.exterior-marker small{font:italic .79rem Georgia,serif;margin-top:3px;color:#eee0c1}.marker-star{font:1.3rem Georgia,serif;line-height:1;color:#ffdfaa}
.sign-marker{left:48%;top:85%;transform:translateY(0)}.door-marker{right:105%;top:60%;}
.exterior-hotspot:hover .exterior-marker,.exterior-hotspot:focus-visible .exterior-marker{background:#1b3f2cf2;transform:translateY(-4px)}
.stage-caption{margin:15px 0 0;text-align:center;color:#eed8ad;letter-spacing:.18em;text-transform:uppercase;font-size:.62rem;line-height:1.5}
.stage-caption span{font-size:1rem;color:#f2ca81;padding:0 8px}
.home-hero-interactive .hero-bottom{left:clamp(22px,5.5vw,105px);bottom:24px;font-size:.6rem}
@keyframes hero-drift-in{from{opacity:0;transform:translateY(13px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:1020px){.home-hero.home-hero-interactive{grid-template-columns:minmax(240px,.95fr) minmax(290px,1.05fr);gap:22px;padding-top:100px}.hero-story h1{font-size:clamp(3.1rem,6vw,5.5rem)}.hero-story .hero-intro{font-size:1.04rem}.hero-entry-option{padding:10px}.exterior-scene{width:min(100%,min(74svh,640px))}.exterior-marker{padding:6px 8px}.exterior-marker strong{font-size:.5rem}.exterior-marker small{font-size:.7rem}}
@media(max-width:720px){.home-hero.home-hero-interactive{grid-template-columns:1fr;gap:16px;padding:85px 14px 50px;min-height:auto}.exterior-stage{grid-row:1}.exterior-scene{width:min(100%,min(76svh,550px))}.hero-story{grid-row:2;padding:18px 8px 25px;justify-self:start}.hero-story h1{font-size:clamp(3.15rem,12vw,4.8rem);margin:11px 0 20px}.hero-story .hero-intro{margin:17px 0 21px}.hero-story .eyebrow{font-size:.56rem!important}.hero-whisper{font-size:.8rem}.hero-bottom{display:none!important}.stage-caption{font-size:.53rem;letter-spacing:.11em}.exterior-marker{padding:5px 7px;gap:5px}.exterior-marker strong{font-size:.47rem}.exterior-marker small{font-size:.64rem}.marker-star{font-size:1rem}.sign-marker{left:15%;top:91%}.door-marker{right:70%;top:52%}.exterior-sign{left:17.8%;width:13.2%;}.exterior-door{left:75.6%;width:14.5%}}
@media(max-width:430px){.exterior-marker{padding:5px 6px}.sign-marker{left:2%;top:95%}.door-marker{right:92%;top:54%}.exterior-marker small{font-size:.58rem}.exterior-marker strong{font-size:.44rem}.home-hero.home-hero-interactive{padding-top:81px}}
@media(prefers-reduced-motion:reduce){.hero-story,.exterior-scene{animation:none!important}}

/* v0.3 — cinematic, responsive image-first arrival.  Both visible routes are
   real buttons, overlaid on the user's branded exterior concept. */
.home-hero.cinematic-home{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;min-height:100vh;min-height:100svh;gap:0;padding:87px 0 0;background:#07100d;isolation:isolate}
.cinematic-scene{position:relative;width:100%;overflow:hidden;aspect-ratio:1672/688;box-shadow:0 12px 55px #000b;background:#1e2823}
.cinematic-scene:after{content:'';position:absolute;inset:0;pointer-events:none;border-top:1px solid #e7b87772;box-shadow:inset 0 0 60px #07150a4d}
.cinematic-art{width:100%;height:100%;display:block;object-fit:contain;filter:contrast(1.025) saturate(.96);user-select:none}
.cinematic-scene .exterior-hotspot:hover .exterior-hotspot-outline,.cinematic-scene .exterior-hotspot:focus-visible .exterior-hotspot-outline{border-radius:3px;opacity:1;animation:hotspot-breathe 1.9s ease-in-out infinite}
.cinematic-sign{left:17.0%;top:7%;width:10.6%;height:47%}
.cinematic-door{left:71.5%;top:19%;width:10.9%;height:78%}
.cinematic-sign-callout{left:9.0%;top:58%;width:21%;height:19%}
.cinematic-door-callout{left:77%;top:52%;width:21%;height:20%}
@keyframes hotspot-breathe{50%{box-shadow:0 0 25px #ffc46ca0,inset 0 0 18px #fbd48586}}
.arrival-bar{width:100%;min-height:105px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:14px clamp(22px,5vw,90px);background:linear-gradient(110deg,#10221b,#0d1714);border-top:1px solid #b88c4f78;border-bottom:1px solid #a9875457}
.arrival-message{display:flex;align-items:center;gap:18px;color:#ecc890}
.arrival-message .arrival-sun{font:3.3rem Georgia,serif;text-shadow:0 0 30px #eebc6590}
.arrival-message .eyebrow{display:block;margin:0 0 3px;font-size:.59rem!important}
.arrival-message strong{display:block;font:italic clamp(1.2rem,2.3vw,2rem) Georgia,serif;letter-spacing:.012em;color:#f1ddb5;font-weight:400}
.arrival-actions{display:flex;align-items:center;gap:12px}.arrival-actions .btn{min-height:50px;font-size:.69rem;white-space:nowrap}
.cinematic-home .original-exterior{display:none}
@media(min-width:1500px){.cinematic-scene{max-height:calc(100svh - 195px)}.cinematic-art{object-fit:cover}}
@media(max-width:900px){.arrival-bar{flex-wrap:wrap;justify-content:center;text-align:center;padding:17px 16px}.arrival-message .arrival-sun{display:none}.arrival-actions{justify-content:center;flex-wrap:wrap}.arrival-actions .btn{min-height:44px}.cinematic-home .cinematic-scene{margin-top:0}}
@media(max-width:700px){.home-hero.cinematic-home{display:block;padding-top:71px;min-height:auto}.cinematic-home .cinematic-scene{display:none}.cinematic-home .original-exterior{display:grid;width:100%;padding:15px 15px 4px;background:radial-gradient(ellipse at 50% 30%,#5b5139aa,transparent 70%),#0c1b17}.cinematic-home .original-exterior .exterior-scene{width:min(100%,525px);box-shadow:0 15px 50px #000b}.arrival-bar{padding:22px 15px 26px}.arrival-message{justify-content:center;flex-basis:100%}.arrival-actions .btn{font-size:.62rem;padding:11px 14px}.arrival-message strong{font-size:1.4rem}}
@media(prefers-reduced-motion:reduce){.cinematic-scene .exterior-hotspot:hover .exterior-hotspot-outline{animation:none}}

/* Floor finder: shows real published shelf references, not arbitrary marker indices. */
.hud-map-trigger{border:1px solid #d7b37c91;background:#14251bdf;display:flex;align-items:center;justify-content:center;gap:8px;padding:9px 14px;color:#f4dcb1;font-size:.75rem;letter-spacing:.07em;box-shadow:0 10px 30px #0005}.hud-map-trigger:first-letter{font-size:1.25rem}.hud-map-trigger:hover{background:#30452a}
.floor-map[hidden]{display:none!important}.floor-map{position:absolute;right:22px;top:110px;z-index:12;width:min(292px,87vw);padding:20px 20px 17px;background:linear-gradient(155deg,#21372bfa,#101f18fa);border:1px solid #ccaa75c7;box-shadow:0 20px 85px #000c,inset 0 0 0 4px #101e1766;backdrop-filter:blur(9px)}
.floor-map-head{display:flex;justify-content:space-between;align-items:start}.floor-map h3{margin:3px 0 0;font:1.6rem Georgia,serif;color:#f1d5a0}.floor-map .eyebrow{margin:0!important}.map-dismiss{color:#e1c391;font-size:1.6rem;border:0;background:none;line-height:1}.map-intro{font:.75rem/1.45 var(--serif);color:#bfc9b8;margin:13px 0}
.floor-plan{width:100%;height:285px;position:relative;background:repeating-linear-gradient(0deg,transparent 0,transparent 13px,#304430 14px),linear-gradient(90deg,#25362a,#15251d 20%,#243529 85%,#1b2b20);border:5px solid #8a6845;outline:1px solid #bf9c69;box-shadow:inset 0 0 17px #0009;overflow:hidden}
.floor-plan:after{content:'';position:absolute;inset:33px 22%;border:1px solid #9e845570;pointer-events:none}.floor-plan-runner{position:absolute;left:42%;width:16%;top:48px;bottom:18px;background:repeating-linear-gradient(0deg,#6a3033 0 19px,#89544a 20px 22px);border-left:2px solid #d0ad74aa;border-right:2px solid #d0ad74aa}
.floor-plan-counter{position:absolute;left:18%;right:18%;top:5px;text-align:center;background:#5b3825;color:#edcd98;font:600 .54rem Georgia,serif;letter-spacing:.1em;padding:8px 2px;border:1px solid #c69a59;z-index:1}.floor-plan-entrance{position:absolute;bottom:0;left:27%;right:27%;background:#80583a;color:#f9dfb4;letter-spacing:.1em;padding:3px;text-align:center;font-size:.5rem}
.floor-pin{position:absolute;z-index:2;min-width:28px;height:28px;transform:translate(-50%,-50%);background:#203e2a;color:#e6c989;border:1px solid #c09c63;box-shadow:0 0 9px #0008;font:.62rem Georgia,serif}.floor-pin:hover,.floor-pin:focus-visible{background:#b9945f;color:#14251b;box-shadow:0 0 20px #f0ca79}
.floor-you{position:absolute;z-index:3;width:23px;height:23px;display:grid;place-items:center;border-radius:50%;background:#fae4a5;color:#203826;box-shadow:0 0 0 4px #f8ce7590,0 0 18px #f9d788;transition:left .12s linear,top .12s linear;pointer-events:none}.map-legend{font:.64rem/1.5 var(--sans);color:#d6bd92;margin:14px 0 0}
@media(max-width:760px){.floor-map{top:78px;right:9px;width:min(270px,85vw);padding:12px}.floor-plan{height:215px}.floor-pin{width:25px;height:25px;min-width:25px}.floor-map h3{font-size:1.3rem}.hud-map-trigger{padding:7px 10px}}

/* Detailed object inspection / future 360-viewer slot. */
.modal-visual{isolation:isolate;overflow:hidden;min-height:520px;background:radial-gradient(ellipse at 49% 35%,#415b45 0%,#23352b 39%,#0d1c17 100%)}
.modal-visual:before{position:absolute;content:'';inset:15px;border:1px solid #bf9d6770;pointer-events:none;z-index:2}
.modal-visual-motif{position:absolute;top:33px;left:36px;font:2.5rem Georgia,serif;color:#e0ba817b;z-index:1}
.modal-visual img#inspectImage{transition:transform .28s ease;transform-origin:var(--zoom-x,50%) var(--zoom-y,50%);cursor:zoom-in;object-fit:contain;max-height:min(64vh,610px);mix-blend-mode:normal}
.modal-visual.zoomed img#inspectImage{transform:scale(2.2);cursor:zoom-out}
.inspect-zoom{position:absolute;z-index:3;left:32px;bottom:30px;border:1px solid #d7b785a8;background:#12271dde;color:#f2dcad;padding:9px 15px;font:.68rem var(--sans);letter-spacing:.08em;text-transform:uppercase}
.inspect-zoom:hover{background:#37513c}
.modal-visual .inspect-note{bottom:86px;font-size:.55rem;white-space:normal;text-align:center}
.photo-thumbs{position:absolute;z-index:3;right:28px;bottom:27px;display:flex;gap:6px}.photo-thumb{width:43px;height:49px;border:1px solid #ac905f;background:#1a2d23;padding:2px;opacity:.67}.photo-thumb.selected,.photo-thumb:hover{opacity:1;border-color:#fae5ae}.photo-thumb img{width:100%;height:100%;object-fit:cover}
@media(max-width:760px){.modal-visual{min-height:270px}.modal-visual .inspect-note{display:none}.inspect-zoom{left:16px;bottom:14px;padding:7px 11px}.photo-thumbs{right:12px;bottom:12px}.modal-visual img#inspectImage{max-height:280px}}

/* v0.4 — the real proprietor, from an owner-supplied video still.
   No generated voice, face animation or user video is uploaded to a public service. */
.shopkeeper-portrait{background:radial-gradient(ellipse at 50% 36%,#7d5a37a0,#0e1b14 71%)}
.shopkeeper-portrait .portrait-arch{box-shadow:inset 0 0 0 2px #e3bc7b42,0 12px 36px #020604ab}
.shopkeeper-portrait .portrait-arch img{height:100%;width:100%;left:0;bottom:0;object-fit:cover;object-position:center 34%;filter:sepia(.11) contrast(1.04)}
.shopkeeper-portrait .portrait-arch:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#33220d2f,transparent 35%,#0b20147d 100%);box-shadow:inset 0 0 42px #090e0ac9}
.shopkeeper-portrait p{font-size:.62rem;letter-spacing:.16em;border:1px solid #c6a56a55}
.keeper-chat-button{display:inline-flex;align-items:center;gap:10px}
.keeper-chat-button img{width:34px;height:34px;border-radius:50%;object-fit:cover;object-position:center 42%;border:1px solid #dab777;flex-shrink:0}
.keeper-counter-intro{max-width:850px;margin:0 auto 26px;padding:15px 24px;display:flex;align-items:center;gap:20px;border:1px solid #9e794f7f;background:linear-gradient(110deg,#15291eee,#2a2b1cda);box-shadow:0 14px 35px #0005}
.keeper-counter-intro img{width:78px;height:78px;flex-shrink:0;object-fit:cover;object-position:center 32%;border-radius:100%;border:2px solid #d3ac72;box-shadow:0 0 0 5px #85693c48}
.keeper-counter-intro p{margin:7px 0 0;color:#efdfbf;font:italic 1.05rem/1.5 Georgia,serif}
.keeper-counter-intro .eyebrow{color:#e0b976}
@media(max-width:760px){.shopkeeper-portrait .portrait-arch{inset:-115px 31% -25px;min-width:136px}.shopkeeper-portrait .portrait-arch img{object-position:center 24%}.keeper-counter-intro{margin:0 12px 22px;padding:13px;gap:13px}.keeper-counter-intro img{width:57px;height:57px}.keeper-counter-intro p{font-size:.86rem}.keeper-chat-button img{width:27px;height:27px}}
/* v0.6: no more raw owner video stills in the website. The character is a
   moving render of a genuine locally built mesh, kept deliberately WIP. */
.shopkeeper-portrait .portrait-arch img{object-fit:contain!important;object-position:center center!important;filter:sepia(.16) saturate(.82) contrast(1.06)!important;background:radial-gradient(ellipse at 50% 40%,#6d593b 0,#0d1913 72%)}
.keeper-counter-intro img{object-fit:cover!important;object-position:center 35%!important;border-radius:10px!important}
.keeper-chat-button img{object-fit:cover!important;object-position:center 33%!important}
.keeper-footnote small{display:block;margin-top:7px;font-size:.65rem;letter-spacing:.015em;color:#c7b69a}

/* v0.7 — genuine WebGL2 ship's treasure hold. Text stays crisp and foreground HUD stays accessible. */
.experience-canvas{image-rendering:auto;touch-action:none}
.experience-layout{background:#101913}
.scene-header{pointer-events:none;text-shadow:0 3px 18px #000,0 1px 4px #000}
.scene-header h2{letter-spacing:.025em}
.scene-fade{pointer-events:none;opacity:.65}
.shopkeeper-crest{width:100%;height:100%;display:flex;align-items:center;justify-content:center;gap:14px;flex-direction:column;background:radial-gradient(ellipse at 50% 46%,#5e5033 0,#17251a 54%,#0c1812 100%);border:1px solid #967548}
.shopkeeper-crest span{font-size:clamp(7rem,14vw,12rem);line-height:1;color:#d1a45d;text-shadow:0 0 50px #bd8a47a0}
.shopkeeper-crest small{font-size:1rem;letter-spacing:.22em;color:#f0d49b}
.shopkeeper-crest em{font:italic .8rem Georgia,serif;color:#d2bc99}
.keeper-chat-crest,.counter-keeper-crest{display:inline-grid;place-items:center;color:#ecd7a1;background:linear-gradient(160deg,#4b3c21,#12221a);border:1px solid #d4ab6c;border-radius:50%;box-shadow:inset 0 0 0 3px #14221a,0 0 18px #c79a4440;flex-shrink:0}
.keeper-chat-crest{width:32px;height:32px;font-size:1.4rem}
.counter-keeper-crest{width:76px;height:76px;font-size:3rem}
.room-graphics-warning{position:absolute;top:30%;left:20%;width:60%;background:#10231df2;color:#eedbc1;border:1px solid #c9a56a;padding:26px;z-index:20;text-align:center;font-family:Georgia,serif}
@media(max-width:760px){.shopkeeper-crest span{font-size:4.2rem}.shopkeeper-crest small{font-size:.5rem}.shopkeeper-crest em{display:none}.counter-keeper-crest{width:56px;height:56px;font-size:2rem}}

/* v0.8 — explicit high-resolution render option, foreground UI remains vector crisp. */
.graphics-quality-control{font:600 .65rem var(--sans);letter-spacing:.08em;color:#e9d4a8;background:#0c1c17ed;border:1px solid #cba66d80;display:flex;align-items:center;gap:8px;min-height:42px;padding:9px 11px;cursor:pointer;backdrop-filter:blur(8px)}
.graphics-quality-control:hover,.graphics-quality-control:focus-visible{border-color:#f3d29c;background:#213527}
.graphics-quality-control span{white-space:nowrap}
@media(max-width:760px){.graphics-quality-control{min-height:35px;padding:7px 8px;font-size:.56rem}.scene-hud{gap:7px}}

/* v0.14 · The Shop Directory — a clear alternative to guessing cabinet locations.
   Names, shelf references, and buttons communicate meaning without relying on colour. */
.section-directory[hidden]{display:none!important}
.section-directory{position:absolute;z-index:22;left:clamp(12px,2.2vw,34px);top:105px;width:min(445px,calc(100vw - 28px));max-height:calc(100dvh - 184px);overflow:auto;overscroll-behavior:contain;padding:20px 19px;background:linear-gradient(150deg,#20352bf8,#0c1915fb 64%,#1d281efc);border:1px solid #cbaa76;box-shadow:0 20px 90px #000d,inset 0 0 0 4px #132118,0 0 0 1px #423020;backdrop-filter:blur(13px);scrollbar-color:#8c6d4c #102018}
.section-directory-head{display:flex;gap:12px;align-items:flex-start;justify-content:space-between;border-bottom:1px solid #b698684a;padding-bottom:10px}.section-directory-head .eyebrow{margin:0 0 4px!important}.section-directory h3{font:normal 2rem/1.13 Georgia,serif;color:#f6dbab;margin:0}.section-directory-note{font:.82rem/1.55 var(--serif);color:#d4c5aa;margin:12px 2px 17px}.section-directory-list{display:grid;gap:8px}.section-directory-card{display:flex;gap:13px;padding:12px 12px 13px;border:1px solid #c09b6861;background:linear-gradient(125deg,#1f372aba,#1a241ccf);transition:border-color .15s,background .15s}.section-directory-card:hover,.section-directory-card:focus-within{border-color:#e3c38b;background:linear-gradient(135deg,#284a34,#202920)}.section-directory-card.section-empty{opacity:.67}.section-symbol{display:grid;place-items:center;align-self:flex-start;width:41px;height:41px;flex:none;color:#e8c18d;font:1.45rem Georgia,serif;border:1px solid #a77f4b9e;background:#131f17;box-shadow:inset 0 0 0 2px #23352b}.section-directory-copy{min-width:0;flex:1}.section-directory-copy h4{font:normal 1.21rem/1.15 Georgia,serif;color:#f3dcb8;margin:1px 0 4px}.section-directory-copy p{font-size:.72rem;line-height:1.3;color:#cbc4af;margin:0 0 5px}.section-directory-copy small{display:block;font:.66rem/1.3 var(--sans);color:#e7bb7c;letter-spacing:.015em}.section-directory-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:11px}.section-directory-actions button{min-height:35px;padding:7px 10px;background:#162a20;border:1px solid #a7865699;color:#f0d19c;font-size:.69rem;font-weight:600}.section-directory-actions button:first-child{background:#ccaa70;border-color:#dabb83;color:#15251b}.section-directory-actions button:hover:not(:disabled){background:#ecd3a2;color:#142419}.section-directory-footer{font:.69rem/1.4 var(--serif);color:#b5ab90;margin:16px 0 0;text-align:center}.section-directory-trigger{border-color:#f0c48b;background:#27402c}
.map-section-links{display:grid;gap:5px;border-top:1px solid #be9d694a;padding-top:12px;margin-top:14px;max-height:230px;overflow:auto}.map-section-links>b{font:normal .86rem Georgia,serif;color:#ecd1a5;margin-bottom:4px}.map-section-links button{display:flex;gap:8px;justify-content:space-between;align-items:center;text-align:left;background:#1e3227;color:#e5d4b4;border:1px solid #b08c564a;padding:7px 8px;font-size:.7rem}.map-section-links button:hover{background:#37503b}.map-section-links small{white-space:nowrap;font-size:.61rem;color:#c3a376}
@media(max-width:760px){.section-directory{top:73px;left:8px;width:min(390px,calc(100vw - 16px));max-height:calc(100dvh - 164px);padding:13px}.section-directory h3{font-size:1.62rem}.section-directory-card{gap:9px;padding:9px}.section-symbol{width:34px;height:34px;font-size:1.15rem}.section-directory-copy h4{font-size:1.04rem}.section-directory-actions{margin-top:8px}.section-directory-actions button{font-size:.63rem;min-height:32px;padding:5px 7px}.scene-hud .section-directory-trigger{font-size:.69rem;padding:7px 9px}}
@media(max-width:420px){.section-directory{max-height:calc(100dvh - 205px)}.section-directory-copy p{font-size:.66rem}}
/* Catalogue sections and return trip into the physical cabinet room. */
.catalog-section-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;margin:24px 0 7px}.catalog-section-card{min-height:104px;display:flex;align-items:center;text-align:left;gap:13px;padding:14px 15px;background:linear-gradient(140deg,#233a2d,#121d17);color:#ecdbb6;border:1px solid #a88c5c80}.catalog-section-card:hover,.catalog-section-card.active{border-color:#e5c38d;background:linear-gradient(140deg,#334935,#1c2e22)}.catalog-section-mark{flex:none;width:36px;height:36px;display:grid;place-items:center;background:#132119;border:1px solid #b18f5e;color:#e8bf82;font-size:1.25rem}.catalog-section-text{display:flex;flex-direction:column;flex:1;gap:6px}.catalog-section-text strong{font:normal 1.13rem/1.15 Georgia,serif}.catalog-section-text small{font:.66rem/1.3 var(--sans);color:#c8c0a9}.catalog-section-card>span:last-child{align-self:flex-start;color:#d9b678}.room-find-button{margin-top:12px;display:block;width:100%;text-align:left;border:1px solid #cba56751;background:#1f3228;color:#e8c997;padding:8px 10px;font-size:.7rem}.room-find-button:hover{background:#344934;border-color:#d5b57c}
@media(max-width:970px){.catalog-section-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:540px){.catalog-section-grid{grid-template-columns:1fr 1fr;gap:8px}.catalog-section-card{padding:9px;min-height:98px;gap:8px}.catalog-section-mark{width:27px;height:27px;font-size:1rem}.catalog-section-text strong{font-size:.92rem}.catalog-section-text small{font-size:.56rem}}

/* The captain's celestial canopy: the invitation to look upward stays available on desktop and touch devices. */
.ceiling-look-button{border-color:#e3c68e!important;color:#f2e3bd!important;background:linear-gradient(95deg,#1d261ecc,#3d3021e6)!important;box-shadow:0 0 21px #a67e303c;white-space:normal}
.ceiling-look-button:hover{border-color:#ffe3a3!important;box-shadow:0 0 28px #e0b87755}
@media(max-width:760px){.scene-actions .ceiling-look-button{max-width:175px;font-size:.61rem!important}}

/* v0.20 — The Captain's Gallery: close inspection of original art.
   Built as an accessible overlay rather than a screenshot of the 3D view. */
.art-backdrop[hidden]{display:none!important}
.art-backdrop{position:fixed;inset:0;z-index:116;display:grid;place-items:center;padding:clamp(10px,2vw,28px);background:#020b09ed;backdrop-filter:blur(12px);overflow:auto}
.art-modal{position:relative;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(315px,1fr);width:min(1180px,100%);max-height:94dvh;min-height:480px;overflow:auto;background:#0c1c17;border:1px solid #b89661;box-shadow:0 25px 100px #000d,inset 0 0 0 5px #8d713a20;color:#f2e8cf}
.art-close{position:absolute;right:15px;top:15px;z-index:4;width:42px;height:42px;font-size:1.9rem;line-height:1;background:#0b1d16e8;color:#f4d6a0;border:1px solid #c6ac79;cursor:pointer}
.art-artwork-column{position:relative;display:flex;flex-direction:column;justify-content:center;min-width:0;padding:clamp(18px,3vw,36px);background:radial-gradient(ellipse at 54% 45%,#3d392b 0%,#17251e 63%,#0b1510 100%);box-shadow:inset -18px 0 36px #0005}
.art-image-viewport{overflow:hidden;display:flex;align-items:center;justify-content:center;position:relative;width:100%;aspect-ratio:10/8;border:9px ridge #b59353;box-shadow:0 15px 35px #0009,inset 0 0 20px #0009;background:#161a15;cursor:zoom-in}
.art-image-viewport img{display:block;width:100%;height:100%;max-width:100%;object-fit:contain;transform:scale(1);transform-origin:var(--art-zoom-x,50%) var(--art-zoom-y,50%);transition:transform .25s ease;user-select:none;-webkit-user-drag:none}
.art-image-viewport.zoomed{cursor:zoom-out}
.art-image-viewport.zoomed img{transform:scale(2.65)}
.art-zoom-control{align-self:center;margin-top:15px;color:#f0d2a4;background:#20362a;border:1px solid #ba9966;padding:12px 22px;font-size:.77rem;letter-spacing:.06em;cursor:pointer}
.art-visual-label{font-size:.63rem;line-height:1.5;letter-spacing:.11em;color:#c4b38f;text-align:center;margin:18px 0 0}
.art-sculpture-visual{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;min-height:410px;border:1px solid #ad8c59;background:radial-gradient(ellipse at 50% 35%,#6c5334 0%,#322b22 43%,#101e19 100%);text-align:center;padding:30px;box-shadow:inset 0 0 0 7px #1d2b2099}
.art-sculpture-visual .sculpture-icon{display:block;font-size:6.5rem;color:#d6b57b;text-shadow:0 9px 28px #0009}
.art-sculpture-visual>span:not(.sculpture-icon){font:clamp(1.4rem,2vw,2.2rem) var(--serif);color:#ecd0a2;letter-spacing:.05em}
.art-sculpture-visual small{font-size:.65rem;color:#c5b18b;letter-spacing:.14em}
.art-sculpture-visual p{max-width:330px;color:#e1d7c3;font-size:.88rem;line-height:1.7}
.art-information{padding:clamp(30px,4vw,62px) clamp(21px,3vw,46px) 35px;min-width:0;overflow-y:auto}
.art-information h2{font:clamp(2rem,4vw,3.6rem) var(--serif);color:#edcf95;line-height:1.05;margin:15px 0 13px}
.art-type{color:#d2ac71;letter-spacing:.09em;text-transform:uppercase;font-size:.67rem;line-height:1.6}
.art-description{color:#f0e5d4;line-height:1.75;font-size:.91rem;margin:24px 0 16px}
.art-story{margin:0 0 24px;border-left:2px solid #c49b5e;padding:12px 0 12px 21px;font:italic 1.05rem/1.7 var(--serif);color:#dbcfb8}
.art-facts{display:grid;grid-template-columns:auto 1fr;gap:8px 14px;margin:0 0 16px;font-size:.75rem;line-height:1.6}
.art-facts dt{color:#d7b783}.art-facts dd{margin:0;color:#e6dfd0}
.art-provenance{font-size:.71rem;line-height:1.55;color:#b7c2b4;margin:16px 0 20px}
.art-navigation{display:flex;justify-content:space-between;gap:10px;margin:12px 0}
.art-navigation button{border:1px solid #aa915f;background:transparent;color:#e6c58e;padding:9px 14px;cursor:pointer}
.art-thumbnails{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:14px 0 21px}
.art-thumb{min-width:0;min-height:97px;padding:6px;border:1px solid #82724e;background:#101f19;color:#edd1a2;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px}
.art-thumb.selected{border-color:#f0c881;background:#314331;box-shadow:inset 0 0 0 1px #f4d99d}
.art-thumb img{width:100%;height:61px;object-fit:cover;display:block}
.art-thumb>span{font-size:2.15rem}
.art-thumb small{font-size:.62rem;line-height:1.3;text-align:center}
.art-footer-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:8px}
.art-footer-actions .btn{font-size:.73rem;padding:12px 14px;flex:1;min-width:150px}
.art-examine-trigger{border-color:#e2bd74!important}
@media(max-width:800px){
 .art-modal{grid-template-columns:1fr;max-height:94dvh}
 .art-artwork-column{padding:18px 18px 14px}
 .art-image-viewport{max-height:37dvh;aspect-ratio:4/3;border-width:6px}
 .art-sculpture-visual{min-height:220px}
 .art-sculpture-visual .sculpture-icon{font-size:3rem}
 .art-information{padding:22px 20px 25px}
 .art-description{margin:15px 0}
 .art-thumbnails{gap:6px}
 .art-footer-actions .btn{min-width:125px}
 .scene-actions{max-height:52dvh;overflow-y:auto;overscroll-behavior:contain;padding:3px;scrollbar-width:thin}
}
@media(prefers-reduced-motion:reduce){.art-image-viewport img{transition:none}}

/* v0.22: interactive, non-blocking graphics diagnostics and automatic 2D fallback. */
.room-graphics-notice{position:absolute;top:104px;left:16px;z-index:31;width:min(420px,calc(100vw - 32px));max-height:calc(100dvh - 190px);overflow:auto;background:#11231eea;border:1px solid #d1aa72;color:#f4e5cb;padding:12px 15px;text-align:left;box-shadow:0 12px 44px #0009;backdrop-filter:blur(10px);font:normal .79rem/1.5 var(--sans)}
.room-graphics-notice strong{display:block;font:normal 1rem Georgia,serif;color:#f9dda9}.room-graphics-notice p{margin:4px 0 7px;color:#e5d3b5}
.graphics-compat{border-color:#90835a}.graphics-fallback{border-color:#ddb67e}
.graphics-notice-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:8px}.graphics-notice-actions button{padding:7px 9px;color:#f3dfb8;border:1px solid #b69b72;background:#233a2c;cursor:pointer;font-size:.75rem}.graphics-notice-actions button:hover{background:#38523b}
.graphics-notice-details{margin-top:8px;border-top:1px solid #c0aa8963;padding-top:5px}.graphics-notice-details summary{cursor:pointer;font-size:.75rem;color:#f3cf92}.graphics-notice-details pre{white-space:pre-wrap;overflow-wrap:anywhere;font:normal .66rem/1.5 monospace;margin:7px 0;max-height:170px;overflow:auto;color:#e8dcc5}
@media(max-width:760px){.room-graphics-notice{top:80px;left:8px;width:min(365px,calc(100vw - 16px));max-height:36dvh;padding:8px 10px;font-size:.7rem}.room-graphics-notice strong{font-size:.88rem}.graphics-notice-actions button{font-size:.65rem;padding:6px 7px}}

/* v0.25 — the owner's approved illustrated likeness and genuine voice clips.
   Motion is intentionally subtle: not a synthetic lip-synced 3D character. */
.shopkeeper-portrait .portrait-arch.keeper-avatar{background:#111b16;overflow:hidden;isolation:isolate}
.shopkeeper-portrait .portrait-arch.keeper-avatar:before{display:none}
.shopkeeper-portrait .portrait-arch.keeper-avatar .animated-keeper-image{
 position:absolute;inset:-3% -8%;width:116%;height:110%;object-fit:cover!important;
 object-position:center 34%;filter:contrast(1.045) saturate(.99)!important;
 transform-origin:50% 78%;animation:keeper-breathe 5.4s ease-in-out infinite;
}
.shopkeeper-portrait .portrait-arch.keeper-avatar.is-speaking .animated-keeper-image{
 animation:keeper-speak 1.1s ease-in-out infinite;
}
.keeper-voice-bars{position:absolute;z-index:4;bottom:12px;left:50%;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;gap:4px;
 background:#091810c9;border:1px solid #b98b51b5;border-radius:99px;padding:8px 14px;box-shadow:0 7px 22px #0009}
.keeper-voice-bars i{width:3px;height:8px;border-radius:5px;background:#e8ba78;opacity:.58}
.keeper-avatar.is-speaking .keeper-voice-bars i{animation:keeper-audio-wave .44s ease-in-out infinite alternate;opacity:1}
.keeper-avatar.is-speaking .keeper-voice-bars i:nth-child(2){animation-delay:.12s}
.keeper-avatar.is-speaking .keeper-voice-bars i:nth-child(3){animation-delay:.28s}
.keeper-avatar.is-speaking .keeper-voice-bars i:nth-child(4){animation-delay:.06s}
.keeper-avatar.is-speaking .keeper-voice-bars i:nth-child(5){animation-delay:.21s}
.keeper-voice-controls{display:flex;flex-wrap:wrap;gap:9px;margin:18px 0 5px}
.keeper-audio-button,.keeper-mute-button{border:1px solid #c9a46c;background:#253a2c;color:#f2dcba;
 border-radius:4px;padding:10px 14px;cursor:pointer;font:600 .73rem/1.35 system-ui,sans-serif;letter-spacing:.015em}
.keeper-audio-button:hover,.keeper-audio-button:focus-visible{background:#40563e;border-color:#efd4a2}
.keeper-mute-button{border-color:#6e7358;background:#18251d;color:#c4c5af}
.counter-keeper-avatar{width:90px;height:90px;flex:none;overflow:hidden;border:2px solid #b99868;border-radius:50%;background:#0c1811;box-shadow:0 0 0 5px #19291ce0,0 10px 18px #0007}
.counter-keeper-avatar img{width:100%;height:100%;object-fit:cover;object-position:center 28%;animation:keeper-breathe 5.4s ease-in-out infinite}
.counter-keeper-avatar.is-speaking img{animation:keeper-speak 1.05s ease-in-out infinite}
.secret-hunt-hud{border-color:#b39a5eaa;max-width:240px}
.secret-hunt-hud strong{font-size:.72rem!important;color:#eed7a6}
.discovery-ribbon{display:block;color:#f7de9a;font:600 .72rem system-ui,sans-serif;letter-spacing:.12em;padding:6px 0}
.modal-price .original-price{font-size:.85em;text-decoration:line-through;opacity:.6;margin-right:7px}
.modal-price small{display:block;font:500 .65rem/1.5 system-ui,sans-serif;color:#c2bb8e;margin-top:7px}
.receipt-row s{color:#9b947c;font-size:.75em}
@keyframes keeper-breathe{0%,100%{transform:translate3d(0,0,0) scale(1.012)}50%{transform:translate3d(0,-3px,0) scale(1.023)}}
@keyframes keeper-speak{0%,100%{transform:translate(0,0) rotate(-.25deg) scale(1.016)}30%{transform:translate(1px,-2px) rotate(.4deg) scale(1.026)}65%{transform:translate(-1px,0) rotate(-.35deg) scale(1.014)}}
@keyframes keeper-audio-wave{from{height:5px}to{height:21px}}
@media(max-width:760px){
 .shopkeeper-portrait .portrait-arch.keeper-avatar .animated-keeper-image{inset:-25px -6%;width:112%;height:155%;object-position:center 18%}
 .keeper-voice-bars{bottom:8px;padding:6px 10px}
 .keeper-voice-controls{margin-top:12px}
 .secret-hunt-hud{display:none}
 .counter-keeper-avatar{width:62px;height:62px}
}
@media(prefers-reduced-motion:reduce){.shopkeeper-portrait .portrait-arch.keeper-avatar .animated-keeper-image,.counter-keeper-avatar img,.keeper-avatar.is-speaking .keeper-voice-bars i{animation:none!important}}

.find-reaction-avatar{width:55px;height:55px;display:inline-block;vertical-align:middle;margin:9px 10px 0 0;border:2px solid #c9a873;border-radius:50%;overflow:hidden;background:#162019;box-shadow:0 3px 12px #0007}
.find-reaction-avatar img{width:100%;height:100%;object-fit:cover;object-position:center 27%;animation:keeper-breathe 5s ease-in-out infinite}
.find-reaction-avatar.is-speaking img{animation:keeper-speak 1.05s ease-in-out infinite}
.discovery-reaction{display:inline-block;margin-top:9px;vertical-align:middle}
@media(prefers-reduced-motion:reduce){.find-reaction-avatar img{animation:none!important}}

/* v0.27 photographed stock examination */
.orbit-inspector{position:relative;min-height:490px;background:radial-gradient(circle at 50% 26%,#344436 0%,#13241f 54%,#101815 100%);border:1px solid rgba(192,156,102,.3);padding:18px;overflow:hidden;display:flex;flex-direction:column;gap:12px;min-width:0}
.orbit-switch{display:flex;flex-wrap:wrap;gap:7px;justify-content:center}.orbit-switch button,.orbit-controls button{border:1px solid #937451;background:#13201b;color:#f2ddb4;border-radius:7px;padding:8px 12px;font-family:inherit;cursor:pointer}.orbit-switch button[aria-pressed=true]{background:#5e3b25;border-color:#d9b06c;color:#fff3d5}
.orbit-stage{position:relative;touch-action:none;height:350px;min-height:240px;display:grid;place-items:center;cursor:grab;user-select:none}.orbit-stage:active{cursor:grabbing}
#productOrbitCanvas{width:min(100%,540px);height:100%;object-fit:contain;pointer-events:none}.orbit-photo-angle{height:100%;width:100%;display:flex;align-items:center;justify-content:center}.orbit-photo-angle[hidden],#productOrbitCanvas[hidden],.orbit-photo-gallery[hidden],.orbit-stage[hidden]{display:none}
.orbit-photo-angle img{max-width:100%;max-height:100%;object-fit:contain;border-radius:4px;filter:drop-shadow(0 18px 17px rgba(0,0,0,.4))}.orbit-hint{position:absolute;bottom:4px;left:0;right:0;text-align:center;font-size:.66rem;letter-spacing:.15em;color:#dcc79f;pointer-events:none}
.orbit-photo-gallery{text-align:center;min-height:320px;max-height:480px;display:grid;place-items:center;gap:8px}.orbit-original-image{max-width:100%;max-height:410px;object-fit:contain;border:1px solid #7c664f}.orbit-photo-count{color:#dfc798;letter-spacing:.12em;font-size:.72rem}
.orbit-controls{display:flex;gap:7px;flex-wrap:wrap;justify-content:center}.orbit-controls button{padding:8px 12px;font-size:.82rem}.orbit-disclaimer{font-size:.75rem;line-height:1.45;color:#d0b992;max-width:560px;margin:0 auto;text-align:center}
@media(max-width:690px){.orbit-inspector{min-height:410px;padding:11px}.orbit-stage{height:275px}.orbit-photo-gallery{min-height:265px}.orbit-original-image{max-height:300px}.orbit-controls button{padding:7px 9px}}

/* v0.27: truthful owner draft controls and magnifiable original photography */
.card-preview-only{font-size:10px;letter-spacing:.08em;color:#d3b984;max-width:138px;text-align:right;line-height:1.5}
.preview-no-sale{display:inline-flex;align-items:center;padding:11px 12px;color:#e4c995;background:#241f15;border:1px solid rgba(202,160,90,.45);border-radius:6px;font-size:12px;max-width:270px;line-height:1.4}
.orbit-photo-gallery{overflow:hidden;position:relative}
.orbit-photo-gallery .orbit-original-image{transform:scale(1);transition:transform .15s ease;transform-origin:center center;cursor:zoom-in}
.orbit-photo-gallery.magnified .orbit-original-image{transform:scale(2.2);cursor:zoom-out}

/* v0.29 — original music, no physical/persona shopkeeper */
.shopkeeper-dialog.visitor-guide-dialog{grid-template-columns:minmax(0,1fr);width:min(680px,100%);min-height:0}
.visitor-guide-dialog .shopkeeper-copy{padding:50px clamp(24px,5vw,55px) 32px}
.visitor-guide-dialog .keeper-identity{display:flex;align-items:center;gap:12px;margin:10px 0 16px;padding:10px 12px;background:linear-gradient(135deg,#223428,#15211a);border:1px solid #9f845766;color:#eedbb6}
.visitor-guide-dialog .keeper-identity-mark{display:grid;place-items:center;width:54px;height:54px;border-radius:50%;border:1px solid #c8a066;background:linear-gradient(160deg,#4b3c21,#12221a);color:#ecd7a1;font-size:1.75rem;box-shadow:inset 0 0 0 3px #14221a,0 0 18px #c79a4440;flex:none}
.visitor-guide-dialog .keeper-identity strong{display:block;font:normal 1.05rem/1.2 Georgia,serif;color:#f3deb4}
.visitor-guide-dialog .keeper-identity small{display:block;font:.71rem/1.45 var(--sans);letter-spacing:.02em;color:#c8bea8}
.visitor-guide-dialog .keeper-note{margin-top:15px;font:.72rem/1.6 var(--sans);color:#bfb49a}
.counter-compass{display:grid;place-items:center;flex:none;width:82px;height:82px;font-size:3rem;color:#d7b577;text-shadow:0 0 17px #e7b66f77;border-radius:50%;border:1px solid #b99868;box-shadow:0 0 0 5px #19291ce0;background:#17281d}
.soundtrack-dock{position:fixed;right:clamp(10px,2vw,25px);bottom:clamp(10px,2vw,24px);z-index:95;display:flex;align-items:center;gap:11px;max-width:min(380px,calc(100vw - 20px));padding:9px 13px;background:linear-gradient(140deg,#101b17f2,#253226f0);color:#efddb8;border:1px solid #a9875480;border-radius:13px;box-shadow:0 9px 38px #000a;backdrop-filter:blur(12px);font-family:Georgia,serif}
.soundtrack-grip{flex:none;width:34px;height:34px;border-radius:10px;border:1px solid #b38d58;background:#16261f;color:#eed0a0;font:700 16px/1 var(--sans);letter-spacing:-.18em;cursor:grab;touch-action:none}
.soundtrack-grip:hover,.soundtrack-grip:focus-visible{background:#2b3d32;outline:2px solid #c7a77c;outline-offset:2px}
.soundtrack-dock.dragging{cursor:grabbing;user-select:none;box-shadow:0 18px 50px #000d}
.soundtrack-dock.dragging .soundtrack-grip{cursor:grabbing}
.soundtrack-icon{font-size:22px;color:#eac78d}
.soundtrack-copy{min-width:0;display:flex;flex-direction:column;gap:2px}
.soundtrack-copy strong{white-space:nowrap;font-size:13px;letter-spacing:.025em;font-weight:normal}
.soundtrack-copy small{font:10px/1.35 Arial,sans-serif;white-space:nowrap;color:#c5b89e}
.music-toggle{flex:none;width:38px;height:38px;border-radius:50%;border:1px solid #c69e62;background:#293a2d;color:#f3d8a1;font-size:19px;cursor:pointer}
.music-toggle:hover,.music-toggle:focus-visible{background:#455842;outline:2px solid #c7a77c;outline-offset:2px}
.volume-label{display:flex;align-items:center;max-width:80px}
.volume-label input{width:70px;accent-color:#d9b578;cursor:pointer}
.sr-only{position:absolute;clip:rect(0,0,0,0);width:1px;height:1px;overflow:hidden;white-space:nowrap}
@media (max-width:680px){.soundtrack-dock{right:8px;bottom:9px;padding:7px 10px;gap:8px}.soundtrack-grip{width:31px;height:31px;font-size:14px}.soundtrack-icon{display:none}.soundtrack-copy strong{font-size:12px}.soundtrack-copy small{font-size:9px}.volume-label{max-width:50px}.volume-label input{width:50px}.music-toggle{width:34px;height:34px}}

/* v0.30 — Welsh Heritage Cabinet: museum-like, restrained and readable. */
.heritage-page{padding:clamp(100px,12vw,170px) clamp(15px,5vw,75px) 90px;color:#eae1d0;background:radial-gradient(ellipse at 50% 0%,#2b4035,#111d18 55%)}
.heritage-intro{max-width:1010px;margin:0 auto 49px;text-align:center}
.heritage-kicker{display:block;font:600 .71rem/1.6 Georgia,serif;letter-spacing:.23em;color:#cfb587;text-transform:uppercase}
.heritage-intro h1{font:clamp(2.9rem,6.6vw,5.5rem)/1.07 Georgia,serif;font-weight:normal;color:#f1dcc1;margin:19px 0}
.heritage-lede{font:clamp(1.08rem,2vw,1.37rem)/1.65 Georgia,serif;max-width:760px;margin:0 auto 20px;color:#e7d9c2}
.heritage-disclaimer{max-width:770px;margin:0 auto 22px;font-size:.83rem;line-height:1.75;color:#b8b7a9}
.heritage-intro-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}
.heritage-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,2vw,30px);max-width:1350px;margin:0 auto}
.heritage-card{min-width:0;display:flex;flex-direction:column;background:linear-gradient(155deg,#202f26,#111e19);border:1px solid #9d87654b;box-shadow:0 15px 42px #0005;overflow:hidden}
.heritage-art-button{position:relative;display:block;width:100%;padding:14px 14px 0;border:0;background:transparent;cursor:pointer;text-align:center}
.heritage-art-button img{width:100%;height:clamp(230px,30vw,365px);display:block;object-fit:cover;object-position:center 48%;border:1px solid #b49b76;box-shadow:0 12px 25px #0007}
.heritage-art-button:hover img,.heritage-art-button:focus-visible img{outline:2px solid #cfb27b;outline-offset:3px}
.heritage-index{position:absolute;top:28px;left:28px;padding:5px 10px;background:#182520dd;border:1px solid #c9aa71;color:#f0d7a8;font:600 .62rem Georgia,serif;letter-spacing:.13em}
.heritage-card-copy{padding:22px 24px 25px;display:flex;flex-direction:column;align-items:flex-start;flex:1}
.heritage-card-copy>small{font:.66rem/1.6 Georgia,serif;text-transform:uppercase;letter-spacing:.12em;color:#c7ab7c}
.heritage-card h2{font:normal clamp(1.55rem,2.3vw,2.15rem)/1.17 Georgia,serif;color:#f0dcbd;margin:10px 0 1px}
.heritage-welsh-name{font:italic .93rem/1.4 Georgia,serif;color:#c5b58c;margin:2px 0 15px}
.heritage-card-copy>p:not(.heritage-welsh-name){font:1rem/1.68 Georgia,serif;color:#d6d0bf;margin:0 0 22px}
.heritage-card-action{background:none;padding:9px 0 5px;border:0;border-bottom:1px solid #b59560;color:#e4c58e;font:600 .8rem Georgia,serif;cursor:pointer;margin-top:auto}
.heritage-card-action:hover{text-decoration:underline}
.heritage-note{max-width:900px;text-align:center;color:#afa993;margin:35px auto 0;line-height:1.65;font-size:.86rem}
.heritage-backdrop[hidden]{display:none!important}
.heritage-backdrop{position:fixed;inset:0;z-index:122;display:grid;place-items:center;padding:clamp(8px,2vw,25px);background:#050d0be8;backdrop-filter:blur(7px)}
.heritage-modal{width:min(1200px,100%);max-height:94dvh;overflow:auto;position:relative;display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);background:#12221b;border:1px solid #b8a072;box-shadow:0 30px 110px #000f;color:#eadfcf}
.heritage-modal-close{position:absolute;right:16px;top:16px;z-index:3;width:43px;height:43px;background:#13241fea;color:#f4dcb5;border:1px solid #b79d71;font-size:1.7rem;cursor:pointer}
.heritage-modal-figure{padding:30px 30px 22px;display:flex;align-items:center;justify-content:center;flex-direction:column;background:linear-gradient(135deg,#24382b,#111b17);min-width:0}
.heritage-image-view{overflow:hidden;width:min(100%,475px);aspect-ratio:4/5;background:#cfbd9d;border:10px ridge #9c7847;cursor:zoom-in}
.heritage-image-view img{width:100%;height:100%;object-fit:cover;transform:scale(1);transform-origin:var(--heritage-x,50%) var(--heritage-y,50%);transition:transform .28s ease;user-select:none}
.heritage-image-view.zoomed img{transform:scale(2.4)}
.heritage-zoom-btn{margin-top:17px;border:1px solid #a98e64;background:#1b3025;color:#eddbb8;padding:10px 16px;cursor:pointer;font-size:.83rem}
.heritage-modal-figure>p{font:.60rem/1.6 Georgia,serif;letter-spacing:.12em;color:#b7a98c;text-align:center}
.heritage-modal-info{padding:35px clamp(22px,3.4vw,48px);overflow:auto}
.heritage-modal-info h2{font:normal clamp(2.1rem,4.4vw,3.9rem)/1.1 Georgia,serif;color:#efd6ad;margin:10px 0 2px}
.heritage-modal-welsh{font:italic 1.14rem Georgia,serif;color:#c3a579;margin:0 0 23px}
.heritage-modal-info dl{display:grid;gap:7px;margin:0 0 25px}
.heritage-modal-info dl div{display:grid;grid-template-columns:85px 1fr;gap:12px;font-size:.8rem}.heritage-modal-info dt{color:#c7ac7e}.heritage-modal-info dd{margin:0;color:#f1e4d0}
.heritage-modal-info h3{font:normal 1.35rem Georgia,serif;color:#eccd96;margin:20px 0 8px}
.heritage-modal-info>p:not(.heritage-modal-welsh):not(.heritage-kicker){line-height:1.8;font-size:.92rem;color:#e0d5c5;margin:8px 0 13px}
.heritage-historical-intro{font:italic 1.06rem/1.65 Georgia,serif!important;color:#ebd6b3!important;border-left:2px solid #b08b56;padding-left:17px}
.heritage-source{display:block;margin:21px 0;color:#f0c98b;line-height:1.5;text-decoration:underline;text-underline-offset:4px;overflow-wrap:anywhere}
.heritage-no-sale{font-size:.68rem!important;color:#b4ae97!important;letter-spacing:.07em}
.heritage-modal-nav,.heritage-modal-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:18px}
.heritage-modal-nav{justify-content:space-between}
.heritage-modal-nav button{border:1px solid #9d835b;background:none;color:#e7c792;padding:10px 14px;cursor:pointer}
.heritage-modal-actions .btn{font-size:.72rem;flex:1;min-width:170px}
.heritage-home-band{background:#17241d;border-block:1px solid #806c4766;padding:38px 0}
.heritage-home-inner{display:flex;align-items:center;justify-content:space-between;gap:22px}
.heritage-home-inner>span{font:italic clamp(1.1rem,1.8vw,1.65rem) Georgia,serif;color:#b6a17a;white-space:nowrap}
.heritage-home-inner h2{font:normal clamp(1.7rem,2.8vw,2.8rem) Georgia,serif;color:#e9d5b2;margin:6px 0 9px}
.heritage-home-inner p:last-child{font:1rem/1.6 Georgia,serif;color:#c9c5b6;margin:0;max-width:550px}
.heritage-home-inner>.btn{white-space:nowrap}
/* Classical restraint for the original entrance imagery: neither background image is altered. */
.cinematic-home .cinematic-scene{box-shadow:none;filter:none}
.cinematic-home .arrival-bar{background:#152119;border-top:1px solid #ae94696b;box-shadow:none}
.cinematic-home .arrival-actions .btn{box-shadow:none;text-shadow:none;border-radius:1px}
.cinematic-home .cinematic-scene .exterior-hotspot-outline{border:1px solid #e4d1aa;box-shadow:none}
.cinematic-home .cinematic-scene .exterior-hotspot:hover .exterior-hotspot-outline{animation:none;box-shadow:none}
.cinematic-home .arrival-message strong{font-family:Georgia,serif;font-weight:normal;letter-spacing:.035em}
/* Align the main site controls with accessible touch targets. */
.heritage-scene-trigger{border-color:#bfa075!important;background:#1b2c24e8!important}
@media(max-width:980px){.heritage-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.heritage-home-inner{flex-wrap:wrap}}
@media(max-width:760px){.heritage-modal{grid-template-columns:1fr;max-height:96dvh}.heritage-modal-figure{padding:14px}.heritage-image-view{width:min(55vw,225px);border-width:5px}.heritage-modal-info{padding:20px}.heritage-page{padding-top:95px}.heritage-grid{gap:10px}.heritage-card-copy{padding:15px}.heritage-art-button{padding:9px 9px 0}.heritage-art-button img{height:245px}.heritage-card h2{font-size:1.4rem}.heritage-card-copy>p:not(.heritage-welsh-name){font-size:.87rem}.heritage-home-inner{justify-content:center;text-align:center}.heritage-home-inner>span{display:none}.heritage-home-inner>.btn{white-space:normal}}
@media(max-width:520px){.heritage-grid{grid-template-columns:1fr}.heritage-art-button img{height:310px}.heritage-card-copy{padding:18px}.heritage-modal-figure{padding:12px 12px 2px}.heritage-image-view{width:min(45vw,180px)}.heritage-modal-figure>p{font-size:.55rem}.heritage-modal-info h2{font-size:2rem}.heritage-modal-info{padding:14px 19px 26px}.heritage-modal-actions .btn{min-width:120px}.heritage-intro-actions .btn{width:100%}}
@media(prefers-reduced-motion:reduce){.heritage-image-view img{transition:none}}

.heritage-product-context{margin:16px 0;padding:15px;background:#27372b;border-left:3px solid #b99c6c}.heritage-product-context p{font-size:.81rem;line-height:1.65;color:#e5dbc5}.heritage-product-context .btn{font-size:.69rem}

/* v0.32: individual antique inspection instead of flattened product-set photos. */
.hero-piece-selector{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;align-items:center;padding:2px 0 5px}
.hero-piece-selector button{font:700 .7rem/1.2 var(--sans);letter-spacing:.09em;color:#e1d3b4;background:#1b2923;border:1px solid #a88b5c78;padding:9px 13px;min-height:38px;cursor:pointer}
.hero-piece-selector button[aria-pressed="true"]{background:#574124;color:#fff0ce;border-color:#e3bc79;box-shadow:0 0 0 1px #372718 inset}
.hero-piece-selector button:focus-visible{outline:2px solid #f6d38d;outline-offset:3px}
.orbit-photo-angle img{transform-style:preserve-3d;will-change:transform;max-width:100%;max-height:100%;object-fit:contain}
@media(max-width:690px){.hero-piece-selector button{font-size:.66rem;min-height:44px;flex:1 1 90px}}

/* v0.33 — desktop, tablet, iOS Safari and Android browser finishing pass */
.platform-actions{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:16px;margin:15px 0}
.platform-actions button,.platform-actions a{background:transparent;border:1px solid #b99664;color:#f2dfb7;padding:11px 15px;border-radius:6px;font:.72rem var(--sans);text-decoration:none;letter-spacing:.04em;min-height:44px}
.platform-actions button:hover,.platform-actions a:hover{background:#243c30}
.platform-help{font:.82rem/1.55 var(--sans);text-align:center;color:#e6d6b5;max-width:560px;margin:14px auto}
.device-check-body{min-height:100dvh;background:radial-gradient(circle at 50% 0,#2f4c37,#0a1512 55%)}
.device-check-shell{max-width:780px;margin:0 auto;padding:clamp(30px,6vw,80px) 22px;color:#eddfc8}
.device-check-shell h1{font-size:clamp(2.4rem,7vw,4.4rem);line-height:1.08}
.device-back{display:inline-block;margin-bottom:36px;color:#e7c687}
.device-check-list{display:grid;grid-template-columns:minmax(140px,1fr) minmax(160px,1.5fr);gap:12px 25px;padding:25px;background:#10241cdc;border:1px solid #b79760}
.device-check-list dt{font-weight:650;color:#edd1a0}.device-check-list dd{margin:0;overflow-wrap:anywhere}
@media(max-width:760px){
  .site-header{padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right))}
  .experience-page{height:100dvh;min-height:440px}
  .scene-actions{right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom))}
  .mobile-move{left:max(13px,env(safe-area-inset-left));bottom:max(14px,env(safe-area-inset-bottom))}
  .mobile-move button{width:56px;height:56px;touch-action:none;-webkit-user-select:none;user-select:none}
  .site-footer{padding-bottom:max(25px,env(safe-area-inset-bottom))}
  .soundtrack-dock{max-width:min(90vw,260px)}
  .device-check-list{grid-template-columns:1fr;gap:6px 0}.device-check-list dd{padding-bottom:13px;border-bottom:1px solid #ffffff1e}
  .shopkeeper-overlay{padding-bottom:max(12px,env(safe-area-inset-bottom))}
}
@media (pointer:coarse){
  .primary-nav button,.category-pills button,.floor-pin,.platform-actions button,.platform-actions a{min-height:44px}
  .photo-thumb{width:48px;height:52px}
  .exterior-hotspot{min-width:44px;min-height:44px}
}
@media(orientation:landscape) and (max-height:520px){
  .experience-page{min-height:320px;height:100dvh}
  .scene-header{display:none}
  .scene-actions{gap:3px;bottom:max(5px,env(safe-area-inset-bottom))}
  .scene-actions .btn{min-height:34px;padding:5px 8px}
  .mobile-move{bottom:max(5px,env(safe-area-inset-bottom))}
  .mobile-move button{height:44px;width:44px}
  .scene-hud{top:4px;right:4px}
}

/* v0.34: legible, stock-driven cabinet ledger and practical shop notices. */
.cabinet-ledger,.real-shop-notices{margin:18px 0 0;padding:15px 12px;border:1px solid #c69c6685;background:#111d17aa}
.cabinet-ledger h4,.real-shop-notices h4{font:normal 1.35rem Georgia,serif;color:#eed8b4;margin:0 0 6px}
.cabinet-ledger>p{font:.75rem/1.5 Georgia,serif;color:#c7b394;margin:0 0 10px}
.cabinet-ledger-entry{border-top:1px solid #ba925051;padding:8px 0}.cabinet-ledger-entry summary{cursor:pointer;display:flex;gap:8px;justify-content:space-between;align-items:center;color:#f0d7a8;font:.81rem Georgia,serif}.cabinet-ledger-entry summary small{color:#cfb584;font-size:.69rem;white-space:nowrap}.cabinet-ledger-entry ul{padding:4px 0 0;margin:0;list-style:none}.cabinet-ledger-entry li{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:7px;align-items:center;padding:8px 3px;border-bottom:1px solid #baa07133;font:.72rem/1.4 var(--sans);color:#dfd0b3}.cabinet-ledger-entry li span:first-child{overflow-wrap:anywhere}.cabinet-ledger-entry li button{background:#d4af77;color:#15251b;border:0;border-radius:2px;padding:6px 9px;min-height:32px;font-size:.69rem;cursor:pointer}.cabinet-ledger-entry li button:focus-visible{outline:2px solid white}
.real-shop-notices p{font:.75rem/1.55 var(--sans);color:#d0c0a5;margin:8px 0}.real-shop-notices strong{color:#f0d6a6}
@media(max-width:410px){.cabinet-ledger-entry li{grid-template-columns:minmax(0,1fr) auto}.cabinet-ledger-entry li button{grid-column:2}}

/* v0.35: unobtrusive public-stock integrity line, readable on small devices. */
.stock-status{font:500 10px/1.35 system-ui,sans-serif;letter-spacing:.015em;color:#d4c9a4;max-width:185px;white-space:normal;text-align:right}
.catalogue-integrity{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin:0 0 1rem;padding:.75rem 1rem;border:1px solid rgba(201,177,114,.23);background:rgba(20,39,31,.63);color:#e4d9b7;font:500 12px/1.5 system-ui,sans-serif;border-radius:6px}
.catalogue-integrity button{font:600 12px/1.4 system-ui,sans-serif;border:1px solid rgba(211,185,122,.5);background:transparent;color:#f6e7bb;border-radius:5px;padding:.48rem .8rem;cursor:pointer}
.catalogue-integrity button:hover,.catalogue-integrity button:focus-visible{background:rgba(211,185,122,.18)}
.catalogue-integrity button:disabled{opacity:.5;cursor:wait}
@media(max-width:830px){.stock-status{display:none}.catalogue-integrity{align-items:flex-start}}

/* Always give visitors meaningful content if the module loader fails. */
.boot-fallback{max-width:980px;margin:5rem auto 2rem;padding:2rem clamp(1rem,4vw,3rem);min-height:35vh;color:#f0e7d5;text-align:center}
.boot-fallback h1{font-family:Georgia,serif;font-size:clamp(2rem,5vw,3rem);margin:1.2rem 0}
.boot-fallback p{line-height:1.65}.boot-fallback a{color:#e0c59c}
.boot-fallback details{max-width:720px;text-align:left;margin:1.5rem auto;overflow-wrap:anywhere}
.boot-fallback pre{white-space:pre-wrap;font-size:.75rem;line-height:1.5}
.boot-products{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1rem;margin-top:2rem;text-align:left}
.boot-products article{border:1px solid #806641;padding:1.1rem;background:#172521;border-radius:8px}
.boot-products h3{font-size:1rem;margin:0 0 .4rem}.boot-products p{margin:0 0 .5rem}.boot-products small{opacity:.7}

/* The owner's own voice captions sit above the movement controls. */
.keeper-voice-caption{position:absolute;z-index:7;left:50%;bottom:max(28px,env(safe-area-inset-bottom));transform:translateX(-50%);max-width:min(680px,86vw);padding:13px 22px;border:1px solid rgba(213,174,101,.7);border-radius:3px;background:rgba(10,17,13,.88);box-shadow:0 8px 30px #0008;color:#f3e6c9;font:italic 1.03rem/1.45 Georgia,serif;text-align:center;pointer-events:none;backdrop-filter:blur(8px)}
.keeper-voice-caption.speaking{animation:keeper-caption-in .22s ease-out}
@keyframes keeper-caption-in{from{opacity:0;transform:translate(-50%,7px)}to{opacity:1;transform:translate(-50%,0)}}
@media(max-width:760px){.keeper-voice-caption{bottom:max(98px,calc(env(safe-area-inset-bottom) + 86px));font-size:.86rem;padding:10px 14px}}
.virtual-stick{position:relative;width:104px;height:104px;border-radius:50%;touch-action:none;display:grid;place-items:center;isolation:isolate;}
.virtual-stick-ring{position:absolute;inset:0;border:1px solid rgba(213,174,101,.54);border-radius:50%;background:radial-gradient(circle,rgba(218,185,120,.11),rgba(8,16,12,.77) 68%);box-shadow:0 5px 20px #0008,inset 0 0 18px #c79b4a22;}
.virtual-stick-knob{position:relative;width:40px;height:40px;border-radius:50%;border:1px solid rgba(236,204,145,.82);background:radial-gradient(circle at 35% 30%,#d8bd8a,#755831 78%);box-shadow:0 3px 10px #0009;transition:transform .06s linear;}
@media(max-width:760px){.mobile-move{display:block;width:104px;height:104px}.virtual-stick{width:104px;height:104px}}
.mobile-menu-toggle{display:none}
@media(max-width:760px){
 .mobile-menu-toggle{display:grid;place-items:center;position:absolute;z-index:12;width:38px;height:38px;border:1px solid rgba(218,185,120,.72);border-radius:50%;background:rgba(10,17,13,.92);color:#f0d8a5;font:700 1.2rem/1 Georgia,serif;box-shadow:0 4px 18px #0008;touch-action:manipulation}
 .mobile-top-toggle{top:8px;right:12px}
 .mobile-side-toggle{right:10px;top:50%;transform:translateY(-50%)}
 .experience-layout .scene-header,.experience-layout .scene-hud{transition:transform .22s ease,opacity .18s ease}
 .experience-layout.top-menu-collapsed .scene-header,.experience-layout.top-menu-collapsed .scene-hud{transform:translateY(calc(-100% - 30px));opacity:0;pointer-events:none}
 .experience-layout.top-menu-collapsed .mobile-top-toggle{top:8px}
 .experience-layout .scene-actions{transition:transform .22s ease,opacity .18s ease}
 .experience-layout.side-menu-collapsed .scene-actions{transform:translateX(calc(100% - 26px));opacity:.30}
 .experience-layout.side-menu-collapsed .scene-actions>*{pointer-events:none}
 .experience-layout.side-menu-collapsed~.mobile-side-toggle{background:rgba(10,17,13,.98)}
}

.keeper-voice-toggle{border-color:#d7b574aa!important;color:#f3e2bd!important;white-space:nowrap}.keeper-voice-toggle[aria-pressed="false"]{opacity:.82;border-color:#c8b8a066!important}
@media(max-width:760px){.keeper-voice-toggle{font-size:.56rem!important}}
