/* experience.css - olmteka.com interface layer shared with studio.olmteka.com: header tools, experience and language dialogs,
   transport bar with the persistent audio player, theme / contrast / colour-vision / type-size variants, hero signal field. */
.no-js .header-tools,.no-js .menu-btn,.no-js .transport{display:none}
.header-tools{display:flex;gap:.5rem;flex-shrink:0}
.header-tools button{text-align:start;display:grid;grid-template-columns:1fr auto;gap:0 .7rem;padding:.45rem .7rem;font:inherit;font-size:.62rem;letter-spacing:.08em;color:inherit;background:transparent;border:1px solid var(--edge);border-radius:2px;cursor:pointer;transition:border-color .3s ease,background .3s ease}
.header-tools button:hover{border-color:var(--jade);background:#78dfb10c}
.header-tools button>strong{font-weight:500;color:var(--jade);letter-spacing:0;font-size:.7rem}
.route-menu{position:relative;font-size:.78rem}.route-menu summary{list-style:none;cursor:pointer;display:inline-flex;gap:.5rem;align-items:center;padding:.3rem 0;letter-spacing:.08em;font-size:.72rem;text-transform:uppercase;color:var(--muted)}
.route-menu summary::-webkit-details-marker{display:none}.route-menu summary:hover{color:var(--jade)}
.route-panel{position:absolute;inset-inline-end:0;inset-block-start:calc(100% + .6rem);min-inline-size:17rem;display:grid;background:var(--panel);border:1px solid var(--edge);border-radius:3px;padding:.5rem;z-index:50;box-shadow:0 18px 50px #0007}
.route-panel a{display:flex;justify-content:space-between;gap:1rem;padding:.55rem .7rem;text-decoration:none;border-radius:2px;font-size:.82rem}.route-panel a:hover{background:#78dfb10f;color:var(--jade)}.route-panel i{font-style:normal;color:var(--jade)}
/* Dialogs */
.studio-dialog{background:var(--panel);color:var(--paper);border:1px solid var(--jade);border-radius:3px;padding:clamp(1rem,3vw,2rem);inline-size:min(60rem,calc(100% - 2rem));max-block-size:calc(100dvh - 2rem);overflow:auto;margin:auto}
.studio-dialog::backdrop{background:#010705cc;backdrop-filter:blur(8px)}
.studio-dialog form>header,.studio-dialog-header{display:flex;align-items:start;justify-content:space-between;gap:1rem;border-block-end:1px solid var(--edge);padding-block-end:1rem}
.studio-dialog form>header span,.studio-dialog-header p{font:500 .62rem var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--copper);margin:0}
.studio-dialog form>header h2,.studio-dialog-header h2{font-size:1.7rem;margin-block:.4rem 0}
.studio-dialog form>header button,.studio-dialog-header button{font:inherit;font-size:1.3rem;line-height:1;color:inherit;background:transparent;border:1px solid var(--edge);border-radius:2px;padding:.3rem .75rem;cursor:pointer}
.studio-dialog form>header button:hover,.studio-dialog-header button:hover{border-color:var(--jade);color:var(--jade)}
.studio-dialog-header button i::after{content:"×";font-style:normal}
.experience-category-rail{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.55rem;margin-block-start:1.2rem}
.experience-category{display:contents}
.experience-category-trigger{grid-row:1;display:flex;gap:.7rem;align-items:center;text-align:start;padding:.9rem .65rem;min-block-size:4rem;font:inherit;color:inherit;background:#ffffff04;border:1px solid var(--edge);border-radius:2px;cursor:pointer;transition:border-color .3s ease,background .3s ease}
.experience-category-trigger>span:first-child{font:.6rem var(--mono);color:var(--jade)}
.experience-category-trigger strong{font-size:.78rem;display:block;font-weight:550}
.experience-category-trigger small{font-size:.55rem;color:var(--muted);letter-spacing:0;line-height:1.4;display:block}
.experience-category-trigger[aria-expanded=true]{background:#78dfb112;border-color:var(--jade)}
.experience-category-panel{grid-column:1/-1;grid-row:2;padding:1rem 0 .25rem}
.experience-category-panel fieldset{border:0;padding:0;margin:0;min-inline-size:0}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.segmented-control{display:flex;gap:.5rem;flex-wrap:wrap}
.segmented-control button{font:inherit;font-size:.8rem;padding:.6rem 1rem;min-block-size:44px;color:inherit;background:transparent;border:1px solid var(--edge);border-radius:2px;cursor:pointer}
.segmented-control button[aria-pressed=true],.experience-category-trigger[aria-pressed=true]{border-color:var(--jade);background:#78dfb116}
.control-choice,.control-select{display:flex;gap:1rem;align-items:center;justify-content:space-between;padding:.8rem 0;border-block-end:1px solid var(--edge);font-size:.85rem}
.control-choice strong,.control-select strong{display:block;font-size:.85rem;font-weight:550}
.control-choice small,.control-select small{display:block;color:var(--muted);font-size:.72rem;letter-spacing:0}
.control-choice input{width:1.2rem;height:1.2rem;accent-color:var(--jade);flex-shrink:0}
.control-subgroup{margin-block-start:1.3rem;font-size:.8rem}.control-subgroup>.segmented-control{margin-block-start:.7rem}
.control-select{align-items:start;flex-wrap:wrap}.control-select select{color:var(--paper);background:var(--panel);padding:.65rem;border:1px solid var(--edge);max-inline-size:100%;font:inherit}
.control-note{font-size:.72rem;color:var(--muted);margin-block:1rem}
.control-action{display:flex;gap:1rem;align-items:center;justify-content:space-between;text-align:start;width:100%;margin-block:.8rem;font:inherit;color:inherit;background:transparent;border:1px solid var(--edge);border-radius:2px;padding:.75rem 1rem;cursor:pointer}
.control-action strong{display:block;font-size:.9rem}.control-action small{color:var(--muted);font-size:.72rem;letter-spacing:0;display:block}
.control-action[aria-pressed=true]{border-color:var(--jade)}
.performance-advisory{padding:1rem;border:1px solid var(--copper);font-size:.8rem}.performance-advisory button{font:inherit;color:inherit;background:transparent;border:1px solid var(--edge);padding:.5rem .8rem;cursor:pointer}
.audio-control-field>p{font-size:.8rem;color:var(--muted)}
.studio-track-select{display:grid;gap:.5rem;font-size:.8rem}.studio-track-select select{font:inherit;padding:.6rem;background:var(--panel);color:var(--paper);border:1px solid var(--edge)}
.studio-audio-range{display:grid;grid-template-columns:5rem 1fr 3.5rem;gap:.7rem;align-items:center;font-size:.75rem;margin-block:1rem}.studio-audio-range input{inline-size:100%;accent-color:var(--jade)}
.studio-audio-status{font-size:.73rem;color:var(--muted)}
.audio-bars{display:inline-flex;gap:2px;align-items:center;height:18px}.audio-bars b{display:block;width:2px;height:10px;background:var(--jade)}
/* Language dialog */
.language-dialog{inline-size:min(40rem,calc(100% - 2rem))}
.language-editions header{display:flex;justify-content:space-between;gap:1rem;align-items:end;padding-block:1.2rem .6rem}
.language-editions header>div>p{font:500 .62rem var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--copper);margin:0}
.language-editions header h3{margin:0}.language-editions header>p{font-size:.85rem;color:var(--muted);margin:0}
.language-editions ul{list-style:none;padding:0;margin:0}
.language-editions li>a{display:flex;gap:1rem;align-items:center;text-decoration:none;border-block:1px solid var(--edge);padding:1rem 0;margin-block-start:-1px}
.language-editions li>a:hover{color:var(--jade)}.language-code{font:500 .7rem var(--mono);color:var(--jade);min-inline-size:2.2rem}
.language-editions li>a>i{margin-inline-start:auto;font-style:normal;color:var(--jade)}
.has-open-dialog{overflow:hidden}
/* Transport */
.transport{position:fixed;z-index:35;inset:auto max(1rem,env(safe-area-inset-right)) max(1rem,env(safe-area-inset-bottom)) auto;display:flex;align-items:stretch;gap:.4rem;max-inline-size:calc(100% - 2rem);filter:drop-shadow(0 5px 20px #0008)}
.transport button{display:flex;align-items:center;gap:.65rem;min-block-size:46px;background:#0b1510ed;backdrop-filter:blur(16px);border:1px solid var(--edge);border-radius:2px;color:var(--paper);padding:.6rem .8rem;font:inherit;cursor:pointer;transition:border-color .3s ease,box-shadow .3s ease}
.transport button:hover{border-color:var(--jade);box-shadow:inset 0 0 18px #78dfb112}
.transport small{display:block;color:var(--muted);font-size:.6rem;letter-spacing:0}.transport b{font-size:.68rem;text-align:start;font-weight:600}
.transport .persistent-audio-player{display:flex;inline-size:21rem;max-inline-size:100%}
.transport .audio-step-button{flex:0 0 44px;justify-content:center;padding:.5rem}
.transport .persistent-audio-toggle{flex:1;min-inline-size:0;justify-content:space-between;border-inline:0}
.persistent-audio-copy{min-inline-size:0;text-align:start;overflow-wrap:anywhere}.persistent-audio-copy>strong{font-size:.7rem;font-weight:550;display:block}
.transport .audio-track-index{font:.6rem var(--mono)}
.studio-audio-bars{display:flex;gap:2px;align-items:center;height:18px;flex-shrink:0}.studio-audio-bars i{display:block;width:2px;height:10px;background:var(--jade)}
body[data-studio-audio=playing].vfx-ready .studio-audio-bars i{animation:ax-eq 1.3s ease-in-out infinite alternate}.studio-audio-bars i:nth-child(2n){height:18px;animation-delay:-.5s!important}.studio-audio-bars i:nth-child(3n){height:6px;animation-delay:-.8s!important}
@keyframes ax-eq{from{transform:scaleY(.4);opacity:.35}to{transform:scaleY(1);opacity:.8}}
.site-footer{padding-block-end:7rem}
/* Pointer-reactive surfaces (surface-motion.js writes --surface-x / --surface-y on each .scene) */
.scene::before{content:"";position:absolute;z-index:-1;inset:1rem -1rem;pointer-events:none;opacity:0;background:radial-gradient(ellipse 30rem 22rem at var(--surface-x,50%) var(--surface-y,50%),#cfa86b10,transparent 80%);transition:opacity 1s ease}
.vfx-ready .scene.is-vfx-active::before{opacity:1}
.scene::after{content:"";position:absolute;inset:auto 0 -1px;block-size:1px;pointer-events:none;background:linear-gradient(90deg,transparent,var(--copper),transparent);transform:scaleX(.1);transform-origin:left;opacity:.25;transition:transform 1.5s cubic-bezier(.16,1,.3,1),opacity 1s ease}
.vfx-ready .scene.is-vfx-active::after{transform:scaleX(1);opacity:.6}
.studio-height-transition{overflow:clip}
/* Low mode / reduced motion / high contrast gates */
html[data-mode=low] *,html[data-motion=reduce] *,html[data-contrast=high] *{animation:none!important;transition:none!important}
html[data-mode=low] .stone-canvas,html[data-contrast=high] .stone-field,html[data-mode=low] .grain,html[data-contrast=high] .grain{display:none}
html[data-type-size=large]{font-size:19px}html[data-type-size=xlarge]{font-size:22px}
html[data-link-cues=emphasized] a{text-decoration:underline}
html[data-readable-type=true] :is(h1,h2,h3,h4,p,button,summary,a,li,dt,dd){font-family:Arial,Helvetica,sans-serif!important;letter-spacing:.015em;line-height:1.5}html[data-readable-type=true] h1{line-height:1.2}
/* Light theme: plain warm paper, dark ink, no glow layers over the text */
html[data-theme=light]{color-scheme:light;--mx-white:#8f8a7e;--ink:#f3efe7;--panel:#faf8f3;--panel-2:#ebe6dc;--paper:#1c1d20;--muted:#55585e;--jade:#1f6b5a;--jade-deep:#1f6b5a;--copper:#8a5a1e;--edge:#b9b3a6;--edge-soft:#d9d3c7;--text-soft:#2e3034}
html[data-theme=light] body{background:var(--ink)}
html[data-theme=light] .grain{display:none}html[data-theme=light] .stone-field{background:var(--ink)}html[data-theme=light] .stone-field .aurora{background:radial-gradient(70rem 42rem at 12% 18%,#8a5a1e12,transparent 65%),radial-gradient(56rem 44rem at 88% 78%,#1f6b5a10,transparent 65%)}
html[data-theme=light] .site-header{background:#f3efe7f0;border-block-end-color:var(--edge-soft)}html[data-theme=light] .nav{background:#f3efe7fa}
html[data-theme=light] .transport button{background:#faf8f3f5;color:var(--paper)}
html[data-theme=light] .hero-bg img{filter:grayscale(.6) contrast(1.05) brightness(1.08) saturate(1.1)}html[data-theme=light] .hero-grade{background:linear-gradient(180deg,#f3efe7aa,#f3efe755 35%,#f3efe7f0 80%,var(--ink)),radial-gradient(60rem 30rem at 70% 20%,#8a5a1e22,transparent 70%)}html[data-theme=light]:not([data-contrast=high]) .hero .lead{color:#2e3034}html[data-theme=light] .fact{background:#faf8f3e6}html[data-theme=light] .btn{background:#faf8f3aa}html[data-theme=light] .embers{opacity:.55;mix-blend-mode:multiply}html[data-theme=light] .rail li::before{background:var(--ink);box-shadow:0 0 0 4px #f3efe7}html[data-theme=light] .sheen{background:linear-gradient(100deg,var(--paper) 0 40%,#6a4a1e 50%,var(--paper) 60% 100%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text}
html[data-theme=light] :is(.project-disclosure,.doc-card,.impi-card,.contact-card,.notice,.route-panel,.studio-dialog,.laws li,.fact-cell,.brand-cell,.service-cell,.principles li,.policy-panel,.ip-panel,.contact-cell,.fact){background:var(--panel)}html[data-theme=light] .project-detail{background:#f3efe7}html[data-theme=light] .project-expander-art img{background:#fff}html[data-theme=light] .ip-list li{background:#ffffff80}html[data-theme=light] .hero-shaft{mix-blend-mode:multiply;opacity:.5}html[data-theme=light] .impi-card::after{color:#8a5a1e14}html[data-theme=light] .footer-identity-stage img{filter:none}
html[data-theme=light]:not([data-contrast=high]) :is(.doc p,.doc li,.project-story p,.doc-card p){color:#2e3034}
html[data-theme=light] .laws li a,html[data-theme=light] .updates-log h4{color:var(--paper)}
html[data-theme=light] .clause{background:#8a5a1e12}
html[data-theme=light] .scene::before,html[data-theme=light] .scene::after{display:none}
html[data-theme=light] .site-footer{background:var(--panel-2)}
html[data-theme=light] .clients a{color:var(--paper)}
html[data-theme=light] .header-tools button>strong,html[data-theme=light] .brand small{color:var(--jade)}
/* High contrast */
html[data-contrast=high]{--mx-tri:linear-gradient(90deg,#fff,#fff);--paper:#fff;--muted:#fff;--jade:#b3ffd9;--edge:#bdc9bf;--edge-soft:#bdc9bf;--ink:#000;--panel:#000;--panel-2:#000;--copper:#ffd2a8;--text-soft:#fff}
html[data-contrast=high] :is(body,.site-header,.studio-dialog,.transport button,.project-disclosure,.project-detail,.doc-card,.impi-card,.notice,.route-panel,.nav,.site-footer,.fact,.laws li,.fact-cell,.brand-cell,.service-cell,.principles li,.policy-panel,.ip-panel,.contact-cell,.contact-card){background:#000;color:#fff}
html[data-contrast=high] .doc p,html[data-contrast=high] .doc li{color:#fff}
/* Colour-vision support profiles (same values as the studio) */
html[data-colour-vision=deuteranopia]{--jade:#ffcf66;--copper:#78c7ff;--edge:#aabdd0;--support-filter:saturate(.72) contrast(1.12) sepia(.08)}
html[data-colour-vision=protanopia]{--jade:#f5c451;--copper:#6ecff6;--edge:#b2bdcd;--support-filter:saturate(.68) contrast(1.13) sepia(.12)}
html[data-colour-vision=tritanopia]{--jade:#f7f7f7;--copper:#ff9ad5;--edge:#c7bccc;--support-filter:saturate(.66) contrast(1.14)}
html[data-colour-vision=achromatopsia]{--jade:#fff;--copper:#ddd;--edge:#aaa;--support-filter:grayscale(1) contrast(1.2)}
html:not([data-colour-vision=standard])[data-colour-vision] :is(img,video,canvas){filter:var(--support-filter)!important}
html:not([data-colour-vision=standard])[data-colour-vision] a{text-decoration:underline}
html[data-theme=light][data-colour-vision=deuteranopia],html[data-theme=light][data-colour-vision=protanopia]{--jade:#654900;--copper:#005a79;--edge:#425867}
html[data-theme=light][data-colour-vision=tritanopia]{--jade:#76264f;--copper:#242424;--edge:#705261}
html[data-theme=light][data-colour-vision=achromatopsia]{--jade:#111;--copper:#222;--edge:#555}
/* Bars sit above the sticky header; the share line before the footer */
.ax-share-line{color:var(--muted)}.ax-share-line strong{color:var(--copper);font:500 .66rem var(--mono);letter-spacing:.14em;text-transform:uppercase}
@media(max-width:800px){.experience-category-rail{grid-template-columns:repeat(3,minmax(0,1fr))}.experience-category-trigger{grid-row:auto}.experience-category-panel{grid-row:auto;order:2}.experience-category-trigger small{display:none}.transport{gap:.3rem}.transport .persistent-audio-player{inline-size:18rem}.transport .experience-settings-button small{display:none}.route-menu{display:none}}
@media(max-width:760px){.header-tools button>span:not(.sr-only){display:none}.header-tools button{grid-template-columns:auto;padding:.4rem .5rem}}
@media(max-width:520px){.transport{inset:auto .6rem max(.6rem,env(safe-area-inset-bottom));max-inline-size:calc(100% - 1.2rem);display:grid;grid-template-columns:44px minmax(0,1fr);gap:.3rem}.transport .experience-settings-button{justify-content:center;padding:.5rem}.transport .experience-settings-button>span:last-child{display:none}.transport .persistent-audio-player{inline-size:100%}.transport .audio-step-button{flex-basis:40px;inline-size:40px;min-inline-size:40px}.transport .persistent-audio-toggle{padding:.5rem;gap:.35rem}.studio-audio-bars{display:none}.studio-dialog{padding:1rem}.experience-category-rail{display:block}.experience-category-trigger{width:100%;margin-block:.4rem;padding:.6rem;min-block-size:44px}.experience-category-trigger small{display:block}.experience-category-panel{padding:.5rem 0 1rem}.studio-audio-range{grid-template-columns:4rem 1fr 2.5rem}.control-select select{width:100%}}
@media(forced-colors:active){.transport button,.experience-category-trigger,.studio-dialog{background:Canvas;color:CanvasText;border-color:ButtonText}.studio-audio-bars{display:none}img,video,canvas{filter:none!important}.scene::before,.scene::after{display:none}}
