/* ORA editorial system — shared foundation, September 2026. */
:root{--bg:#151311;--bg-soft:#1c1916;--text:#f1eee9;--muted:#b9b2aa;--gutter:clamp(20px,4vw,80px);--container:1760px;--radius-panel:0px;--radius-card:0px}
html{scroll-padding-top:100px}
body.ora-editorial{background:var(--bg);overflow-x:clip}
.ora-editorial .container{width:min(calc(100% - var(--gutter)*2),var(--container))}
.ora-editorial .site-header{padding:0;background:var(--bg)}
.ora-editorial .navbar,.ora-editorial .site-header.scrolled .navbar{min-height:90px;padding:20px 0;border:0;border-radius:0;background:transparent;box-shadow:none;backdrop-filter:none}
.ora-editorial .logo{width:82px;height:auto}
.ora-editorial .desktop-nav{justify-self:end;gap:28px}
.ora-editorial .desktop-nav a{font-size:0.875rem;padding:8px 0;border-radius:0;background:none;color:var(--text)}
.ora-editorial .desktop-nav a:hover{color:var(--muted)}
.ora-editorial .nav-actions:empty{display:none}
.ora-editorial .navbar{grid-template-columns:auto 1fr auto;gap:0}
.ora-editorial .menu-button{border-radius:0;background:none;font-size:0.875rem}
.ora-editorial .mobile-menu{top:80px;border-radius:0;background:var(--bg)}
.ora-editorial .mobile-menu a{border-radius:0;font-size:1.5rem}
.ora-editorial .scroll-progress{display:none}
.ora-editorial .kicker{font-size:0.75rem;font-weight:450;letter-spacing:.1em}
.ora-editorial .h2{font-size:clamp(2.25rem,4.8vw,5rem);line-height:1.06;letter-spacing:-.055em;font-weight:450}
.ora-editorial .h1{line-height:1.04}
.ora-editorial .lead{font-size:clamp(1.0625rem,1.45vw,1.4375rem);line-height:1.5}
.ora-editorial .section{padding-block:clamp(72px,9vw,160px)}
.ora-editorial .button{border-radius:0;background:none;color:inherit;box-shadow:none;padding-inline:0;border:0;border-bottom:1px solid var(--line-strong);font-weight:450}
.ora-editorial .button:hover{transform:none;background:none}
.ora-opening{padding-top:160px;padding-bottom:58px}
.opening-topline,.opening-bottom{display:flex;justify-content:space-between;gap:24px;font-size:0.875rem}
.opening-topline{color:var(--muted)}
.ora-opening h1{font-size:clamp(4rem,9.2vw,10.375rem);font-weight:450;letter-spacing:-.07em;line-height:1.03;margin:54px 0 44px;max-width:14ch}
.ora-opening h1 span{color:#aaa096}
.opening-bottom{align-items:end}
.opening-bottom p{margin:0;color:var(--muted)}
.opening-bottom a{display:flex;gap:50px;padding:12px 0}
.ora-home #work{padding-top:45px}
.ora-home #work>.container>.section-head{border-top:1px solid var(--line-strong);padding-top:22px;margin-bottom:74px;grid-template-columns:1fr 1fr}
.ora-home #work>.container>.section-head .h2{font-size:clamp(1.625rem,3vw,2.75rem)}
.ora-home #work>.container>.section-head .lead{font-size:1rem;max-width:330px}
.ora-home .work-list{display:flex;flex-direction:column;gap:clamp(90px,12vw,200px)}
.ora-home .project-row{display:flex;flex-direction:column;gap:24px;border:0;border-radius:0;background:none;overflow:visible;box-shadow:none;transform:none!important}
.ora-home .project-info{padding:0;min-height:0;background:none;border:0;display:grid;grid-template-columns:72px 1fr;gap:24px}
.ora-home .project-info:before,.ora-home .project-info:after{display:none}
.ora-home .project-index{display:block;border:0;padding:8px 0;color:var(--muted);font-size:0.875rem}
.ora-home .project-index span+span{display:none}
.ora-home .project-info-main{display:grid;grid-template-columns:1fr auto;align-items:end;gap:14px 40px}
.ora-home .project-info-main .h3{font-size:clamp(2.25rem,5.7vw,5.875rem);font-weight:450;line-height:1.04;letter-spacing:-.055em;margin:0}
.ora-home .project-info-main>p{grid-row:2;grid-column:1;max-width:630px;margin:0;font-size:1rem;color:var(--muted)}
.ora-home .project-tags{display:none}
.ora-home .project-info-bottom{grid-row:1/3;grid-column:2;display:flex;flex-direction:column-reverse;align-items:end;gap:12px;margin:0;padding:0;border:0}
.ora-home .project-info-bottom .small{font-size:0.8125rem}
.ora-home .project-visual{display:block;min-height:0;height:auto;aspect-ratio:3/2;border-radius:0;overflow:hidden;background:#24201b;isolation:isolate}
.ora-home .project-visual picture{width:100%;height:100%}
.ora-home .project-visual img{height:100%;object-fit:contain;transform:none;transition:transform .7s var(--ease)}
.ora-home .project-visual:after,.ora-home .project-badge{display:none}
.ora-home .istana-project-visual img{object-fit:cover;padding:0}
@media(hover:hover){.ora-home .project-visual:hover img{transform:scale(1.025)}}
.ora-editorial .facts,.ora-editorial .principles-strip{border:0;background:none;border-radius:0;box-shadow:none;gap:30px}
.ora-editorial .fact,.ora-editorial .principle{background:none;border-radius:0;border:0;padding:0}
.ora-editorial .principles-strip{margin-top:42px;padding-top:26px;border-top:1px solid var(--line)}
.ora-editorial .services-wrap{border:0;border-radius:0;background:none}
.ora-editorial .service-row{border-radius:0;background:none;padding-inline:0}
.ora-editorial .service-row h3{font-weight:450}
.ora-editorial .archive-card{border:0;border-radius:0;background:none;box-shadow:none}
.ora-editorial .archive-media{border-radius:0}
.ora-editorial .archive-meta{padding:18px 0}
.ora-editorial .archive-row{gap:clamp(24px,4vw,80px)}
.ora-editorial .archive-grid{gap:80px}
.ora-editorial .contact-panel{background:none;border:0;border-top:1px solid var(--line-strong);border-radius:0;padding:30px 0 0;box-shadow:none}
.ora-editorial .contact-panel:before,.ora-editorial .contact-panel:after{display:none}
.ora-editorial .contact-top .kicker{color:var(--muted)!important}
.ora-editorial .contact-bottom{gap:40px;margin-top:60px}
.ora-editorial .contact-bottom h2{font-size:clamp(2.75rem,7.5vw,7.625rem);font-weight:450}
.ora-editorial .contact-links a{overflow-wrap:anywhere}
.ora-editorial .site-footer{padding-block:28px;border-top:1px solid var(--line)}
/* Shared case-study architecture; preserve each project's artwork and interactions. */
.ora-case .case-hero{padding-top:160px}
.ora-case .case-intro-panel{border:0;border-radius:0;background:none;box-shadow:none;overflow:visible}
.ora-case .case-intro-panel:before,.ora-case .case-intro-panel:after{display:none}
.ora-case .case-intro-copy{padding:0 0 64px}
.ora-case .case-title,.ora-case .case-intro-panel.opera .case-title{font-size:clamp(3.25rem,7.7vw,8.25rem);font-weight:450;line-height:1.03;letter-spacing:-.06em;max-width:17ch}
.ora-case .case-intro-copy .lead{max-width:670px;margin-top:28px}
.ora-case .case-meta-strip{padding:0;border-block:1px solid var(--line);background:none;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
.ora-case .case-meta-strip div,.ora-case .case-meta-strip div+div{border:0;padding:22px 0;min-width:0}
.ora-case .case-meta-strip dt{font-size:0.75rem;color:var(--muted)}
.ora-case .case-meta-strip dd{font-size:0.875rem;overflow-wrap:anywhere}
.ora-case .key-visual-block{border:0;border-radius:0;box-shadow:none;margin-top:50px}
.ora-case .key-visual-card{border-radius:0;box-shadow:none!important}
.ora-case .key-visual-card figcaption{border-radius:0}
.ora-case .case-story-copy article,.ora-case .scope-list,.ora-case .result-panel,.ora-case .next-project{border-radius:0;background:none;box-shadow:none}
.ora-case .next-project{padding:36px 0;border:0;border-top:1px solid var(--line-strong)}
.ora-case .next-project strong{font-size:clamp(1.875rem,5vw,4.625rem);line-height:1.1;font-weight:450}
/* The Istana: warm paper, large original A4 pages, no global parallax. */
.ora-istana{--bg:#e9e3d9;--text:#302c26;--muted:#5e554c;--line:rgba(48,44,38,.18);--line-strong:rgba(48,44,38,.3);--accent-strong:#5c503f;color-scheme:light}
.ora-istana .logo{filter:brightness(0)}
.ora-istana .desktop-nav a{color:var(--text)}
.ora-istana .mobile-menu{color:var(--text)}
.ora-istana .case-title{font-size:clamp(4.125rem,12.5vw,13.375rem);max-width:none;line-height:1.03}
.case-subtitle{font-size:clamp(1.5rem,3.4vw,3.375rem);letter-spacing:-.04em;margin:20px 0 0;line-height:1.14}
.ora-istana .case-intro-copy .lead{max-width:640px;font-size:1.125rem}
.istana-cover-scene{padding-top:10px}
.istana-cover-scene figure{margin:0}
.istana-cover-scene img{width:100%;height:auto;max-height:1000px;object-fit:cover}
.istana-cover-scene figcaption{display:flex;justify-content:space-between;gap:20px;padding:16px var(--gutter);font-size:0.75rem}
.ora-istana .case-story{grid-template-columns:1fr 1fr;gap:9vw}
.ora-istana .case-story-copy article{padding:0;border:0}
.ora-istana .scope-list{border:0;padding:0}
.ora-istana .scope-list li{border-color:var(--line)}
.ora-istana .istana-section{background:#d8d0c4;border:0;padding-block:clamp(72px,10vw,160px)}
.ora-istana .istana-section--dark{background:#33382f;color:#f0ede5;--muted:#c5c6b9;--line:rgba(255,255,255,.2)}
.ora-istana .istana-section:nth-of-type(odd):not(.istana-section--dark){background:#e4dfd4}
.ora-istana .istana-section-head{grid-template-columns:1.2fr .8fr;gap:8vw;align-items:start;margin-bottom:80px}
.ora-istana .istana-section-head .h2{max-width:16ch}
.ora-istana .istana-section-head .lead{font-size:1.125rem;padding-top:30px}
.ora-istana .istana-editorial-sequence{display:grid;grid-template-columns:1fr 1fr;gap:clamp(55px,7vw,120px) clamp(24px,5vw,90px);align-items:start;max-width:1300px;margin:auto}
.ora-istana .istana-page-card{width:100%;max-width:none;margin:0}
.ora-istana .istana-page-card:nth-child(even){padding-top:100px}
.ora-istana .istana-page-card--feature{grid-column:auto}
.ora-istana .istana-page-frame{border:0;border-radius:0;overflow:visible;background:transparent;box-shadow:8px 20px 30px rgba(34,28,19,.16);transform:translateY(var(--page-drift,0px));will-change:auto}
.ora-istana .istana-page-frame img{width:100%;height:auto;aspect-ratio:1241/1754;object-fit:contain;transform:none!important}
.ora-istana .istana-page-card figcaption{padding-top:22px;font-size:0.75rem;letter-spacing:.02em;text-transform:none;line-height:1.4;color:var(--muted)}
.ora-istana .istana-closing-section{background:var(--bg)}
.ora-istana .istana-closing-grid{grid-template-columns:1fr 1fr;gap:12vw}
.ora-istana .istana-closing-grid .istana-page-card{max-width:500px;justify-self:end}
.ora-editorial .portfolio-dialog,.ora-editorial .catalog-lightbox{color:#f1eee9;--muted:#b9b2aa;background:#151311}
/* Tablet recomposes metadata and exhibition alignment before mobile. */
@media(max-width:1100px){
 .ora-opening{padding-top:140px}.ora-opening h1{font-size:10vw}
 .ora-home .project-info{grid-template-columns:40px 1fr;gap:16px}
 .ora-home .project-info-main{grid-template-columns:1fr}.ora-home .project-info-main>p{grid-row:auto}
 .ora-home .project-info-bottom{grid-row:auto;grid-column:1;flex-direction:row;justify-content:space-between;align-items:center}
 .ora-home .project-row:nth-child(3),.ora-home .project-row:nth-child(5){width:100%}
 .ora-istana .istana-page-card:nth-child(even){padding-top:60px}
 .ora-case .case-title{font-size:8vw}
 .ora-istana .case-title{font-size:13vw}
}
@media(max-width:760px){
 :root{--gutter:22px}
 .ora-editorial .navbar,.ora-editorial .site-header.scrolled .navbar{min-height:76px;padding-block:15px}
 .ora-editorial .logo{width:69px}.ora-editorial .nav-actions{justify-self:end}.ora-editorial .navbar{grid-template-columns:auto 1fr}
 .ora-opening{padding-top:115px;padding-bottom:30px}
 .opening-topline{font-size:0.75rem;gap:15px}.opening-topline span{max-width:145px}
 .ora-opening h1{font-size:clamp(2.8125rem,10.7vw,5.0625rem);letter-spacing:-.06em;margin:42px 0 32px}
 .opening-bottom{align-items:start;font-size:0.8125rem;gap:30px}.opening-bottom p{max-width:175px}.opening-bottom a{gap:15px;padding:0;white-space:nowrap}
 .ora-home #work{padding-top:30px}.ora-home #work>.container>.section-head{grid-template-columns:1fr;gap:20px;margin-bottom:42px}
 .ora-home #work>.container>.section-head .lead{justify-self:start;max-width:300px;font-size:0.875rem}
 .ora-home .project-info{grid-template-columns:25px 1fr;gap:12px}.ora-home .project-index{font-size:0.75rem;padding-top:5px}
 .ora-home .project-info-main .h3{font-size:clamp(1.8125rem,7.4vw,3.375rem)}
 .ora-home .project-info-main>p{font-size:0.875rem;line-height:1.5}
 .ora-home .project-info-bottom{align-items:start;gap:14px;flex-wrap:wrap}.ora-home .project-info-bottom .small{font-size:0.75rem}.ora-home .text-link{font-size:0.8125rem}
 .ora-home .project-visual,.ora-home .project-row:nth-child(n) .project-visual{aspect-ratio:4/5}
 .ora-home .istana-project-visual{aspect-ratio:1/1!important}.ora-home .istana-project-visual img{object-fit:cover}
 .ora-home .work-list{gap:80px}
 .ora-editorial .intro-grid,.ora-editorial .section-head,.ora-editorial .contact-bottom{grid-template-columns:1fr;gap:30px}
 .ora-editorial .facts,.ora-editorial .principles-strip{gap:25px}
 .ora-editorial .contact-top{display:block}.ora-editorial .contact-top .lead{margin-top:20px}
 .ora-editorial .contact-bottom{margin-top:35px}.ora-editorial .contact-bottom h2{font-size:12vw}
 .ora-editorial .archive-grid{gap:45px}.ora-editorial .archive-row{gap:45px}
 .ora-case .case-hero{padding-top:118px}
 .ora-case .case-intro-copy{padding-bottom:35px}
 .ora-case .case-title,.ora-case .case-intro-panel.opera .case-title{font-size:clamp(2.5rem,10.2vw,4.375rem);line-height:1.07;letter-spacing:-.055em}
 .ora-case .case-title span{overflow-wrap:normal}
 .ora-case .case-meta-strip{grid-template-columns:1fr 1fr;gap:0 20px}
 .ora-case .case-meta-strip div{padding:16px 0!important}
 .ora-case .key-visual-block{padding:12px 0;margin-top:32px}
 .ora-case .key-visual-shell{min-height:0!important}
 .ora-case .key-visual-deck{height:calc(min(78vw,322px)*1.25 + 104px)!important}
 .ora-case .key-visual-card{width:min(78vw,322px)!important}
 .ora-case .next-project{align-items:start;gap:25px;flex-direction:column}
 .ora-istana .case-title{font-size:clamp(3.1875rem,13vw,6rem);max-width:none}
 .ora-istana .case-subtitle{font-size:1.6875rem}.ora-istana .case-intro-copy .lead{font-size:1rem}
 .istana-cover-scene img{aspect-ratio:1;object-fit:cover}
 .istana-cover-scene figcaption{font-size:0.6875rem}.istana-cover-scene figcaption span{max-width:60%}
 .ora-istana .case-story,.ora-istana .istana-section-head,.ora-istana .istana-closing-grid{grid-template-columns:1fr;gap:30px}
 .ora-istana .istana-section-head{margin-bottom:45px}.ora-istana .istana-section-head .lead{padding:0;font-size:1rem}
 .ora-istana .istana-editorial-sequence{grid-template-columns:1fr;gap:48px;max-width:520px}
 .ora-istana .istana-page-card:nth-child(even){padding:0}
 .ora-istana .istana-page-frame{transform:none!important}
 .ora-istana .istana-page-card figcaption{padding-top:14px}
 .ora-istana .istana-closing-grid .istana-page-card{justify-self:center;max-width:420px}
}
@media(max-width:360px){:root{--gutter:16px}.opening-bottom{gap:12px}.opening-bottom p{max-width:145px}.ora-home .project-info-main .h3{font-size:1.75rem}.ora-editorial .case-meta-strip dd{font-size:0.8125rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.ora-editorial *, .ora-editorial *:before,.ora-editorial *:after{animation:none!important;transition:none!important}.ora-istana .istana-page-frame{transform:none!important}}
/* Remove legacy minimum width and dark-panel text assumptions. */
body.ora-editorial{min-width:0}
.ora-istana .case-title,.ora-istana .case-meta-strip dd,.ora-istana .case-story h3,.ora-istana .scope-list strong{color:var(--text)}
.ora-istana .case-intro-copy .kicker,.ora-istana .case-intro-copy .lead,.ora-istana .case-story-copy p,.ora-istana .scope-list span{color:var(--muted)}
.ora-opening{padding-top:140px;padding-bottom:35px}
.ora-opening h1{margin:36px 0 30px;font-size:clamp(4rem,8vw,9rem)}
.ora-home #work>.container>.section-head{margin-bottom:48px}
@media(max-width:760px){.ora-opening{padding-top:115px;padding-bottom:30px}.ora-opening h1{font-size:clamp(2.6875rem,10.7vw,5.0625rem);margin:35px 0 30px}}
.ora-home .project-caption{display:flex;justify-content:flex-end}
.ora-home .project-caption p{max-width:620px;margin:0;font-size:1rem;color:var(--muted);line-height:1.5}
.ora-home .project-info-bottom{grid-row:1}
.ora-home #work>.container>.section-head{align-items:center}
@media(max-width:1100px){.ora-home .project-info-bottom{grid-row:auto}.ora-home .project-caption{justify-content:start}}
@media(max-width:760px){.ora-home #work>.container>.section-head{gap:10px;margin-bottom:30px}.ora-home .project-caption p{font-size:1rem}.ora-home .project-info-main{gap:12px}.ora-home .project-info-bottom{gap:6px;flex-direction:column-reverse}}

/*
 * PHASE 2 — production art direction
 * A single ORA rhythm, with each study allowed to carry its own temperature.
 * The Istana's motion remains isolated in editorial.js and its own selectors.
 */
:root{
  --container:1440px;
  --gutter:clamp(20px,4.8vw,88px);
}

body.ora-editorial{background:var(--bg);color:var(--text)}
.ora-editorial .container{width:min(calc(100% - var(--gutter)*2),var(--container))}
.ora-editorial .section{padding-block:clamp(94px,11vw,176px)}
.ora-editorial .section-head{gap:clamp(34px,7vw,110px);margin-bottom:clamp(48px,7vw,100px)}
.ora-editorial .section-head .lead{max-width:470px}
.ora-editorial .kicker{font-size:0.6875rem;letter-spacing:.14em}
.ora-editorial .lead{font-size:clamp(1.0625rem,1.35vw,1.375rem);line-height:1.52}

/* Homepage: the work is the navigation, not a catalogue of UI panels. */
.ora-home .ora-opening{min-height:clamp(650px,82svh,930px);display:flex;flex-direction:column;justify-content:space-between;padding-top:clamp(160px,19svh,245px);padding-bottom:clamp(44px,6vw,84px)}
.ora-home .ora-opening h1{max-width:11ch;margin:0;font-size:clamp(4.375rem,9.2vw,9.875rem);line-height:.98}
.ora-home #work{padding-top:clamp(60px,8vw,130px)}
.ora-home #work>.container>.section-head{grid-template-columns:1fr minmax(230px,.55fr);margin-bottom:clamp(64px,8vw,128px)}
.ora-home #work>.container>.section-head .h2{font-size:clamp(1.875rem,3.2vw,3.375rem)}
.ora-home .work-list{gap:clamp(150px,18vw,300px)}
.ora-home .project-row{gap:clamp(26px,3.5vw,56px)}
.ora-home .project-info{grid-template-columns:82px 1fr;gap:clamp(20px,3vw,48px)}
.ora-home .project-index{padding-top:10px;font-variant-numeric:tabular-nums}
.ora-home .project-info-main .h3{font-size:clamp(2.625rem,6.4vw,6.5rem);line-height:1;max-width:11ch}
.ora-home .project-info-main .h3 a{position:relative;display:inline-block}
.ora-home .project-info-main .h3 a::after{position:absolute;right:0;bottom:-.08em;left:0;height:1px;background:currentColor;content:"";opacity:.26;transform:scaleX(0);transform-origin:right;transition:transform .6s var(--ease)}
.ora-home .project-row:hover .project-info-main .h3 a::after,.ora-home .project-row:focus-within .project-info-main .h3 a::after{transform:scaleX(1);transform-origin:left}
.ora-home .project-visual{position:relative;isolation:isolate;aspect-ratio:1.62;background:#25211d;box-shadow:0 30px 90px rgba(0,0,0,.16)}
.ora-home .project-visual::before{position:absolute;z-index:-1;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.08),transparent 48%);content:"";pointer-events:none}
.ora-home .project-visual picture{position:relative;z-index:1}
.ora-home .project-visual img{transition:transform .9s var(--ease),filter .7s ease}
.ora-home .project-caption{padding-top:4px}
.ora-home .project-caption p{max-width:530px;font-size:1rem;line-height:1.58}

/* Homepage supporting sections read as an index. */
.ora-home #about,.ora-home #services,.ora-home .archive{border-top:1px solid var(--line)}
.ora-home .intro-grid{grid-template-columns:minmax(230px,.56fr) minmax(0,1.44fr);gap:clamp(50px,10vw,180px)}
.ora-home .intro-copy .lead{max-width:640px;font-size:clamp(1.375rem,2.1vw,2.125rem);line-height:1.25;letter-spacing:-.035em}
.ora-home .facts{grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin-top:clamp(52px,7vw,92px);border-block:1px solid var(--line)}
.ora-home .fact{min-height:138px;padding:20px 24px 20px 0;border:0;border-right:1px solid var(--line)}
.ora-home .fact+ .fact{padding-left:24px}
.ora-home .fact:last-child{border-right:0}
.ora-home .fact strong{font-size:1rem}
.ora-home .fact span{font-size:0.8125rem}
.ora-home .principles-strip{grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin-top:0;padding-top:0;border:0;border-bottom:1px solid var(--line)}
.ora-home .principle{min-height:130px;padding:22px 24px 22px 0;border:0;border-right:1px solid var(--line)}
.ora-home .principle+ .principle{padding-left:24px}
.ora-home .principle:last-child{border-right:0}
.ora-home .principle strong{font-size:0.9375rem}
.ora-home .principle span{font-size:0.8125rem}
.ora-home #services .section-head{margin-bottom:clamp(44px,6vw,76px)}
.ora-home .service-row{min-height:116px;grid-template-columns:58px 1.05fr .8fr auto;gap:30px;padding-block:28px}
.ora-home .service-row h3{font-size:clamp(1.5rem,2.8vw,2.625rem)}
.ora-home .service-row p{max-width:390px;font-size:0.9375rem;line-height:1.5}
.ora-home .archive{padding-top:clamp(110px,14vw,220px)}
.ora-home .archive-grid{gap:clamp(54px,8vw,120px);padding-top:clamp(30px,4vw,54px);border-top:1px solid var(--line)}
.ora-home .archive-card .archive-media{border:0;border-radius:0}
.ora-home .archive-media::after{display:none}
.ora-home .archive-meta{padding-top:16px;border-bottom:1px solid var(--line);padding-bottom:14px}
.ora-home .archive-meta h3{font-size:clamp(1.0625rem,1.55vw,1.4375rem);font-weight:450}
.ora-home .archive-meta p,.ora-home .archive-meta>span{font-size:0.75rem}
.ora-home #contact{padding-top:clamp(110px,14vw,220px)}
.ora-home .contact-panel{min-height:520px}
.ora-home .contact-bottom h2{max-width:10ch}
.ora-home .contact-links{min-width:270px}
.ora-home .contact-links a{font-size:0.9375rem;font-weight:450}
.ora-home .contact-availability{max-width:260px;color:var(--muted);font-size:0.8125rem;line-height:1.55}
.ora-home .site-footer{padding-top:34px}

/* Case-study base: open editorial canvas, then project-specific temperature. */
.ora-case .case-hero{padding-top:clamp(150px,17vw,250px)}
.ora-case .case-intro-panel{overflow:visible;border:0;border-radius:0;background:none}
.ora-case .case-intro-copy{max-width:1080px;padding:0 0 clamp(56px,8vw,118px)}
.ora-case .case-intro-copy .kicker{color:var(--muted)}
.ora-case .case-title{max-width:12ch;margin:0;color:var(--text);font-size:clamp(4.375rem,10.4vw,10.25rem);font-weight:450;line-height:.96;letter-spacing:-.075em}
.ora-case .case-title span{display:block}
.ora-case .case-intro-copy .lead{max-width:650px;margin-top:34px;color:var(--muted);font-size:clamp(1.125rem,1.55vw,1.4375rem)}
.ora-case .case-meta-strip{grid-template-columns:repeat(4,minmax(0,1fr));padding:0;border-block:1px solid var(--line);border-top-color:var(--line-strong)}
.ora-case .case-meta-strip div,.ora-case .case-meta-strip div+div{padding:22px 20px 24px 0;border:0}
.ora-case .case-meta-strip div+div{padding-left:20px;border-left:1px solid var(--line)}
.ora-case .case-meta-strip dt{color:var(--muted);font-size:0.6875rem;letter-spacing:.12em}
.ora-case .case-meta-strip dd{margin-top:8px;color:var(--text);font-size:0.875rem;font-weight:450;line-height:1.4}
.ora-case .key-visual-block{margin-top:clamp(56px,8vw,128px);padding:clamp(18px,2.7vw,40px);border:0;border-radius:0;background:var(--surface-2)}
.ora-case .key-visual-topline{padding:3px 0 18px;color:var(--muted);font-size:0.625rem}
.ora-case .key-visual-card{border:0;border-radius:0;box-shadow:0 30px 80px rgba(0,0,0,.24)}
.ora-case .key-visual-card.is-active{box-shadow:0 42px 110px rgba(0,0,0,.34)}
.ora-case .key-visual-card figcaption{border:0;border-top:1px solid rgba(15,13,12,.12);background:#f3eee8}
.ora-case .case-story{max-width:1280px;grid-template-columns:minmax(260px,.68fr) minmax(0,1.32fr);gap:clamp(56px,10vw,170px)}
.ora-case .case-story>.reveal{top:150px}
.ora-case .case-story-copy{gap:clamp(26px,4vw,64px)}
.ora-case .case-story article h3{font-size:0.6875rem;letter-spacing:.14em}
.ora-case .case-story article p{font-size:1rem;line-height:1.72}
.ora-case .scope-list{margin-top:clamp(42px,6vw,78px)}
.ora-case .scope-list li{padding-block:17px}
.ora-case .opera-work-section{padding-block:clamp(100px,13vw,210px);border-top:1px solid var(--line)}
.ora-case .opera-section-head{margin-bottom:clamp(44px,6vw,90px)}
.ora-case .opera-section-head .h2{max-width:12ch;font-size:clamp(2.75rem,5.4vw,5.125rem);line-height:1.04}
.ora-case .opera-art-card{overflow:visible;border:0;border-radius:0;background:none;box-shadow:none}
.ora-case .opera-art-stage{border:1px solid var(--line);border-radius:0;box-shadow:none}
.ora-case .opera-art-caption{padding:16px 0;border:0;background:none;color:var(--text);font-size:0.75rem}
.ora-case .opera-art-format{color:var(--muted);font-size:0.625rem}
.ora-case .opera-story-card{padding:0;border:0;border-radius:0;background:none;text-align:left}
.ora-case .opera-phone-shell{border-radius:4px;box-shadow:0 28px 66px rgba(0,0,0,.28)}
.ora-case .opera-story-caption{margin-top:18px}
.ora-case .opera-story-caption strong{font-size:1rem;font-weight:450}
.ora-case .opera-story-caption span{font-size:0.625rem;color:var(--muted)}
.ora-case .outcome{padding:0;border:0;border-top:1px solid var(--line-strong);border-radius:0;background:none;box-shadow:none}
.ora-case .outcome .h2{max-width:12ch}
.ora-case .next-project{padding-top:38px}
.ora-case .next-project strong{font-size:clamp(2.125rem,5.8vw,5.625rem);font-weight:450}

/* Opera — cool, bright product communication with a precise blue register. */
.ora-opera{--bg:#10171f;--bg-soft:#151f29;--surface-2:#172430;--text:#edf4f9;--muted:#a7b7c2;--line:rgba(218,235,246,.18);--line-strong:rgba(218,235,246,.34);--project-accent:#74aaff;color-scheme:dark;background:radial-gradient(circle at 86% -8%,rgba(85,139,203,.2),transparent 34%),var(--bg)}
.ora-opera .key-visual-block{background:linear-gradient(145deg,#dcecf7,#f6fbfd 58%,#c7ddec);color:#142a3b}
.ora-opera .key-visual-topline{color:#485f71}
.ora-opera .key-visual-navigation{--kv-muted:#485f71;--kv-dot:#748c9e;--kv-dot-active:#142a3b}
.ora-opera .opera-work-section:has(.product-pair){--text:#172c3d;--muted:#485f71;--line:rgba(23,44,61,.16);background:#e8f2f8}
.ora-opera .opera-work-section:has(.lifestyle-pair){--text:#172c3d;--muted:#485f71;--line:rgba(23,44,61,.16);--line-strong:rgba(23,44,61,.28);background:#dcecf4}
.ora-opera .opera-work-section:has(.opera-story-grid){background:#101c26}
.ora-opera .opera-work-section:has(.opera-campaign-grid){background:#f0f6f8;--text:#172c3d;--muted:#485f71;--line:rgba(23,44,61,.16)}
.ora-opera .opera-art-stage{background:#edf6fa}
.ora-opera .opera-phone-shell{background:linear-gradient(145deg,#34536a,#0b1117);border-color:rgba(255,255,255,.24)}
.ora-opera .opera-catalog-section{background:#141d25}
.ora-opera .catalog-caption{color:var(--text)}
.ora-opera .catalog-caption i{color:var(--muted)}
.ora-opera .opera-campaign-grid .opera-art-stage{background:#f5fafb}

/* BMS — disciplined indigo, operational and diagrammatic. */
.ora-bms{--bg:#11132d;--bg-soft:#171a3d;--surface-2:#1c2050;--text:#f1f1fa;--muted:#b2b4d1;--line:rgba(225,226,255,.18);--line-strong:rgba(225,226,255,.34);--project-accent:#8c8cff;color-scheme:dark;background:radial-gradient(circle at 12% -10%,rgba(105,100,222,.22),transparent 33%),var(--bg)}
.ora-bms .key-visual-block{background:linear-gradient(145deg,#171944,#2b2b70);color:#f6f6ff}
.ora-bms .key-visual-topline{color:rgba(245,245,255,.65)}
.ora-bms .key-visual-navigation{--kv-muted:rgba(245,245,255,.68);--kv-dot:#9b9ccb;--kv-dot-active:#f4f4ff}
.ora-bms .opera-work-section:has(.bms-pair){background:#151842}
.ora-bms .opera-work-section:has(.opera-story-grid){background:#0d0f27}
.ora-bms .opera-work-section:has(.bms-feed-overview-grid){background:#1b1e52}
.ora-bms .opera-art-stage{background:#20245f}
.ora-bms .opera-art-caption{color:var(--text)}
.ora-bms .opera-phone-shell{background:linear-gradient(145deg,#33358a,#0a0b1d);border-color:rgba(228,229,255,.26)}
.ora-bms .bms-feed-overview-card .bms-feed-overview-stage{border-color:rgba(236,237,255,.18)}

/* Golden Swallow — quiet ivory, warm edges, and a slower physical rhythm. */
.ora-golden-swallow{--bg:#eee8df;--bg-soft:#f4efe8;--surface-2:#e4dacf;--text:#2e2822;--muted:#6c6055;--line:rgba(46,40,34,.18);--line-strong:rgba(46,40,34,.34);--project-accent:#a07955;color-scheme:light;background:linear-gradient(140deg,#eee8df,#e7ddd2)}
.ora-golden-swallow .logo{filter:brightness(0)}
.ora-golden-swallow .desktop-nav a,.ora-golden-swallow .mobile-menu a{color:var(--text)}
.ora-golden-swallow .mobile-menu{background:var(--bg)}
.ora-golden-swallow .key-visual-block{background:#f6f1ea;color:var(--text)}
.ora-golden-swallow .key-visual-topline{color:var(--muted)}
.ora-golden-swallow .key-visual-navigation{--kv-muted:#6c6055;--kv-dot:#9b8d80;--kv-dot-active:#2e2822}
.ora-golden-swallow .key-visual-card{box-shadow:0 24px 60px rgba(71,52,35,.18)}
.ora-golden-swallow .key-visual-card.is-active{box-shadow:0 34px 88px rgba(71,52,35,.24)}
.ora-golden-swallow .opera-work-section:has(.editorial-pair){background:#f2ece4}
.ora-golden-swallow .opera-work-section:has(.golden-pair){background:#e9dfd4}
.ora-golden-swallow .opera-work-section:has(.opera-story-grid){background:#eee7dd}
.ora-golden-swallow .opera-work-section:has(.square-campaign){background:#e8ded3}
.ora-golden-swallow .opera-art-stage{background:#f6f1ea}
.ora-golden-swallow .opera-phone-shell{background:linear-gradient(145deg,#6e5c4e,#28211b);border-color:rgba(46,40,34,.24)}
.ora-golden-swallow .opera-phone-screen.contain{background:#f3ede5}
.ora-golden-swallow .opera-phone-screen.contain img{background:#f3ede5}

/* What The Rugs — dark exhibition ground for the loudest artwork. */
.ora-what-the-rugs{--bg:#111012;--bg-soft:#181319;--surface-2:#1d171f;--text:#f3f0ed;--muted:#b9afb8;--line:rgba(244,239,246,.18);--line-strong:rgba(244,239,246,.34);--project-accent:#baf48a;color-scheme:dark;background:radial-gradient(circle at 90% 0,rgba(160,92,142,.23),transparent 32%),var(--bg)}
.ora-what-the-rugs .key-visual-block{background:linear-gradient(145deg,#111013,#2a1d2a);color:var(--text)}
.ora-what-the-rugs .key-visual-topline{color:rgba(244,239,246,.65)}
.ora-what-the-rugs .key-visual-navigation{--kv-muted:rgba(244,239,246,.68);--kv-dot:#a49aaa;--kv-dot-active:#f4eff6}
.ora-what-the-rugs .opera-work-section:has(.editorial-pair){background:#171319}
.ora-what-the-rugs .opera-work-section:has(.rugs-pair){background:#1f1820}
.ora-what-the-rugs .opera-work-section:has(.opera-story-grid){background:#111012}
.ora-what-the-rugs .opera-art-stage{background:#161217}
.ora-what-the-rugs .opera-phone-shell{background:linear-gradient(145deg,#524157,#0d0b0e);border-color:rgba(244,239,246,.26)}
.ora-what-the-rugs .opera-phone-screen.contain{background:#111012}
.ora-what-the-rugs .opera-phone-screen.contain img{background:#111012}

/* Section-local text tokens must also control inherited display text. */
.ora-case .opera-work-section{color:var(--text)}

/* Shared art-direction rules for paired outputs. */
.ora-opera .product-pair{grid-template-columns:minmax(0,1.15fr) minmax(260px,.85fr);align-items:start}
.ora-opera .product-pair .opera-art-card:nth-child(2){margin-top:clamp(44px,8vw,130px)}
.ora-opera .lifestyle-pair{grid-template-columns:minmax(260px,.86fr) minmax(0,1.14fr)}
.ora-opera .lifestyle-pair .opera-art-card:nth-child(2){margin-top:clamp(30px,5vw,80px)}
.ora-bms .bms-pair{grid-template-columns:minmax(260px,.78fr) minmax(0,1.22fr)}
.ora-bms .bms-pair .opera-art-card:nth-child(2){margin-top:clamp(38px,6vw,96px)}
.ora-golden-swallow .editorial-pair{grid-template-columns:minmax(260px,.9fr) minmax(0,1.1fr)}
.ora-golden-swallow .editorial-pair .opera-art-card:first-child{margin-top:clamp(34px,5vw,84px)}
.ora-golden-swallow .golden-pair{grid-template-columns:minmax(260px,.76fr) minmax(0,1.24fr)}
.ora-golden-swallow .golden-pair .opera-art-card:nth-child(2){margin-top:clamp(68px,10vw,150px)}
.ora-what-the-rugs .editorial-pair{grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr)}
.ora-what-the-rugs .editorial-pair .opera-art-card:nth-child(2){margin-top:clamp(50px,8vw,126px)}
.ora-what-the-rugs .rugs-pair{grid-template-columns:minmax(260px,.85fr) minmax(0,1.15fr)}
.ora-what-the-rugs .rugs-pair .opera-art-card:first-child{margin-top:clamp(28px,4vw,66px)}

/* Intentional mobile recomposition: one readable visual at a time. */
@media(max-width:1100px){
  .ora-home .ora-opening{min-height:clamp(620px,78svh,820px);padding-top:clamp(130px,16svh,190px)}
  .ora-home .project-info{grid-template-columns:48px 1fr}
  .ora-home .project-info-main .h3{font-size:clamp(2.5rem,7.5vw,4.875rem)}
  .ora-home .facts,.ora-home .principles-strip{grid-template-columns:1fr}
  .ora-home .fact,.ora-home .principle{min-height:110px;border-right:0;border-bottom:1px solid var(--line);padding-inline:0!important}
  .ora-home .fact:last-child,.ora-home .principle:last-child{border-bottom:0}
  .ora-home .service-row{grid-template-columns:50px 1fr auto;min-height:110px}
  .ora-home .service-row p{grid-column:2}
  .ora-home .service-row .arrow{grid-column:3;grid-row:1/3}
  .ora-case .case-meta-strip{grid-template-columns:1fr 1fr}
  .ora-case .case-meta-strip div:nth-child(3),.ora-case .case-meta-strip div:nth-child(4){border-top:1px solid var(--line)}
  .ora-case .case-meta-strip div:nth-child(3){border-left:0}
  .ora-case .product-pair,.ora-case .lifestyle-pair,.ora-case .bms-pair,.ora-case .editorial-pair,.ora-case .golden-pair,.ora-case .rugs-pair{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  :root{--gutter:22px}
  .ora-editorial .section{padding-block:76px}
  .ora-home .ora-opening{min-height:clamp(610px,82svh,760px);padding-top:115px;padding-bottom:32px}
  .ora-home .ora-opening h1{font-size:clamp(3rem,11vw,5.25rem);line-height:1.02}
  .ora-home #work{padding-top:48px}
  .ora-home #work>.container>.section-head{grid-template-columns:1fr;gap:13px;margin-bottom:48px}
  .ora-home .work-list{gap:92px}
  .ora-home .project-info{grid-template-columns:26px 1fr;gap:12px}
  .ora-home .project-info-main .h3{font-size:clamp(1.9375rem,8.3vw,3.625rem);max-width:12ch}
  .ora-home .project-visual{aspect-ratio:1.12}
  .ora-home .project-caption p{font-size:0.9375rem}
  .ora-home .intro-grid{grid-template-columns:1fr;gap:34px}
  .ora-home .intro-copy .lead{font-size:1.5rem}
  .ora-home .facts{margin-top:40px}
  .ora-home .archive{padding-top:96px}
  .ora-home .archive-grid{gap:48px}
  .ora-home .contact-bottom h2{font-size:clamp(2.875rem,12vw,4.625rem)}
  .ora-case .case-hero{padding-top:118px}
  .ora-case .case-intro-copy{padding-bottom:44px}
  .ora-case .case-title{font-size:clamp(3.25rem,13vw,6.125rem);line-height:1.02}
  .ora-case .case-intro-copy .lead{margin-top:24px;font-size:1.0625rem}
  .ora-case .case-meta-strip{grid-template-columns:1fr 1fr}
  .ora-case .case-meta-strip div,.ora-case .case-meta-strip div+div{padding:16px 12px 18px 0}
  .ora-case .case-meta-strip div+div{padding-left:12px}
  .ora-case .case-story{grid-template-columns:1fr;gap:34px}
  .ora-case .case-story>.reveal{position:static}
  .ora-case .case-story-copy{grid-template-columns:1fr;gap:28px}
  .ora-case .opera-work-section{padding-block:78px}
  .ora-case .opera-section-head{grid-template-columns:1fr;gap:18px;margin-bottom:38px}
  .ora-case .opera-section-head .h2{font-size:clamp(2.5rem,10vw,4rem)}
  .ora-case .product-pair,.ora-case .lifestyle-pair,.ora-case .bms-pair,.ora-case .editorial-pair,.ora-case .golden-pair,.ora-case .rugs-pair{grid-template-columns:1fr;gap:42px}
  .ora-case .product-pair .opera-art-card:nth-child(2),.ora-case .lifestyle-pair .opera-art-card:nth-child(2),.ora-case .bms-pair .opera-art-card:nth-child(2),.ora-case .editorial-pair .opera-art-card:first-child,.ora-case .editorial-pair .opera-art-card:nth-child(2),.ora-case .golden-pair .opera-art-card:nth-child(2),.ora-case .rugs-pair .opera-art-card:first-child,.ora-case .rugs-pair .opera-art-card:nth-child(2){padding-top:0;margin-top:0}
  .ora-case .opera-art-caption{padding-block:13px}
  .ora-case .opera-story-grid,.ora-case .opera-campaign-grid{grid-template-columns:1fr}
  .ora-case .opera-phone-shell{width:min(100%,340px);margin-inline:0}
  .ora-case .outcome{gap:28px}
  /* The fixed deck now derives its height from the real mobile A4-like card. */
  .ora-case .key-visual-shell{min-height:0}
  .ora-case .key-visual-deck{height:calc(min(78vw,340px)*1.25 + 64px)}
  .ora-case .key-visual-card{width:min(78vw,340px)}
  .ora-case .key-visual-stage{aspect-ratio:4/5}
  .ora-case .key-visual-card figcaption{min-height:48px}
  .ora-case .key-visual-edge-control{display:none}
  .ora-case .key-visual-navigation{grid-template-columns:1fr auto;padding-top:14px}
  .ora-case .key-visual-pagination{grid-column:1;grid-row:1;justify-content:flex-start;min-height:38px}
  .ora-case .key-visual-nav-actions{grid-column:2;grid-row:1;justify-self:end}
  .ora-case .key-visual-hint{display:none}
  .ora-golden-swallow .key-visual-stage,.ora-what-the-rugs .key-visual-stage{aspect-ratio:4/3}
  .ora-golden-swallow .key-visual-deck,.ora-what-the-rugs .key-visual-deck{height:calc(min(78vw,340px)*.75 + 64px)}
}
@media(max-width:420px){
  .ora-editorial .container{width:min(calc(100% - 32px),var(--container))}
  .ora-home .ora-opening{padding-top:105px}
  .ora-home .opening-topline{font-size:0.6875rem}
  .ora-case .case-meta-strip{grid-template-columns:1fr}
  .ora-case .case-meta-strip div,.ora-case .case-meta-strip div+div{padding-inline:0}
  .ora-case .case-meta-strip div+div{border-left:0}
  .ora-case .key-visual-deck{height:calc(min(80vw,340px)*1.25 + 64px)}
  .ora-case .key-visual-card{width:min(80vw,340px)}
  .ora-golden-swallow .key-visual-deck,.ora-what-the-rugs .key-visual-deck{height:calc(min(80vw,340px)*.75 + 64px)}
}

/* Final rhythm corrections from rendered QA. */
.ora-home .project-info-main{min-height:0}
@media(min-width:761px){
  .ora-case .case-intro-panel.opera .case-title{max-width:12ch;color:var(--text);font-size:clamp(4.375rem,10.4vw,10.25rem);font-weight:450;line-height:.96;letter-spacing:-.075em}
}
@media(max-width:760px){
  .ora-case .case-intro-panel.opera .case-title{font-size:clamp(2.5rem,10.2vw,4.375rem);line-height:1.07;letter-spacing:-.055em}
  .ora-case .key-visual-deck{height:calc(min(78vw,340px)*1.25 + 64px)!important}
  .ora-case .key-visual-card{width:min(78vw,340px)!important}
  .ora-golden-swallow .key-visual-deck,.ora-what-the-rugs .key-visual-deck{height:calc(min(78vw,340px)*.75 + 64px)!important}
}
@media(max-width:420px){
  .ora-case .key-visual-deck{height:calc(min(80vw,340px)*1.25 + 64px)!important}
  .ora-case .key-visual-card{width:min(80vw,340px)!important}
  .ora-golden-swallow .key-visual-deck,.ora-what-the-rugs .key-visual-deck{height:calc(min(80vw,340px)*.75 + 64px)!important}
}

/* Homepage hero refinement: bold first-viewport composition, homepage-only. */
.ora-home .ora-opening{display:none!important}
.ora-home .ora-home-hero{
  min-height:100svh;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  padding-top:clamp(118px,11vw,168px);
  padding-bottom:22px;
  border-bottom:1px solid var(--line);
}
.ora-home .home-hero-topline,
.ora-home .home-hero-baseline{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  color:var(--muted);
  font-size:0.6875rem;
  letter-spacing:.12em;
  line-height:1.3;
  text-transform:uppercase;
}
.ora-home .home-hero-topline span:last-child{margin-left:auto}
.ora-home .home-hero-count{color:var(--text)}
.ora-home .home-hero-stage{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(330px,1.03fr);
  align-items:end;
  gap:clamp(38px,6vw,110px);
  flex:1;
  padding-block:clamp(30px,5vw,76px);
}
.ora-home .home-hero-copy{align-self:end;min-width:0;padding-bottom:clamp(0px,1.4vw,18px)}
.ora-home .home-hero-kicker{margin:0 0 clamp(24px,3vw,42px);color:var(--muted);font-size:0.75rem;letter-spacing:.13em;text-transform:uppercase}
.ora-home .home-hero-copy h1{
  max-width:none;
  margin:0;
  color:var(--text);
  font-size:clamp(4rem,7.7vw,8.625rem);
  font-weight:450;
  letter-spacing:-.085em;
  line-height:.86;
}
.ora-home .home-hero-copy h1 span{display:block;white-space:nowrap}
.ora-home .home-hero-copy h1 span:nth-child(2){color:#aaa096}
.ora-home .home-hero-bottom{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:24px;
  max-width:640px;
  margin-top:clamp(38px,5vw,70px);
}
.ora-home .home-hero-bottom p{max-width:230px;margin:0;color:var(--muted);font-size:0.9375rem;line-height:1.45}
.ora-home .home-hero-bottom a{display:inline-flex;align-items:center;gap:22px;padding:8px 0;border-bottom:1px solid var(--line-strong);font-size:0.8125rem;white-space:nowrap}
.ora-home .home-hero-bottom a span{font-size:1.125rem;line-height:1}
.ora-home .home-hero-art{
  position:relative;
  display:block;
  width:min(100%,760px);
  aspect-ratio:1.36;
  justify-self:end;
  overflow:hidden;
  border:1px solid rgba(226,217,208,.18);
  background:#24211e;
  box-shadow:0 34px 88px rgba(0,0,0,.3);
  transform:rotate(1.6deg);
  transition:transform .65s var(--ease),box-shadow .65s var(--ease);
}
.ora-home .home-hero-art picture,.ora-home .home-hero-art img{height:100%}
.ora-home .home-hero-art img{object-fit:cover;object-position:center;transition:transform .8s var(--ease),filter .6s ease}
.ora-home .home-hero-art::after{position:absolute;inset:42% 0 0;background:linear-gradient(180deg,transparent,rgba(10,9,8,.78));content:"";pointer-events:none}
.ora-home .home-hero-art-caption{position:absolute;z-index:1;right:18px;bottom:16px;left:18px;display:flex;justify-content:space-between;gap:16px;color:#f5f0e9;font-size:0.6875rem;letter-spacing:.08em;line-height:1.3;text-transform:uppercase}
.ora-home .home-hero-baseline{padding-top:15px;border-top:1px solid var(--line)}
.ora-home .home-hero-baseline b{margin-left:7px;color:var(--text);font-size:1rem;font-weight:400;line-height:0}
@media(hover:hover) and (pointer:fine){
  .ora-home .home-hero-art:hover,.ora-home .home-hero-art:focus-visible{box-shadow:0 42px 104px rgba(0,0,0,.4);transform:rotate(.55deg) translateY(-7px)}
  .ora-home .home-hero-art:hover img,.ora-home .home-hero-art:focus-visible img{transform:scale(1.025);filter:saturate(1.04) contrast(1.02)}
}
@media(max-width:1100px){
  .ora-home .ora-home-hero{padding-top:118px}
  .ora-home .home-hero-stage{grid-template-columns:minmax(0,1fr) minmax(280px,.88fr);gap:34px}
  .ora-home .home-hero-copy h1{font-size:clamp(3.625rem,7.8vw,6rem)}
  .ora-home .home-hero-bottom{align-items:flex-start;flex-direction:column;gap:18px}
}
@media(max-width:760px){
  .ora-home .ora-home-hero{min-height:0;padding-top:105px;padding-bottom:18px}
  .ora-home .home-hero-topline{align-items:flex-start;gap:14px;font-size:0.625rem}
  .ora-home .home-hero-topline span:nth-child(2){margin-left:auto;text-align:right}
  .ora-home .home-hero-count{display:none}
  .ora-home .home-hero-stage{grid-template-columns:1fr;gap:42px;padding-block:44px 52px}
  .ora-home .home-hero-copy h1{font-size:clamp(3.625rem,15.6vw,5.75rem);letter-spacing:-.08em;line-height:.88}
  .ora-home .home-hero-copy h1 span{white-space:normal}
  .ora-home .home-hero-kicker{margin-bottom:24px;font-size:0.6875rem}
  .ora-home .home-hero-bottom{max-width:100%;margin-top:34px}
  .ora-home .home-hero-bottom p{font-size:0.875rem}
  .ora-home .home-hero-bottom a{gap:14px}
  .ora-home .home-hero-art{width:calc(100% - 12px);margin-left:6px;aspect-ratio:1.16;transform:rotate(.8deg)}
  .ora-home .home-hero-art-caption{right:13px;bottom:12px;left:13px;flex-wrap:wrap;font-size:0.5625rem}
  .ora-home .home-hero-baseline{font-size:0.5625rem;letter-spacing:.1em}
}
@media(max-width:360px){
  .ora-home .home-hero-stage{gap:34px;padding-top:36px}
  .ora-home .home-hero-copy h1{font-size:clamp(3.375rem,15.5vw,4.375rem)}
  .ora-home .home-hero-bottom{gap:14px}
  .ora-home .home-hero-bottom p{max-width:180px}
}
@media(prefers-reduced-motion:reduce){
  .ora-home .home-hero-art{transform:none!important}
}

/* Audit pass — bring the remaining case-study visuals closer to the Istana
 * presentation standard without changing their content or page structure. */
.ora-case:not(.ora-istana) .key-visual-block{
  margin-top:clamp(32px,5vw,76px);
  margin-right:calc(var(--gutter) * -1);
  margin-left:calc(var(--gutter) * -1);
  padding:clamp(26px,4.5vw,62px) var(--gutter) clamp(22px,3vw,38px);
  border-block:1px solid rgba(255,255,255,.12);
}
.ora-case:not(.ora-istana) .key-visual-shell{
  max-width:1440px;
  margin-inline:auto;
}
.ora-case:not(.ora-istana) .key-visual-card{
  border-color:rgba(255,255,255,.42);
  box-shadow:0 30px 78px rgba(0,0,0,.28);
}
.ora-case:not(.ora-istana) .key-visual-card.is-active{
  box-shadow:0 44px 112px rgba(0,0,0,.38);
}
.ora-case:not(.ora-istana) .opera-art-stage{
  overflow:hidden;
  border:0;
  box-shadow:0 24px 58px rgba(0,0,0,.18);
}
/* Caption insets belong to the shared text-placeholder rules below.
   Do not reset them here: :not(.ora-istana) made this legacy selector
   stronger than the shared padding, forcing both inline edges to zero. */
.ora-case:not(.ora-istana) .opera-story-caption{
  padding-inline:0;
}
.ora-home .ora-home-hero{
  min-height:100vh;
  min-height:100svh;
}
@media(max-width:760px){
  .ora-case:not(.ora-istana) .key-visual-block{
    margin-top:28px;
    padding:22px var(--gutter) 18px;
  }
  .ora-case:not(.ora-istana) .key-visual-card.is-active{
    box-shadow:0 24px 54px rgba(0,0,0,.30);
  }
  .ora-case:not(.ora-istana) .opera-art-stage{
    box-shadow:0 18px 40px rgba(0,0,0,.16);
  }
}

@media(max-width:350px){
  .ora-home .contact-links{min-width:0;width:100%}
}
@media(max-width:420px){
  /* The small-mobile container is 16px inset, so the full-bleed scene must
   * use the same inset to finish exactly at the viewport edge. */
  .ora-case:not(.ora-istana) .key-visual-block{
    margin-right:-16px;
    margin-left:-16px;
    padding-right:16px;
    padding-left:16px;
  }
}

/* Portrait key visuals need a stage that is tall enough for the artwork and
 * its caption. The shared 4:5 deck is intentionally kept for the other
 * studies; BMS artwork is 3:4 and must remain fully visible. */
.ora-bms .key-visual-card{max-height:none}
.ora-bms .key-visual-stage{aspect-ratio:3 / 4}
@media(min-width:1101px){
  .ora-bms .key-visual-shell{min-height:clamp(760px,70vw,950px)}
  .ora-bms .key-visual-deck{height:clamp(720px,66vw,900px)}
}
@media(min-width:761px) and (max-width:1100px){
  .ora-bms .key-visual-shell{min-height:clamp(760px,80vw,900px)}
  .ora-bms .key-visual-deck{height:clamp(760px,78vw,860px)}
  .ora-bms .key-visual-card{width:min(52vw,560px)}
}
@media(max-width:760px){
  .ora-bms .key-visual-deck{height:calc(min(78vw,322px) * 1.333333 + 104px)!important}
  .ora-bms .key-visual-card{width:min(78vw,322px)!important}
}
@media(max-width:420px){
  .ora-bms .key-visual-deck{height:calc(min(80vw,340px) * 1.333333 + 104px)!important}
  .ora-bms .key-visual-card{width:min(80vw,340px)!important}
}

/* Outcome blocks share one top-aligned rhythm across all case studies. */
.ora-case .outcome{align-items:start;gap:clamp(28px,5vw,72px)}
.ora-case .outcome>div,.ora-case .outcome>.lead{min-width:0}
.ora-case .outcome .kicker{margin:0 0 24px}
.ora-case .outcome .h2,.ora-case .outcome .lead{margin-top:0}

/* Homepage consistency: every selected-work row follows The Istana's
 * reading order — project details, full visual, then its description. */
.ora-home .project-row> .project-info,
.ora-home .project-row> .project-visual,
.ora-home .project-row> .project-caption{order:0}

/* Artwork frames use the source proportions instead of a fixed crop. */
.ora-golden-swallow .golden-pair .opera-art-stage{
  aspect-ratio:auto;
  padding:0;
}
.ora-golden-swallow .golden-pair .opera-art-stage picture{height:auto}
.ora-golden-swallow .golden-pair .opera-art-stage img{
  width:100%;
  height:auto;
  object-fit:contain;
}
.ora-bms .bms-feed-overview-card .bms-feed-overview-stage img{
  object-fit:contain;
  transform:none!important;
}

/* Mixed-ratio key visuals need a natural-height stage so square and portrait
 * artwork are never clipped by the shared 4:3 placeholder. */
.ora-golden-swallow .key-visual-card,
.ora-what-the-rugs .key-visual-card{max-height:none}
.ora-golden-swallow .key-visual-block .key-visual-stage,
.ora-what-the-rugs .key-visual-block .key-visual-stage{
  min-height:0;
  aspect-ratio:auto;
}
.ora-golden-swallow .key-visual-stage picture,
.ora-what-the-rugs .key-visual-stage picture{height:auto}
.ora-golden-swallow .key-visual-stage img,
.ora-what-the-rugs .key-visual-stage img{
  width:100%;
  height:auto;
  max-height:none;
  object-fit:contain;
}
@media(min-width:1101px){
  .ora-golden-swallow .key-visual-shell,
  .ora-what-the-rugs .key-visual-shell{min-height:clamp(940px,56vw,1000px)}
  .ora-golden-swallow .key-visual-deck,
  .ora-what-the-rugs .key-visual-deck{height:clamp(900px,52vw,960px)}
}
@media(min-width:761px) and (max-width:1100px){
  .ora-golden-swallow .key-visual-card,
  .ora-what-the-rugs .key-visual-card{width:min(70vw,700px)}
  .ora-golden-swallow .key-visual-shell,
  .ora-what-the-rugs .key-visual-shell{min-height:calc(min(70vw,700px) + 144px)}
  .ora-golden-swallow .key-visual-deck,
  .ora-what-the-rugs .key-visual-deck{height:calc(min(70vw,700px) + 104px)}
}
@media(max-width:760px){
  .ora-golden-swallow .key-visual-deck,
  .ora-what-the-rugs .key-visual-deck{height:calc(min(78vw,340px) + 104px)!important}
}
@media(max-width:420px){
  .ora-golden-swallow .key-visual-deck,
  .ora-what-the-rugs .key-visual-deck{height:calc(min(80vw,340px) + 104px)!important}
}

/* Keep the Outcome rule comfortably separated from its top rule on every
 * case-study route, including the narrow mobile composition. */
.ora-case .outcome{
  padding:clamp(28px,3.5vw,52px) 0 clamp(8px,1.5vw,20px);
}

/* Final visual polish: make the selected-work system feel intentional at a
 * glance, then give visual placeholders one shared, responsive radius system.
 * The radius scales with the viewport instead of changing the editorial grid. */
:root{
  --ora-radius-card:clamp(16px,1.5vw,24px);
  --ora-radius-media:clamp(14px,1.25vw,20px);
}
@media(max-width:760px){
  :root{
    --ora-radius-card:16px;
    --ora-radius-media:14px;
  }
}

/* The even-row base rule adds a divider to the left of Project 02. The
 * editorial presentation is intentionally borderless, like Project 01. */
.ora-home .project-row:nth-child(even) .project-info{border-left:0}

/* Capabilities: the hover/focus wash sits above the row background and below
 * the content, so the brown ORA gradient is visible on every browser. */
.ora-home .service-row{
  isolation:isolate;
  transition:padding .34s var(--ease),border-color .34s var(--ease),color .34s var(--ease);
}
.ora-home .service-row::before{
  z-index:0;
  background:linear-gradient(108deg,rgba(160,130,110,.78) 0%,rgba(137,106,88,.48) 38%,rgba(76,56,45,.2) 72%,transparent 100%);
}
.ora-home .service-row>*{position:relative;z-index:1}
.ora-home .service-row:focus-visible{
  outline:2px solid rgba(226,217,208,.7);
  outline-offset:-2px;
}
@media(hover:hover) and (pointer:fine){
  .ora-home .service-row:hover,
  .ora-home .service-row:focus-visible{
    border-color:rgba(200,184,170,.42);
  }
  .ora-home .service-row:hover::before,
  .ora-home .service-row:focus-visible::before{transform:translateX(0)}
  .ora-home .service-row:hover .num,
  .ora-home .service-row:focus-visible .num{color:#f1e8e0}
}

/* Shared visual placeholder geometry. The outer radius is slightly larger
 * than the inner media radius so nested frames remain visually concentric. */
.ora-home .home-hero-art,
.ora-home .project-visual,
.ora-editorial .archive-media,
.ora-editorial .fact,
.ora-editorial .principle,
.ora-case .key-visual-block,
.ora-case .key-visual-card,
.ora-case .opera-art-card,
.ora-case .opera-story-card,
.ora-case .gallery-item{
  border-radius:var(--ora-radius-card);
}
.ora-home .home-hero-art,
.ora-home .project-visual,
.ora-editorial .archive-media,
.ora-case .key-visual-block,
.ora-case .key-visual-card,
.ora-case .opera-art-card,
.ora-case .opera-story-card,
.ora-case .gallery-item{
  overflow:hidden;
}
.ora-case .key-visual-stage,
.ora-case .opera-art-stage,
.ora-istana .istana-page-frame{
  border-radius:var(--ora-radius-media);
  overflow:hidden;
}

/* Liquid Glass is reserved for ORA's functional UI layer: navigation,
 * menus, carousel controls, and lightbox chrome. Project artwork, editorial
 * pages, and content cards stay clear and tactile instead of becoming glass. */
.ora-editorial{
  --ora-glass-surface:rgba(255,255,255,.08);
  --ora-glass-surface-strong:rgba(255,255,255,.14);
  --ora-glass-border:rgba(255,255,255,.22);
  --ora-glass-highlight:rgba(255,255,255,.3);
  --ora-glass-shadow:0 18px 54px rgba(0,0,0,.24);
}
.ora-editorial.ora-istana,
.ora-editorial.ora-golden-swallow{
  --ora-glass-surface:rgba(255,255,255,.48);
  --ora-glass-surface-strong:rgba(255,255,255,.68);
  --ora-glass-border:rgba(48,44,38,.18);
  --ora-glass-highlight:rgba(255,255,255,.76);
  --ora-glass-shadow:0 18px 54px rgba(34,28,19,.16);
}

/* Floating header material: a single adaptive plane, with no glass nested
 * over the portfolio artwork. */
.ora-editorial .navbar,
.ora-editorial .site-header.scrolled .navbar{
  position:relative;
  border:1px solid var(--ora-glass-border);
  border-radius:999px;
  background:linear-gradient(135deg,rgba(255,255,255,.14),transparent 46%),var(--ora-glass-surface);
  box-shadow:inset 0 1px 0 var(--ora-glass-highlight),inset 0 -1px 0 rgba(0,0,0,.08),var(--ora-glass-shadow);
  -webkit-backdrop-filter:blur(20px) saturate(140%);
  backdrop-filter:blur(20px) saturate(140%);
  transition:background .35s var(--ease),border-color .35s var(--ease),box-shadow .35s var(--ease);
}
.ora-editorial .site-header.scrolled .navbar{
  background:linear-gradient(135deg,rgba(255,255,255,.18),transparent 46%),var(--ora-glass-surface-strong);
}
.ora-editorial .desktop-nav a{
  border:1px solid transparent;
  transition:background-color .22s var(--ease),border-color .22s var(--ease),color .22s var(--ease),box-shadow .22s var(--ease);
}
.ora-editorial .desktop-nav a:hover,
.ora-editorial .desktop-nav a.is-active,
.ora-editorial .desktop-nav a[aria-current="page"]{
  border-color:var(--ora-glass-border);
  background:var(--ora-glass-surface-strong);
  box-shadow:inset 0 1px 0 var(--ora-glass-highlight);
  color:var(--text);
}
.ora-editorial .menu-button{
  border:1px solid var(--ora-glass-border);
  border-radius:999px;
  background:linear-gradient(135deg,rgba(255,255,255,.14),transparent 46%),var(--ora-glass-surface);
  box-shadow:inset 0 1px 0 var(--ora-glass-highlight),var(--ora-glass-shadow);
  -webkit-backdrop-filter:blur(16px) saturate(140%);
  backdrop-filter:blur(16px) saturate(140%);
}
.ora-editorial .mobile-menu{
  border:1px solid var(--ora-glass-border);
  border-radius:var(--ora-radius-card);
  background:linear-gradient(135deg,rgba(255,255,255,.14),transparent 46%),var(--ora-glass-surface-strong);
  box-shadow:inset 0 1px 0 var(--ora-glass-highlight),var(--ora-glass-shadow);
  -webkit-backdrop-filter:blur(22px) saturate(140%);
  backdrop-filter:blur(22px) saturate(140%);
}
.ora-editorial .mobile-menu a:hover,
.ora-editorial .mobile-menu a:focus-visible{
  background:var(--ora-glass-surface-strong);
}
.ora-editorial .menu-scrim{
  background:rgba(15,13,12,.28);
  -webkit-backdrop-filter:blur(8px) saturate(115%);
  backdrop-filter:blur(8px) saturate(115%);
}
.ora-editorial.ora-istana .menu-scrim,
.ora-editorial.ora-golden-swallow .menu-scrim{background:rgba(48,44,38,.14)}

/* Carousel controls are already a functional layer; this adds the shared
 * specular edge and adaptive blur while preserving each project's tint. */
.ora-editorial .key-visual-controls button,
.ora-editorial .key-visual-edge-control,
.ora-editorial .key-visual-nav-button{
  border-color:var(--ora-glass-border);
  background:linear-gradient(135deg,rgba(255,255,255,.16),transparent 52%),var(--kv-control-bg,var(--ora-glass-surface));
  box-shadow:inset 0 1px 0 var(--ora-glass-highlight),0 14px 36px rgba(0,0,0,.2);
  -webkit-backdrop-filter:blur(16px) saturate(145%);
  backdrop-filter:blur(16px) saturate(145%);
}
.ora-editorial .key-visual-controls button:hover,
.ora-editorial .key-visual-controls button:focus-visible,
.ora-editorial .key-visual-edge-control:hover,
.ora-editorial .key-visual-edge-control:focus-visible,
.ora-editorial .key-visual-nav-button:hover,
.ora-editorial .key-visual-nav-button:focus-visible{
  background:linear-gradient(135deg,rgba(255,255,255,.22),transparent 52%),var(--kv-control-bg-hover,var(--ora-glass-surface-strong));
}

/* Lightbox controls use glass only in the chrome; the artwork viewer remains
 * opaque and readable. */
.ora-editorial .dialog-head,
.ora-editorial .dialog-controls,
.ora-editorial .catalog-lightbox-head{
  background:linear-gradient(135deg,rgba(255,255,255,.1),transparent 52%),var(--ora-glass-surface);
  -webkit-backdrop-filter:blur(16px) saturate(135%);
  backdrop-filter:blur(16px) saturate(135%);
}
.ora-editorial .dialog-close,
.ora-editorial .dialog-controls button,
.ora-editorial .catalog-lightbox-close{
  border-color:var(--ora-glass-border);
  background:linear-gradient(135deg,rgba(255,255,255,.16),transparent 52%),var(--ora-glass-surface);
  box-shadow:inset 0 1px 0 var(--ora-glass-highlight),0 10px 28px rgba(0,0,0,.18);
  -webkit-backdrop-filter:blur(14px) saturate(140%);
  backdrop-filter:blur(14px) saturate(140%);
  transition:background .22s var(--ease),border-color .22s var(--ease),transform .22s var(--ease);
}
.ora-editorial .dialog-close:hover,
.ora-editorial .dialog-close:focus-visible,
.ora-editorial .dialog-controls button:hover,
.ora-editorial .dialog-controls button:focus-visible,
.ora-editorial .catalog-lightbox-close:hover,
.ora-editorial .catalog-lightbox-close:focus-visible{
  border-color:var(--ora-glass-highlight);
  background:linear-gradient(135deg,rgba(255,255,255,.24),transparent 52%),var(--ora-glass-surface-strong);
}

/* Accessibility and browser fallbacks: retain hierarchy and contrast when a
 * user reduces transparency/contrast or the browser lacks backdrop-filter. */
@media(prefers-reduced-transparency:reduce), (prefers-contrast:more){
  .ora-editorial .navbar,
  .ora-editorial .site-header.scrolled .navbar,
  .ora-editorial .menu-button,
  .ora-editorial .mobile-menu{
    background:var(--bg);
    -webkit-backdrop-filter:none;
    backdrop-filter:none;
    box-shadow:0 10px 30px rgba(0,0,0,.16);
  }
  .ora-editorial .key-visual-controls button,
  .ora-editorial .key-visual-edge-control,
  .ora-editorial .key-visual-nav-button{backdrop-filter:none;-webkit-backdrop-filter:none}
  .ora-editorial .dialog-head,
  .ora-editorial .dialog-controls,
  .ora-editorial .catalog-lightbox-head,
  .ora-editorial .dialog-close,
  .ora-editorial .dialog-controls button,
  .ora-editorial .catalog-lightbox-close{
    background:var(--surface);
    -webkit-backdrop-filter:none;
    backdrop-filter:none;
  }
}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .ora-editorial .navbar,
  .ora-editorial .site-header.scrolled .navbar,
  .ora-editorial .menu-button,
  .ora-editorial .mobile-menu{background:var(--bg);box-shadow:var(--ora-glass-shadow)}
  .ora-editorial .key-visual-controls button,
  .ora-editorial .key-visual-edge-control,
  .ora-editorial .key-visual-nav-button{background:var(--kv-control-bg,var(--bg))}
  .ora-editorial .dialog-head,
  .ora-editorial .dialog-controls,
  .ora-editorial .catalog-lightbox-head,
  .ora-editorial .dialog-close,
  .ora-editorial .dialog-controls button,
  .ora-editorial .catalog-lightbox-close{background:var(--surface)}
}

/* Apple-informed refinement: keep the interface quiet and systematic. Apple’s
 * public design resources are a reference for hierarchy, optical spacing, and
 * concentric corners here—not a reason to turn ORA into an Apple clone. */
:root{
  --ora-radius-card:clamp(22px,2vw,30px);
  --ora-radius-media:clamp(16px,1.5vw,23px);
  --ora-radius-small:clamp(14px,1.2vw,18px);
}

/* The desktop header is editorial navigation, not a full-width capsule. A
 * restrained rule keeps it legible over the artwork without competing with it. */
@media(min-width:761px){
  .ora-editorial .site-header{
    padding-top:max(16px,env(safe-area-inset-top));
  }
  .ora-editorial .navbar,
  .ora-editorial .site-header.scrolled .navbar{
    min-height:68px;
    padding:15px 0 14px;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
    -webkit-backdrop-filter:none;
    backdrop-filter:none;
  }
  .ora-editorial .navbar::after{
    position:absolute;
    right:0;
    bottom:0;
    left:0;
    height:1px;
    background:var(--line);
    content:"";
  }
  .ora-editorial .site-header.scrolled{
    background:rgba(21,19,17,.88);
    border-bottom:1px solid var(--line);
    -webkit-backdrop-filter:blur(18px) saturate(125%);
    backdrop-filter:blur(18px) saturate(125%);
  }
  .ora-editorial .site-header.scrolled .navbar::after{display:none}
  .ora-editorial.ora-istana .site-header.scrolled,
  .ora-editorial.ora-golden-swallow .site-header.scrolled{
    background:rgba(233,227,217,.9);
  }
  .ora-editorial .logo{width:92px}
  .ora-editorial .desktop-nav{
    justify-self:end;
    gap:clamp(24px,3vw,42px);
    margin-left:auto;
  }
  .ora-editorial .desktop-nav a{
    position:relative;
    padding:10px 0;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
    color:var(--muted);
    font-size:0.8125rem;
    line-height:1;
    letter-spacing:.01em;
  }
  .ora-editorial .desktop-nav a::after{
    position:absolute;
    right:0;
    bottom:2px;
    left:0;
    height:1px;
    background:currentColor;
    content:"";
    opacity:.7;
    transform:scaleX(0);
    transform-origin:right;
    transition:transform .32s var(--ease);
  }
  .ora-editorial .desktop-nav a:hover,
  .ora-editorial .desktop-nav a.is-active,
  .ora-editorial .desktop-nav a[aria-current="page"]{
    border:0;
    background:transparent;
    box-shadow:none;
    color:var(--text);
  }
  .ora-editorial .desktop-nav a:hover::after,
  .ora-editorial .desktop-nav a:focus-visible::after,
  .ora-editorial .desktop-nav a.is-active::after,
  .ora-editorial .desktop-nav a[aria-current="page"]::after{
    transform:scaleX(1);
    transform-origin:left;
  }
}

/* Mobile retains a compact control plane, but uses a finite corner instead of
 * the oversized desktop pill. The menu remains easy to reach with a thumb. */
@media(max-width:760px){
  .ora-editorial .navbar,
  .ora-editorial .site-header.scrolled .navbar{
    min-height:60px;
    padding:10px 0;
    border-radius:18px;
  }
  .ora-editorial .logo{width:76px}
  .ora-editorial .menu-button{min-width:76px;min-height:40px;padding-inline:16px}
}

/* Visible card geometry. Earlier editorial resets intentionally removed all
 * surfaces, so a radius alone could not be seen. These are real visual frames;
 * narrative text remains open and non-card-like. Inner artwork uses a smaller
 * concentric radius so the source proportions remain untouched. */
.ora-home .home-hero-art,
.ora-home .project-visual,
.ora-home .archive-media,
.ora-home .contact-panel,
.ora-case .key-visual-block,
.ora-case .key-visual-card,
.ora-case .opera-art-card,
.ora-case .opera-story-card,
.ora-case .gallery-item,
.ora-editorial .portfolio-dialog,
.ora-case .catalog-lightbox{
  border-radius:var(--ora-radius-card);
}
.ora-home .home-hero-art,
.ora-home .project-visual,
.ora-home .archive-media,
.ora-home .contact-panel,
.ora-case .key-visual-block,
.ora-case .key-visual-card,
.ora-case .opera-art-card,
.ora-case .opera-story-card,
.ora-case .gallery-item,
.ora-editorial .portfolio-dialog,
.ora-case .catalog-lightbox{
  border:1px solid var(--line);
  overflow:hidden;
}
.ora-home .home-hero-art{border-color:rgba(226,217,208,.26)}
.ora-home .project-visual{border-color:rgba(226,217,208,.2)}
.ora-home .archive-media{background:var(--surface);border-color:var(--line)}
.ora-home .contact-panel{border-color:rgba(255,255,255,.18)}
.ora-case .key-visual-block{border-color:rgba(255,255,255,.12)}
.ora-case .key-visual-card{border-color:rgba(255,255,255,.32)}
.ora-case .opera-art-card{
  padding:0;
  background:rgba(255,255,255,.045);
  box-shadow:0 20px 58px rgba(0,0,0,.13);
}
.ora-case .opera-story-card{
  padding:clamp(16px,2.2vw,28px);
  background:rgba(255,255,255,.045);
  box-shadow:0 20px 58px rgba(0,0,0,.13);
}
.ora-case .opera-art-stage,
.ora-case .key-visual-stage,
.ora-case .opera-phone-shell,
.ora-case .catalog-photo,
.ora-case .catalog-paper,
.ora-case .catalog-open-book,
.ora-case .catalog-detail-paper,
.ora-istana .istana-page-frame{
  border-radius:var(--ora-radius-media);
}
.ora-case .opera-art-stage,
.ora-case .key-visual-stage,
.ora-case .catalog-photo,
.ora-case .catalog-paper,
.ora-case .catalog-open-book,
.ora-case .catalog-detail-paper,
.ora-istana .istana-page-frame{
  overflow:hidden;
}
.ora-case .opera-art-stage{border:0}
.ora-case .opera-art-caption{padding-inline:clamp(15px,2vw,24px)}
.ora-case .opera-story-caption{margin-top:clamp(16px,2vw,22px)}
.ora-case .gallery-item{border-color:var(--line)}
.ora-case .catalog-photo{border-radius:var(--ora-radius-media);border-color:rgba(255,255,255,.16)}
.ora-case .catalog-paper,
.ora-case .catalog-open-book,
.ora-case .catalog-detail-paper{border:0}

/* The catalogue presentation has a more specific legacy selector in
 * styles.css. Keep the physical mockup frame on the same concentric-radius
 * system as the other visible artwork surfaces, including on narrow screens.
 */
.ora-opera .opera-catalog-section .catalog-photo{
  border-radius:var(--ora-radius-media);
}
.ora-opera .opera-catalog-section .catalog-photo img{
  height:auto;
  object-fit:contain;
}
.ora-home .facts,
.ora-home .principles-strip{
  gap:12px;
  border:0;
  background:none;
}
.ora-home .fact,
.ora-home .principle{
  min-height:132px;
  padding:clamp(18px,2vw,24px)!important;
  border:1px solid var(--line);
  border-radius:var(--ora-radius-small);
  background:rgba(255,255,255,.035);
}
.ora-home .principle{background:rgba(255,255,255,.045)}
.ora-home .fact+ .fact,
.ora-home .principle+ .principle{padding-left:clamp(18px,2vw,24px)!important}
.ora-istana .istana-page-frame{
  border:1px solid var(--line);
  background:rgba(255,255,255,.12);
}
.ora-editorial .portfolio-dialog,
.ora-case .catalog-lightbox{overflow:hidden}

@media(max-width:760px){
  :root{
    --ora-radius-card:20px;
    --ora-radius-media:16px;
    --ora-radius-small:14px;
  }
  .ora-case .opera-story-card{padding:14px}
  .ora-home .fact,
  .ora-home .principle{min-height:110px}
  .ora-case .key-visual-block{border-radius:var(--ora-radius-card)}
  .ora-home .contact-panel{border-radius:var(--ora-radius-card)}
}

/* ========================================================================
   V30 — adaptive Liquid Glass + complete card geometry pass

   The material is limited to the functional layer: navigation, menus,
   carousel controls, and viewer chrome. Artwork remains opaque and tactile.
   This is a web-native approximation of Apple's Liquid Glass principles:
   adaptive tint, lens-like highlights, concentric geometry, depth, and
   interaction light rather than a flat white overlay.
   ======================================================================== */
:root{
  --ora-radius-outer:clamp(24px,2.2vw,34px);
  --ora-radius-inner:clamp(16px,1.45vw,23px);
  --ora-radius-control:clamp(16px,1.35vw,22px);
}

.ora-editorial{
  --ora-glass-rgb:226,217,208;
  --ora-glass-surface:rgba(var(--ora-glass-rgb),.105);
  --ora-glass-surface-strong:rgba(var(--ora-glass-rgb),.17);
  --ora-glass-border:rgba(255,255,255,.30);
  --ora-glass-border-soft:rgba(255,255,255,.16);
  --ora-glass-highlight:rgba(255,255,255,.60);
  --ora-glass-shadow:0 20px 64px rgba(0,0,0,.28),0 3px 12px rgba(0,0,0,.16);
  --ora-glass-text:#f8f5f0;
}
.ora-editorial.ora-opera{--ora-glass-rgb:116,170,255;--ora-glass-text:#f4f8ff}
.ora-editorial.ora-bms{--ora-glass-rgb:140,140,255;--ora-glass-text:#f7f7ff}
.ora-editorial.ora-golden-swallow{
  --ora-glass-rgb:160,121,85;
  --ora-glass-surface:rgba(255,255,255,.14);
  --ora-glass-surface-strong:rgba(255,255,255,.22);
  --ora-glass-border:rgba(90,70,51,.28);
  --ora-glass-border-soft:rgba(90,70,51,.16);
  --ora-glass-highlight:rgba(255,255,255,.74);
  --ora-glass-shadow:0 20px 64px rgba(73,53,34,.20),0 3px 12px rgba(73,53,34,.12);
  --ora-glass-text:#302a24;
}
.ora-editorial.ora-istana{
  --ora-glass-rgb:201,207,175;
  --ora-glass-surface:rgba(201,207,175,.13);
  --ora-glass-surface-strong:rgba(201,207,175,.22);
  --ora-glass-border:rgba(255,255,255,.38);
  --ora-glass-border-soft:rgba(255,255,255,.22);
  --ora-glass-highlight:rgba(255,255,255,.72);
  --ora-glass-shadow:0 20px 64px rgba(34,42,29,.22),0 3px 12px rgba(34,42,29,.14);
  --ora-glass-text:#f9f8f1;
}
.ora-editorial.ora-what-the-rugs{--ora-glass-rgb:186,244,138;--ora-glass-text:#f7f6f3}

/* One material recipe for the functional plane. The pseudo-elements supply
   the moving specular layer that a plain backdrop-filter cannot provide. */
.ora-editorial .navbar,
.ora-editorial .menu-button,
.ora-editorial .mobile-menu,
.ora-editorial .key-visual-edge-control,
.ora-editorial .key-visual-nav-button,
.ora-editorial .key-visual-controls button,
.ora-editorial .dialog-head,
.ora-editorial .dialog-controls,
.ora-editorial .catalog-lightbox-head{
  position:relative;
  isolation:isolate;
  border:1px solid var(--ora-glass-border);
  background:
    radial-gradient(120% 180% at var(--ora-glass-x,18%) var(--ora-glass-y,0%),rgba(255,255,255,.16),transparent 43%),
    linear-gradient(135deg,rgba(255,255,255,.12),rgba(var(--ora-glass-rgb),.035) 48%,rgba(0,0,0,.11)),
    var(--ora-glass-surface);
  -webkit-backdrop-filter:blur(25px) saturate(175%) contrast(1.06);
  backdrop-filter:blur(25px) saturate(175%) contrast(1.06);
  box-shadow:inset 0 1px 0 var(--ora-glass-highlight),inset 0 -1px 0 rgba(0,0,0,.16),var(--ora-glass-shadow);
  color:var(--ora-glass-text);
}
.ora-editorial .navbar::before,
.ora-editorial .menu-button::before,
.ora-editorial .mobile-menu::before,
.ora-editorial .key-visual-edge-control::before,
.ora-editorial .key-visual-nav-button::before,
.ora-editorial .key-visual-controls button::before,
.ora-editorial .dialog-head::before,
.ora-editorial .dialog-controls::before,
.ora-editorial .catalog-lightbox-head::before{
  position:absolute;
  z-index:-1;
  inset:0;
  border-radius:inherit;
  background:linear-gradient(116deg,rgba(255,255,255,.34),transparent 25%,transparent 62%,rgba(255,255,255,.06)),radial-gradient(90% 120% at 88% 115%,rgba(var(--ora-glass-rgb),.18),transparent 58%);
  content:"";
  opacity:.9;
  pointer-events:none;
}
.ora-editorial .navbar::after,
.ora-editorial .menu-button::after,
.ora-editorial .mobile-menu::after,
.ora-editorial .key-visual-edge-control::after,
.ora-editorial .key-visual-nav-button::after,
.ora-editorial .key-visual-controls button::after,
.ora-editorial .dialog-head::after,
.ora-editorial .dialog-controls::after,
.ora-editorial .catalog-lightbox-head::after{
  position:absolute;
  z-index:-1;
  inset:-1px;
  border-radius:inherit;
  background:radial-gradient(ellipse 42% 75% at var(--ora-glass-x,18%) var(--ora-glass-y,0%),rgba(255,255,255,.28),transparent 68%),linear-gradient(110deg,transparent 18%,rgba(255,255,255,.10) 39%,transparent 58%);
  content:"";
  opacity:.62;
  pointer-events:none;
  transition:opacity .28s ease;
}
.ora-editorial .navbar > *,
.ora-editorial .menu-button > *,
.ora-editorial .mobile-menu > *,
.ora-editorial .key-visual-edge-control > *,
.ora-editorial .key-visual-nav-button > *,
.ora-editorial .key-visual-controls button > *,
.ora-editorial .dialog-head > *,
.ora-editorial .dialog-controls > *,
.ora-editorial .catalog-lightbox-head > *{position:relative;z-index:1}

/* Desktop keeps the header editorial and compact: rounded, floating, and
   visibly translucent without returning to the oversized capsule. */
@media(min-width:761px){
  .ora-editorial .navbar,
  .ora-editorial .site-header.scrolled .navbar{min-height:68px;padding:11px 0;border-radius:24px}
  .ora-editorial .site-header.scrolled{background:transparent;border-bottom:0;-webkit-backdrop-filter:none;backdrop-filter:none}
  .ora-editorial .desktop-nav a:hover,
  .ora-editorial .desktop-nav a.is-active,
  .ora-editorial .desktop-nav a[aria-current="page"]{border-radius:var(--ora-radius-control);background:rgba(var(--ora-glass-rgb),.12);box-shadow:inset 0 1px 0 rgba(255,255,255,.26),0 5px 18px rgba(0,0,0,.10)}
}
@media(max-width:760px){
  .ora-editorial .navbar,
  .ora-editorial .site-header.scrolled .navbar{min-height:60px;padding:9px 0;border-radius:20px}
  .ora-editorial .menu-button{border-radius:var(--ora-radius-control)}
}

/* Thin controls are part of the parent material, not a second opaque pane.
   This follows Apple's warning against stacking glass on glass. */
.ora-editorial .dialog-close,
.ora-editorial .dialog-controls button,
.ora-editorial .catalog-lightbox-close{
  position:relative;
  isolation:isolate;
  border:1px solid var(--ora-glass-border);
  background:linear-gradient(135deg,rgba(255,255,255,.22),rgba(var(--ora-glass-rgb),.08) 54%,rgba(0,0,0,.12)),rgba(var(--ora-glass-rgb),.10);
  box-shadow:inset 0 1px 0 var(--ora-glass-highlight),0 10px 28px rgba(0,0,0,.18);
  -webkit-backdrop-filter:none;
  backdrop-filter:none;
  color:inherit;
  transition:transform .22s var(--ease),background .22s var(--ease),border-color .22s var(--ease),box-shadow .22s var(--ease);
}
.ora-editorial .dialog-close:hover,
.ora-editorial .dialog-close:focus-visible,
.ora-editorial .dialog-controls button:hover,
.ora-editorial .dialog-controls button:focus-visible,
.ora-editorial .catalog-lightbox-close:hover,
.ora-editorial .catalog-lightbox-close:focus-visible{border-color:var(--ora-glass-highlight);background:radial-gradient(circle at 30% 20%,rgba(255,255,255,.34),transparent 58%),rgba(var(--ora-glass-rgb),.22);box-shadow:inset 0 1px 0 rgba(255,255,255,.72),0 12px 34px rgba(0,0,0,.22);transform:translateY(-1px) scale(1.035)}
.ora-editorial .dialog-close:active,
.ora-editorial .dialog-controls button:active,
.ora-editorial .catalog-lightbox-close:active,
.ora-editorial .key-visual-nav-button:active{transform:scale(.96)}
.ora-editorial .key-visual-edge-control,
.ora-editorial .key-visual-nav-button,
.ora-editorial .key-visual-controls button{transition:transform .22s var(--ease),background .22s var(--ease),border-color .22s var(--ease),box-shadow .22s var(--ease)}
.ora-editorial .key-visual-nav-button:hover,
.ora-editorial .key-visual-nav-button:focus-visible,
.ora-editorial .key-visual-controls button:hover,
.ora-editorial .key-visual-controls button:focus-visible{border-color:var(--ora-glass-highlight);box-shadow:inset 0 1px 0 rgba(255,255,255,.72),0 16px 42px rgba(0,0,0,.26);transform:translateY(-2px) scale(1.035)}

/* Material must not override carousel geometry. Keep both edge controls
   anchored to the same centreline, including pointer and keyboard states. */
.ora-editorial .key-visual-edge-control{
  position:absolute;
  top:50%;
  bottom:auto;
  margin:0;
  transform:translateY(-50%);
}
.ora-editorial .key-visual-edge-prev{left:12px;right:auto}
.ora-editorial .key-visual-edge-next{right:12px;left:auto}
.ora-editorial .key-visual-edge-control > .sr-only{position:absolute}
.ora-editorial .key-visual-edge-control:hover,
.ora-editorial .key-visual-edge-control:focus-visible{transform:translateY(-50%) scale(1.035)}
.ora-editorial .key-visual-edge-control:active{transform:translateY(-50%) scale(.96)}
/* Stable local contrast on both light artwork and dark project stages. */
.ora-editorial .key-visual-edge-control,
.ora-editorial .key-visual-nav-button,
.ora-editorial .key-visual-controls button{
  min-width:48px;
  min-height:48px;
  color:#fff;
  background-color:rgba(20,22,25,.82);
}
.ora-editorial .key-visual-edge-control:focus-visible,
.ora-editorial .key-visual-nav-button:focus-visible,
.ora-editorial .key-visual-controls button:focus-visible{
  outline:3px solid #fff;
  outline-offset:3px;
  box-shadow:0 0 0 6px #262626;
}
.ora-editorial .key-visual-nav-actions{display:flex;align-items:center;gap:12px}
.ora-editorial .key-visual-edge-control,
.ora-editorial .key-visual-nav-button,
.ora-editorial .key-visual-controls button{--bg:#181a1d}
@media(max-width:760px){
  .ora-editorial .key-visual-edge-control{display:none}
}
@media(prefers-reduced-motion:reduce){
  .ora-editorial .key-visual-edge-control:hover,
  .ora-editorial .key-visual-edge-control:focus-visible,
  .ora-editorial .key-visual-edge-control:active{transform:translateY(-50%)}
}

/* Complete visible card inventory. These are content frames, not glass, so
   the artwork remains crisp and never gets a milky veil. */
.ora-home .home-hero-art,
.ora-home .project-visual,
.ora-editorial .archive-media,
.ora-home .contact-panel,
.ora-home .fact,
.ora-home .principle,
.ora-case .key-visual-block,
.ora-case .key-visual-card,
.ora-case .opera-art-card,
.ora-case .opera-story-card,
.ora-case .gallery-item,
.ora-case .case-artwork-frame,
.ora-opera .opera-catalog-section .catalog-photo,
.ora-opera .opera-catalog-section .catalog-stage,
.ora-istana .istana-page-frame,
.ora-istana .istana-mockup-frame,
.ora-editorial .portfolio-dialog,
.ora-case .catalog-lightbox{border-radius:var(--ora-radius-outer);overflow:hidden}
.ora-home .home-hero-art,
.ora-home .project-visual,
.ora-editorial .archive-media,
.ora-home .contact-panel,
.ora-home .fact,
.ora-home .principle,
.ora-case .key-visual-block,
.ora-case .key-visual-card,
.ora-case .opera-art-card,
.ora-case .opera-story-card,
.ora-case .gallery-item,
.ora-case .case-artwork-frame,
.ora-opera .opera-catalog-section .catalog-photo,
.ora-opera .opera-catalog-section .catalog-stage,
.ora-istana .istana-page-frame,
.ora-istana .istana-mockup-frame{border:1px solid var(--line)}
.ora-case .key-visual-stage,
.ora-case .opera-art-stage,
.ora-case .opera-phone-shell,
.ora-case .catalog-photo,
.ora-case .catalog-paper,
.ora-case .catalog-open-book,
.ora-case .catalog-detail-paper,
.ora-istana .istana-page-frame,
.ora-istana .istana-mockup-frame{border-radius:var(--ora-radius-inner);overflow:hidden}
.ora-home .project-visual,
.ora-editorial .archive-media,
.ora-home .contact-panel,
.ora-case .key-visual-block,
.ora-case .key-visual-card,
.ora-case .opera-art-card,
.ora-case .opera-story-card,
.ora-case .gallery-item,
.ora-case .case-artwork-frame,
.ora-opera .opera-catalog-section .catalog-photo,
.ora-istana .istana-mockup-frame{box-shadow:0 24px 70px rgba(0,0,0,.16),inset 0 1px 0 rgba(255,255,255,.12)}
.ora-case .key-visual-card.is-active{box-shadow:0 42px 112px rgba(0,0,0,.34),inset 0 1px 0 rgba(255,255,255,.18)}
.ora-editorial .portfolio-dialog,
.ora-case .catalog-lightbox{border:1px solid var(--ora-glass-border-soft);background:var(--surface,#151311);box-shadow:0 38px 120px rgba(0,0,0,.58),inset 0 1px 0 rgba(255,255,255,.12)}

/* Keep the lightbox readable while letting its chrome pick up the dark
   exhibition ground underneath. This removes the grey opaque strip seen in
   the Istana viewer. */
.ora-editorial .portfolio-dialog .dialog-head,
.ora-editorial .portfolio-dialog .dialog-controls,
.ora-case .catalog-lightbox .catalog-lightbox-head{background:radial-gradient(120% 180% at var(--ora-glass-x,18%) var(--ora-glass-y,0%),rgba(255,255,255,.13),transparent 42%),linear-gradient(135deg,rgba(var(--ora-glass-rgb),.13),rgba(0,0,0,.10) 72%),rgba(14,13,12,.24)}
.ora-editorial .portfolio-dialog .dialog-head h2,
.ora-editorial .portfolio-dialog .dialog-head p,
.ora-case .catalog-lightbox .catalog-lightbox-head p{color:var(--ora-glass-text)}

@media(prefers-reduced-transparency:reduce), (prefers-contrast:more){
  .ora-editorial .navbar::before,
  .ora-editorial .navbar::after,
  .ora-editorial .menu-button::before,
  .ora-editorial .menu-button::after,
  .ora-editorial .mobile-menu::before,
  .ora-editorial .mobile-menu::after,
  .ora-editorial .key-visual-edge-control::before,
  .ora-editorial .key-visual-edge-control::after,
  .ora-editorial .key-visual-nav-button::before,
  .ora-editorial .key-visual-nav-button::after,
  .ora-editorial .dialog-head::before,
  .ora-editorial .dialog-head::after,
  .ora-editorial .dialog-controls::before,
  .ora-editorial .dialog-controls::after,
  .ora-editorial .catalog-lightbox-head::before,
  .ora-editorial .catalog-lightbox-head::after{display:none}
  .ora-editorial .navbar,
  .ora-editorial .menu-button,
  .ora-editorial .mobile-menu,
  .ora-editorial .key-visual-edge-control,
  .ora-editorial .key-visual-nav-button,
  .ora-editorial .key-visual-controls button,
  .ora-editorial .dialog-head,
  .ora-editorial .dialog-controls,
  .ora-editorial .catalog-lightbox-head{background:var(--bg);-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:0 12px 30px rgba(0,0,0,.24)}
}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .ora-editorial .navbar,
  .ora-editorial .menu-button,
  .ora-editorial .mobile-menu,
  .ora-editorial .key-visual-edge-control,
  .ora-editorial .key-visual-nav-button,
  .ora-editorial .key-visual-controls button,
  .ora-editorial .dialog-head,
  .ora-editorial .dialog-controls,
  .ora-editorial .catalog-lightbox-head{background:var(--bg)}
}

/* ========================================================================
   V31 — responsive integrity pass

   The earlier visual passes were authored as incremental overrides. This
   final layer makes the layout rules deterministic at the edges where a
   browser, device orientation, safe-area inset, or text setting can otherwise
   expose a conflicting legacy rule.
   ======================================================================== */

/* A fixed descendant must stay out of the header's layout box. V30's shared
   material recipe gave the mobile menu `position: relative`, which made the
   hidden menu increase the header height and leak beyond the viewport. */
.ora-editorial .mobile-menu{
  position:fixed!important;
  top:calc(max(10px,env(safe-area-inset-top)) + 70px);
  right:var(--gutter);
  left:var(--gutter);
  width:auto;
  max-height:calc(100dvh - max(10px,env(safe-area-inset-top)) - 86px - env(safe-area-inset-bottom));
  overflow-x:hidden;
  overflow-y:auto;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
}

/* The header itself follows the safe area, while its internal glass plane
   keeps a stable optical height across desktop, tablet, and mobile. */
.ora-editorial .site-header{
  padding-top:max(10px,env(safe-area-inset-top));
}
.ora-editorial .navbar{
  min-width:0;
}

/* Contact is intentionally a flexible editorial panel. It must grow when a
   short landscape viewport or enlarged text causes the right column to wrap;
   content must never be pinned directly against or clipped by its border. */
.ora-home .contact-panel{
  min-height:520px;
  height:auto;
  padding:30px 0 clamp(28px,3.5vw,48px);
  overflow:hidden;
}
.ora-home .contact-bottom{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(240px,270px);
  align-items:end;
  gap:clamp(28px,5vw,72px);
  margin-top:clamp(48px,5vw,72px);
}
.ora-home .contact-bottom h2{
  min-width:0;
  max-width:10ch;
  margin:0;
  text-wrap:balance;
  overflow-wrap:normal;
}
.ora-home .contact-links{
  width:100%;
  min-width:0;
  justify-self:end;
}
.ora-home .contact-links a,
.ora-home .contact-availability{
  min-width:0;
  overflow-wrap:anywhere;
}

/* Prevent the two-column hero from becoming a compressed iPad portrait
   layout. This is a recomposition breakpoint, not a scale-down breakpoint. */
@media(min-width:761px) and (max-width:900px){
  .ora-home .home-hero-stage{
    grid-template-columns:1fr;
    gap:30px;
    padding-block:32px 40px;
  }
  .ora-home .home-hero-copy h1 span{white-space:normal}
  .ora-home .home-hero-art{
    width:100%;
    max-width:none;
    aspect-ratio:1.5;
    justify-self:stretch;
  }
  .ora-home .home-hero-bottom{
    align-items:flex-end;
    flex-direction:row;
  }
}

/* Short desktop/tablet landscape windows should remain scrollable, but the
   first viewport must not compress the typography into the artwork. */
@media(min-width:761px) and (max-height:720px){
  .ora-home .ora-home-hero{
    min-height:560px;
    padding-top:92px;
  }
  .ora-home .home-hero-stage{padding-block:20px 28px}
  .ora-home .home-hero-copy h1{font-size:clamp(3.375rem,7vw,6.875rem)}
}

@media(max-width:760px){
  :root{
    --gutter:clamp(16px,5vw,22px);
    --ora-radius-card:18px;
    --ora-radius-media:14px;
  }
  .ora-editorial .mobile-menu{
    top:calc(max(9px,env(safe-area-inset-top)) + 66px);
    right:var(--gutter);
    left:var(--gutter);
    max-height:calc(100dvh - max(9px,env(safe-area-inset-top)) - 82px - env(safe-area-inset-bottom));
  }
  .ora-home .ora-home-hero{min-height:0}
  .ora-home .home-hero-topline span,
  .ora-home .home-hero-baseline span{min-width:0}
  .ora-home .home-hero-bottom{min-width:0}

  .ora-home .contact-panel{
    min-height:0;
    padding:24px 0 max(32px,env(safe-area-inset-bottom));
  }
  .ora-home .contact-top{
    display:grid;
    grid-template-columns:1fr;
    gap:18px;
  }
  .ora-home .contact-bottom{
    display:grid;
    grid-template-columns:1fr;
    gap:28px;
    margin-top:38px;
  }
  .ora-home .contact-bottom h2{
    max-width:9ch;
    font-size:clamp(3rem,13vw,4.875rem);
    line-height:.94;
  }
  .ora-home .contact-links{justify-self:stretch}
}

@media(max-width:420px){
  .ora-home .contact-bottom h2{font-size:clamp(2.75rem,13vw,3.875rem)}
  .ora-home .contact-links a{font-size:0.875rem}
  .ora-home .contact-availability{font-size:0.75rem}
}

/* At 200% text enlargement, the metadata and utility columns must be able to
   stack rather than force a clipped row. */
@media(min-width:761px) and (max-width:980px){
  .ora-home .contact-bottom{
    grid-template-columns:minmax(0,1fr) minmax(210px,.52fr);
    gap:26px;
  }
}

@media(prefers-reduced-motion:reduce){
  .ora-editorial .mobile-menu{scroll-behavior:auto}
}

/* ========================================================================
   V32 — device-safe visual decks

   The revolving cards are allowed to create depth, but the depth must stay
   inside the visual stage. On very narrow screens there is not enough room
   for a useful side preview, so the active artwork gets the full canvas and
   the existing pagination remains the navigation affordance.
   ======================================================================== */

.ora-case .key-visual-block{
  overflow:hidden;
  overflow:clip;
}
@supports not (overflow:clip){
  .ora-case .key-visual-block{overflow:hidden}
}

/* Tablet cards keep their peek without projecting past the stage edge. */
@media(min-width:761px) and (max-width:1100px){
  .ora-case .key-visual-card.is-prev{
    transform:translate3d(calc(-50% - 22%),-50%,-100px) rotateY(8deg) rotateZ(-1deg) scale(.8)
  }
  .ora-case .key-visual-card.is-next{
    transform:translate3d(calc(-50% + 22%),-50%,-100px) rotateY(-8deg) rotateZ(1deg) scale(.8)
  }
}

/* Small phones use a restrained side offset, preserving the active card's
   breathing room on 360–430px CSS viewports. */
@media(max-width:760px){
  .ora-case .key-visual-card.is-prev{
    transform:translate3d(calc(-50% - 14%),-50%,-88px) rotateY(6deg) rotateZ(-.7deg) scale(.8)
  }
  .ora-case .key-visual-card.is-next{
    transform:translate3d(calc(-50% + 14%),-50%,-88px) rotateY(-6deg) rotateZ(.7deg) scale(.8)
  }
}

/* At the smallest supported width a side preview would be decorative noise
   and can steal pixels from the real artwork. Keep it in the DOM for the
   carousel state and assistive technology, but remove it from the visual and
   pointer layers. */
@media(max-width:340px){
  .ora-case .key-visual-card.is-prev,
  .ora-case .key-visual-card.is-next{
    visibility:hidden;
    opacity:0;
    pointer-events:none;
  }
  .ora-case .key-visual-card.is-prev .key-visual-card-action,
  .ora-case .key-visual-card.is-next .key-visual-card-action{pointer-events:none}
}

/* ========================================================================
   V33 — single-plane transparent navigation

   The previous material pass placed Liquid Glass on the whole navbar and
   then placed another control surface inside it. That creates the doubled
   bar visible over light artwork. The navigation is now an open layout plane;
   only the actual controls carry the glass material.
   ======================================================================== */

.ora-editorial .site-header,
.ora-editorial .site-header.scrolled{
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
}
.ora-editorial .navbar,
.ora-editorial .site-header.scrolled .navbar{
  min-height:60px;
  padding:8px 0;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
}
.ora-editorial .navbar::before,
.ora-editorial .navbar::after{display:none!important}

/* One transparent material recipe is shared by desktop links and the mobile
   menu control. The low fill lets the artwork show through; the edge,
   internal highlight, and project-aware text color preserve legibility. */
.ora-editorial .desktop-nav a,
.ora-editorial .menu-button{
  position:relative;
  isolation:isolate;
  min-height:44px;
  border:1px solid rgba(255,255,255,.34);
  border-radius:16px;
  background:
    linear-gradient(135deg,rgba(255,255,255,.13),rgba(255,255,255,.018) 46%,rgba(0,0,0,.06)),
    rgba(var(--ora-glass-rgb),.045);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.44),
    inset 0 -1px 0 rgba(0,0,0,.08),
    0 7px 22px rgba(0,0,0,.08);
  -webkit-backdrop-filter:blur(18px) saturate(165%);
  backdrop-filter:blur(18px) saturate(165%);
  color:var(--text)!important;
  text-shadow:0 1px 2px rgba(0,0,0,.12);
  transition:background .24s var(--ease),border-color .24s var(--ease),box-shadow .24s var(--ease),transform .24s var(--ease);
}
.ora-editorial .desktop-nav a::before,
.ora-editorial .menu-button::before{
  position:absolute;
  z-index:-1;
  inset:0;
  border-radius:inherit;
  background:
    linear-gradient(116deg,rgba(255,255,255,.30),transparent 28%,transparent 68%,rgba(255,255,255,.07)),
    radial-gradient(90% 130% at 88% 115%,rgba(var(--ora-glass-rgb),.14),transparent 60%);
  content:"";
  opacity:.9;
  pointer-events:none;
}
.ora-editorial .desktop-nav a:hover,
.ora-editorial .desktop-nav a:focus-visible,
.ora-editorial .desktop-nav a.is-active,
.ora-editorial .desktop-nav a[aria-current="page"],
.ora-editorial .menu-button:hover,
.ora-editorial .menu-button:focus-visible{
  border-color:rgba(255,255,255,.58);
  background:
    linear-gradient(135deg,rgba(255,255,255,.18),rgba(255,255,255,.035) 46%,rgba(0,0,0,.08)),
    rgba(var(--ora-glass-rgb),.09);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.70),
    inset 0 -1px 0 rgba(0,0,0,.12),
    0 12px 30px rgba(0,0,0,.16);
  transform:translateY(-1px);
}
.ora-editorial .desktop-nav a:active,
.ora-editorial .menu-button:active{transform:scale(.97)}

@media(min-width:761px){
  .ora-editorial .navbar,
  .ora-editorial .site-header.scrolled .navbar{
    min-height:68px;
    padding:12px 0 11px;
  }
  .ora-editorial .desktop-nav{gap:8px}
  .ora-editorial .desktop-nav a{padding:10px 14px;line-height:1}
}
@media(max-width:1100px){
  .ora-editorial .menu-button{
    width:clamp(96px,14vw,128px);
    min-width:96px;
    max-width:128px;
    padding-inline:16px;
  }
}
@media(max-width:760px){
  .ora-editorial .navbar,
  .ora-editorial .site-header.scrolled .navbar{
    min-height:60px;
    padding:8px 0;
  }
  .ora-editorial .menu-button{
    width:clamp(96px,30vw,120px);
    min-width:96px;
    max-width:120px;
    padding-inline:18px;
    border-radius:16px;
  }
}

/* Light editorial routes need a dark label and a quiet dark edge so the
   transparent control remains readable over pale photography. */
.ora-editorial.ora-istana .desktop-nav a,
.ora-editorial.ora-istana .menu-button,
.ora-editorial.ora-golden-swallow .desktop-nav a,
.ora-editorial.ora-golden-swallow .menu-button{
  border-color:rgba(48,44,38,.24);
  color:var(--text)!important;
  text-shadow:0 1px 2px rgba(255,255,255,.22);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.62),
    inset 0 -1px 0 rgba(48,44,38,.08),
    0 7px 22px rgba(48,44,38,.08);
}
.ora-editorial.ora-istana .mobile-menu a,
.ora-editorial.ora-golden-swallow .mobile-menu a{
  color:var(--text)!important;
  text-shadow:0 1px 2px rgba(255,255,255,.22);
}
.ora-editorial.ora-istana .desktop-nav a:hover,
.ora-editorial.ora-istana .desktop-nav a:focus-visible,
.ora-editorial.ora-istana .desktop-nav a.is-active,
.ora-editorial.ora-istana .desktop-nav a[aria-current="page"],
.ora-editorial.ora-istana .menu-button:hover,
.ora-editorial.ora-istana .menu-button:focus-visible,
.ora-editorial.ora-golden-swallow .desktop-nav a:hover,
.ora-editorial.ora-golden-swallow .desktop-nav a:focus-visible,
.ora-editorial.ora-golden-swallow .desktop-nav a.is-active,
.ora-editorial.ora-golden-swallow .desktop-nav a[aria-current="page"],
.ora-editorial.ora-golden-swallow .menu-button:hover,
.ora-editorial.ora-golden-swallow .menu-button:focus-visible{
  border-color:rgba(48,44,38,.42);
}

@media(prefers-reduced-transparency:reduce), (prefers-contrast:more){
  .ora-editorial .desktop-nav a,
  .ora-editorial .menu-button{
    border-color:currentColor;
    background:var(--bg);
    -webkit-backdrop-filter:none;
    backdrop-filter:none;
    text-shadow:none;
  }
}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .ora-editorial .desktop-nav a,
  .ora-editorial .menu-button{background:var(--bg)}
}
/* V37 — a single full-width glass navigation plane, persistent on scroll.
   Blur lives on a pseudo-element so the fixed mobile menu stays viewport-bound. */
.ora-editorial .site-header,
.ora-editorial .site-header.scrolled,
.ora-editorial .site-header.nav-hidden{
  position:fixed;
  inset:0 0 auto;
  padding:env(safe-area-inset-top) 0 0;
  transform:none!important;
  opacity:1!important;
  isolation:isolate;
  transition:none;
}
.ora-editorial .site-header::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background:linear-gradient(110deg,rgba(255,255,255,.36),rgba(255,255,255,.12) 55%,rgba(226,217,208,.24)),rgba(244,244,246,.64);
  -webkit-backdrop-filter:blur(22px) saturate(160%);
  backdrop-filter:blur(22px) saturate(160%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.65),inset 0 -1px 0 rgba(30,27,24,.16),0 3px 14px rgba(0,0,0,.08);
}
.ora-editorial .site-header .navbar{
  display:flex;
  justify-content:space-between;
  gap:24px;
  width:min(calc(100% - 40px),1120px);
  min-height:56px;
  padding:4px 0;
  pointer-events:auto;
}
.ora-editorial .site-header .logo{
  width:68px;
  min-width:68px;
  min-height:44px;
  filter:brightness(0);
}
.ora-editorial .site-header .desktop-nav{gap:clamp(20px,3vw,44px)}
.ora-editorial .site-header .desktop-nav a,
.ora-editorial .site-header .menu-button{
  min-height:44px;
  padding:8px 6px;
  border:0!important;
  border-radius:0;
  background:transparent!important;
  box-shadow:none!important;
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
  color:#242424!important;
  font-size:.875rem;
  line-height:1.4;
  text-shadow:none!important;
  transform:none!important;
}
.ora-editorial .site-header .desktop-nav a::before,
.ora-editorial .site-header .menu-button::before,
.ora-editorial .site-header .menu-button::after{display:none}
.ora-editorial .site-header .desktop-nav a:hover,
.ora-editorial .site-header .menu-button:hover{color:#000!important}
.ora-editorial .site-header .desktop-nav a:focus-visible,
.ora-editorial .site-header .menu-button:focus-visible{outline:2px solid #36302a;outline-offset:2px;border-radius:4px}
.ora-editorial .site-header .mobile-menu{
  top:calc(env(safe-area-inset-top) + 56px);
  left:0;
  right:0;
  max-height:calc(100vh - 56px - env(safe-area-inset-top));
  max-height:calc(100dvh - 56px - env(safe-area-inset-top));
  padding:20px max(24px,env(safe-area-inset-right)) max(32px,env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left));
  border:0;
  border-radius:0;
  background:rgba(244,244,246,.92);
  color:#242424;
  -webkit-backdrop-filter:blur(22px) saturate(160%);
  backdrop-filter:blur(22px) saturate(160%);
}
.ora-editorial .site-header .mobile-menu a{color:#242424!important;text-shadow:none!important}
@media(min-width:1101px){
  .ora-editorial .site-header .nav-actions{display:none}
}
@media(max-width:1100px){
  .ora-editorial .site-header .menu-button{width:auto;min-width:60px;max-width:none}
}
@media(prefers-reduced-transparency:reduce),(prefers-contrast:more){
  .ora-editorial .site-header::before,
  .ora-editorial .site-header .mobile-menu{background:#f4f4f6;-webkit-backdrop-filter:none;backdrop-filter:none}
}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .ora-editorial .site-header::before,
  .ora-editorial .site-header .mobile-menu{background:#f4f4f6}
}

/* V36 — keep the rounded Contact Us frame, then give its contents a
   concentric inset on every edge. The previous responsive pass accidentally
   reduced horizontal padding to zero, which made the copy touch the frame. */
.ora-home .contact-panel{
  padding:
    clamp(30px,3vw,44px)
    clamp(28px,3.8vw,56px)
    clamp(56px,5vw,72px);
}
@media(max-width:760px){
  .ora-home .contact-panel{
    padding:
      24px
      clamp(20px,5.5vw,26px)
      max(48px,calc(env(safe-area-inset-bottom) + 24px));
  }
}
@media(max-width:340px){
  .ora-home .contact-panel{
    padding-right:18px;
    padding-left:18px;
  }
}

/* V38 — shared text-placeholder rhythm
   Captions and metadata stay inside their frame at every width. Use a
   two-column grid for label + format so long labels wrap without pushing the
   right-hand descriptor into the border; narrow screens collapse only when
   there is no safe inline space left. */
.ora-editorial .opera-art-caption{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:clamp(16px,2.4vw,28px);
  min-height:84px;
  padding:24px clamp(24px,2.8vw,36px) 25px;
  line-height:1.4;
}
.ora-editorial .opera-art-caption>span:first-child{
  min-width:0;
  overflow-wrap:anywhere;
}
.ora-editorial .opera-art-caption .opera-art-format{
  justify-self:end;
  white-space:nowrap;
  line-height:1.35;
}
.ora-editorial .key-visual-card figcaption{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:16px;
  min-height:64px;
  padding:18px 22px 19px;
  line-height:1.4;
}
.ora-editorial .key-visual-card figcaption .key-visual-name{
  min-width:0;
  overflow-wrap:anywhere;
  white-space:normal;
}
.ora-editorial .key-visual-card figcaption .key-visual-index{
  justify-self:end;
  white-space:nowrap;
  line-height:1.35;
}
.ora-editorial .opera-story-caption{
  min-width:0;
  gap:8px;
  margin-top:clamp(18px,2.2vw,26px);
  line-height:1.4;
}
.ora-editorial .opera-story-caption strong,
.ora-editorial .opera-story-caption span{
  min-width:0;
  overflow-wrap:anywhere;
  line-height:1.4;
}
.ora-editorial .archive-meta{
  min-width:0;
  min-height:78px;
  align-items:flex-start;
  gap:20px;
  padding:20px 0 18px;
  line-height:1.4;
}
.ora-editorial .archive-meta>div{min-width:0}
.ora-editorial .archive-meta h3,
.ora-editorial .archive-meta p{
  overflow-wrap:anywhere;
  line-height:1.4;
}
.ora-editorial .archive-meta>span{
  flex:0 0 auto;
  padding-top:1px;
  line-height:1.4;
  white-space:nowrap;
}
.ora-editorial .project-caption{
  min-width:0;
  padding-top:clamp(20px,2.4vw,30px);
  line-height:1.58;
}
.ora-editorial .project-caption p{
  min-width:0;
  overflow-wrap:anywhere;
  line-height:1.58;
}
.ora-editorial .project-badge{
  max-width:calc(100% - 32px);
  overflow-wrap:anywhere;
  line-height:1.35;
}
.ora-editorial .istana-page-card figcaption{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:start;
  gap:16px;
  min-width:0;
  padding:clamp(20px,2.2vw,30px) 0 0;
  line-height:1.45;
}
.ora-editorial .istana-page-card figcaption span,
.ora-editorial .catalog-caption span,
.ora-editorial .catalog-caption i{
  min-width:0;
  overflow-wrap:anywhere;
  line-height:1.45;
}
.ora-editorial .istana-page-card figcaption span+span,
.ora-editorial .catalog-caption i{
  justify-self:end;
  white-space:nowrap;
}
.ora-editorial .catalog-caption{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:start;
  gap:16px;
  min-width:0;
  margin-top:22px;
  line-height:1.45;
}
@media(max-width:420px){
  .ora-editorial .opera-art-caption{
    grid-template-columns:1fr;
    gap:7px;
    min-height:84px;
    padding:19px 20px 20px;
  }
  .ora-editorial .opera-art-caption .opera-art-format{justify-self:start}
  .ora-editorial .key-visual-card figcaption{
    min-height:64px;
    padding-block:14px 15px;
  }
  .ora-editorial .key-visual-card figcaption .key-visual-index{justify-self:start}
  .ora-editorial .archive-meta{min-height:0;padding-block:16px 14px}
  .ora-editorial .istana-page-card figcaption,
  .ora-editorial .catalog-caption{grid-template-columns:1fr;gap:6px}
  .ora-editorial .istana-page-card figcaption span+span,
  .ora-editorial .catalog-caption i{justify-self:start}
}

/* V39 — keep selected-work media geometry tied to each project, so changing
   the presentation order cannot move another project's framing rules with it. */
.ora-home .work-list > .project-row{
  width:100%;
  align-self:stretch;
}
.ora-home .work-list > .project-row .project-visual{
  width:100%;
  min-height:0;
  aspect-ratio:1.62!important;
}
.ora-home .work-list > .project-row .project-visual img{
  width:100%;
  height:100%;
  object-position:center;
  object-fit:contain;
  padding:0;
}
.ora-home .work-list > .project-row .istana-project-visual{
  background:#4d4b42;
}
.ora-home .work-list > .project-row .istana-project-visual img{
  object-fit:cover;
}
.ora-home .work-list > .project-row .rugs-project-visual{
  background:#111;
}
.ora-home .work-list > .project-row .rugs-project-visual img{
  padding:clamp(10px,2vw,26px);
}
.ora-home .work-list > .project-row .golden-project-visual{
  background:#e9e1d7;
}
.ora-home .work-list > .project-row .opera-project-visual{
  background:#e7f0f6;
}
.ora-home .work-list > .project-row .opera-project-visual img{
  padding:clamp(18px,3vw,44px);
}
.ora-home .work-list > .project-row .bms-project-visual{
  background:
    radial-gradient(circle at 76% 16%,rgba(146,139,224,.58),transparent 42%),
    linear-gradient(135deg,#191c2f 0%,#2c2d5d 43%,#3d3b85 76%,#5f639c 100%);
}
.ora-home .work-list > .project-row .bms-project-visual img{
  padding:clamp(18px,3vw,44px);
}
@media(max-width:760px){
  .ora-home .work-list > .project-row .project-visual{
    aspect-ratio:1.12!important;
  }
  .ora-home .work-list > .project-row .opera-project-visual img,
  .ora-home .work-list > .project-row .bms-project-visual img{
    padding:12px;
  }
}

/* V40 — approved landscape campaign artwork. The source ratio is preserved
   at every breakpoint so BMS and Opera keep all brand-critical elements in
   frame without a mobile crop or a distorted fill. */
.ora-home .work-list > .project-row .opera-project-visual,
.ora-home .work-list > .project-row .bms-project-visual{
  aspect-ratio:1642 / 958!important;
}
.ora-home .work-list > .project-row .opera-project-visual img,
.ora-home .work-list > .project-row .bms-project-visual img{
  padding:0!important;
  object-fit:cover;
  object-position:center;
}

/* Major case-study visuals are open editorial stages rather than UI cards.
   Their intrinsic landscape ratio keeps the approved artwork undistorted and
   lets the existing container rhythm create the whitespace around it. */
.ora-case .final-editorial-visual-section{
  width:100%;
  margin:clamp(48px,7vw,112px) 0 clamp(52px,7vw,112px);
}
.ora-case .final-editorial-visual{
  width:100%;
  margin:0;
}
.ora-case .final-editorial-visual picture{
  display:block;
  width:100%;
}
.ora-case .final-editorial-visual img{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:1642 / 958;
  object-fit:cover;
  object-position:center;
  border:1px solid var(--line);
  border-radius:var(--ora-radius-outer);
  box-shadow:0 28px 82px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.14);
}
.ora-bms .bms-final-hero-section .final-editorial-visual img{background:#1c2050}
.ora-opera .opera-final-hero-section .final-editorial-visual img{background:#e7f0f6}
@media(max-width:760px){
  .ora-case .final-editorial-visual-section{
    margin:36px 0 clamp(48px,12vw,84px);
  }
  .ora-case .final-editorial-visual img{
    border-radius:var(--ora-radius-inner);
    box-shadow:0 20px 52px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.12);
  }
}

/* V41 — targeted homepage media correction for the reordered projects.
   Golden Swallow uses its native 4:3 identity overview without the former
   BMS content override. What The Rugs uses the same native stage ratio, with
   a restrained scale that trims only its baked-in outer canvas. */
.ora-home .work-list > .project-row .golden-project-visual,
.ora-home .work-list > .project-row .rugs-project-visual{
  aspect-ratio:4 / 3!important;
}
.ora-home .work-list > .project-row .golden-project-visual{
  background:#e9e1d7;
}
.ora-home .work-list > .project-row .golden-project-visual img{
  padding:0!important;
  object-fit:cover!important;
  object-position:center!important;
}
.ora-home .work-list > .project-row .rugs-project-visual{
  background:#111;
}
.ora-home .work-list > .project-row .rugs-project-visual img{
  padding:0!important;
  object-fit:cover!important;
  object-position:center!important;
  transform:scale(1.08);
  transform-origin:center;
}
@media(hover:hover) and (pointer:fine){
  .ora-home .work-list > .project-row .rugs-project-visual:hover img{
    transform:scale(1.1);
  }
}

/* V42 — final cross-site polish pass.
   Keep the persistent glass plane full-width, while its contents share the
   exact same responsive grid as every editorial section. */
.ora-editorial .site-header .navbar{
  width:min(calc(100% - (var(--gutter) * 2)),var(--container));
}

/* Balanced display type avoids accidental orphan lines without changing the
   authored wording or project-specific hierarchy. */
.ora-editorial .case-title,
.ora-editorial .section-head .h2,
.ora-editorial .outcome .h2,
.ora-editorial .next-project strong,
.ora-home .contact-bottom h2{
  text-wrap:balance;
}
.ora-editorial .lead,
.ora-editorial .project-caption p{
  text-wrap:pretty;
}

@media(max-width:760px){
  /* The visible typography stays unchanged; only the tappable box is brought
     up to the same 44px minimum used by the rest of the interface. */
  .ora-home .home-hero-bottom a,
  .ora-home .project-info-main .h3 a{
    display:inline-flex;
    min-height:44px;
    align-items:center;
  }
  .ora-editorial .case-meta-strip dt,
  .ora-editorial .key-visual-topline,
  .ora-editorial .opera-art-format{
    font-size:0.75rem!important;
  }
}

@media(max-width:420px){
  /* The compact content container uses a fixed 16px gutter at this width. */
  .ora-editorial .site-header .navbar{width:calc(100% - 32px)}
}

/* Metadata uses open gutters so labels never sit against a divider as the
   four-column reading grid recomposes. */
.ora-case .case-meta-strip{
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:0 clamp(20px,3vw,40px);
}
.ora-case .case-meta-strip>div,
.ora-case .case-meta-strip>div:nth-child(n){
  padding:22px 0!important;
  border:0!important;
}
@media(max-width:1100px){
  .ora-case .case-meta-strip{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .ora-case .case-meta-strip>div:nth-child(n+3){border-top:1px solid var(--line)!important}
}
@media(max-width:760px){
  .ora-case .case-meta-strip>div:nth-child(n){padding-block:18px!important}
}
@media(max-width:350px){
  .ora-case .case-meta-strip{grid-template-columns:1fr!important}
  .ora-case .case-meta-strip>div+div{border-top:1px solid var(--line)!important}
}

/* Navigation remains legible over each project's own scene. */
.ora-case .key-visual-dot:hover::after{background:var(--kv-dot-active)}
.ora-case .key-visual-dot:hover{transform:none}
@media(prefers-contrast:more){
  .ora-case .key-visual-navigation{--kv-dot:var(--kv-dot-active)}
}

/* Accessible editorial typography: compact labels stay readable, while rem
   sizes across both sheets respect the reader's preferred text size. */
html{scrollbar-gutter:stable}
.ora-editorial .kicker,
.ora-home .home-hero-topline,
.ora-home .home-hero-kicker,
.ora-home .home-hero-baseline,
.ora-home .home-hero-art-caption{font-size:.75rem;line-height:1.5}
.ora-home .home-hero-topline,
.ora-home .home-hero-baseline{flex-wrap:wrap;gap:8px 24px}
.ora-home .home-hero-art-caption{flex-wrap:wrap;gap:6px 16px}
.ora-editorial p,
.ora-editorial h1,
.ora-editorial h2,
.ora-editorial h3{overflow-wrap:break-word}
.ora-editorial .site-header .desktop-nav a[aria-current="location"]{
  text-decoration:underline;
  text-underline-offset:.4em;
  text-decoration-thickness:1px;
}
.ora-editorial .site-header .mobile-menu a[aria-current="location"]{
  text-decoration:underline;
  text-underline-offset:.18em;
}
.ora-editorial .site-header .mobile-menu{
  top:var(--ora-header-height,68px);
  max-height:calc(100dvh - var(--ora-header-height,68px));
}
.ora-editorial .logo:focus-visible{outline:2px solid #242424;outline-offset:6px}
.ora-editorial .key-visual-card{max-height:none}
.ora-editorial .key-visual-block .key-visual-shell.is-measured{min-height:0!important}
.ora-editorial .key-visual-block .is-measured .key-visual-deck{height:var(--kv-deck-height)!important}
@media(max-width:760px){
  .ora-editorial .key-visual-navigation{
    grid-template-columns:48px minmax(0,1fr) 48px!important;
    gap:4px 8px;
    padding:12px 0 0;
  }
  .ora-editorial .key-visual-navigation .key-visual-pagination{grid-area:1/2;justify-content:center}
  .ora-editorial .key-visual-navigation .key-visual-nav-actions{grid-area:2/2;justify-self:center}
  .ora-editorial .key-visual-navigation .key-visual-edge-control{
    position:static;display:grid;transform:none!important;align-self:center;
  }
  .ora-editorial .key-visual-navigation .key-visual-edge-prev{grid-area:1/1}
  .ora-editorial .key-visual-navigation .key-visual-edge-next{grid-area:1/3}
}

/* A short viewport or enlarged text must never hide the viewer's controls. */
.ora-editorial .portfolio-dialog,
.ora-editorial .catalog-lightbox{overflow:auto;overscroll-behavior:contain}
.ora-editorial .dialog-shell,
.ora-editorial .catalog-lightbox-shell{display:block;max-height:none}
.ora-editorial .dialog-media,
.ora-editorial .catalog-lightbox-media{overflow:visible}
.ora-editorial .dialog-head,
.ora-editorial .catalog-lightbox-head{position:sticky;top:0;z-index:4}
.ora-editorial .dialog-head>div{min-width:0}
.ora-editorial .dialog-close,
.ora-editorial .catalog-lightbox-close{flex:0 0 44px;min-width:44px;min-height:44px}
.ora-editorial .dialog-controls{flex-wrap:wrap;position:sticky;bottom:0;z-index:4}
.ora-editorial .dialog-controls button{height:auto;padding-block:10px}
.ora-editorial .dialog-count{color:#d2cdc8}

/* Grid children can shrink and reflow instead of imposing their word width
   on a narrow column, especially at large accessibility text sizes. */
.ora-editorial main :where(section,article,figure,div){min-width:0}
.ora-editorial .service-row>*{min-width:0;overflow-wrap:anywhere}
.ora-case .scope-list li{flex-wrap:wrap;gap:6px 20px}
.ora-case .scope-list strong,
.ora-case .scope-list span{min-width:0;overflow-wrap:anywhere}
.ora-case .scope-list span{margin-left:auto}
.ora-home .service-row{grid-template-columns:58px minmax(0,1.05fr) minmax(0,.8fr) auto}
.ora-case .case-story-copy{grid-template-columns:repeat(2,minmax(0,1fr))}
.ora-case .case-title span{overflow-wrap:anywhere}
.ora-case .case-story article h3,
.ora-istana .istana-cover-scene figcaption{font-size:.75rem}
.ora-home .home-hero-bottom p,
.ora-home .project-caption p,
.ora-home .service-row p{font-size:1rem}
.ora-home #work>.container>.section-head .lead{font-size:1rem}
@media(max-width:1100px){
  .ora-home .service-row{grid-template-columns:38px minmax(0,1fr) auto;gap:20px}
}
@media(max-width:900px){
  .ora-case .case-story{grid-template-columns:minmax(0,1fr);gap:34px}
  .ora-case .case-story>.reveal{position:static}
}
@media(max-width:760px){
  .ora-home .intro-grid,
  .ora-case .case-story-copy{grid-template-columns:minmax(0,1fr)}
}
@supports(font-size:1cqw){
  @media(min-width:1101px){
    .ora-home .home-hero-copy{container-type:inline-size}
    .ora-home .home-hero-copy h1{font-size:clamp(4rem,17.5cqw,8.625rem)}
    .ora-home .home-hero-copy h1 span{white-space:normal}
  }
}
@media(prefers-reduced-motion:reduce){
  .ora-editorial .key-visual-card.is-active{
    transform:translate3d(-50%,-50%,90px)!important;
  }
  .ora-editorial .project-visual img,
  .ora-editorial .archive-media img{transition:none!important}
}
@media(prefers-reduced-transparency:reduce),(prefers-contrast:more){
  .ora-editorial .menu-scrim,
  .ora-editorial .portfolio-dialog::backdrop,
  .ora-editorial .catalog-lightbox::backdrop{
    -webkit-backdrop-filter:none!important;backdrop-filter:none!important;
  }
  .ora-editorial .dialog-head,
  .ora-editorial .dialog-controls,
  .ora-editorial .catalog-lightbox-head{background:#191919!important;color:#fff}
}
@media(prefers-contrast:more){
  .ora-editorial,
  .ora-editorial section{--muted:var(--text)}
  .ora-editorial .key-visual-topline,
  .ora-editorial .revolve-status{color:inherit}
}

/* Section links move focus to a reading landmark. Keep the visible focus
   treatment on interactive controls, not on an entire editorial heading. */
.ora-editorial main:focus,
.ora-editorial main [tabindex="-1"]:focus{outline:none}

/* Separate the two About grids, and let mobile cards size to their copy. */
.ora-home .principles-strip{margin-top:14px;overflow:visible}
@media(max-width:760px){
  .ora-home .facts,
  .ora-home .principles-strip{gap:12px}
  .ora-home .facts .fact,
  .ora-home .principles-strip .principle{
    min-height:0;
    justify-content:flex-start;
    gap:16px;
    padding:20px 22px!important;
  }
}

/* About reads as an editorial index. Open rules reduce visual weight and keep
   each thought separate when the three-column layout becomes one column. */
.ora-home #about .facts,
.ora-home #about .principles-strip{
  gap:clamp(18px,2vw,32px);
  margin-top:clamp(38px,5vw,64px);
  border:0;
  background:none;
  overflow:visible;
}
.ora-home #about .principles-strip{margin-top:clamp(24px,3vw,40px)}
.ora-home #about .fact,
.ora-home #about .principle,
.ora-home #about .fact+.fact,
.ora-home #about .principle+.principle{
  min-height:0;
  justify-content:flex-start;
  gap:clamp(14px,2.2vw,30px);
  padding:20px 0 0!important;
  border:0;
  border-top:1px solid var(--line);
  border-radius:0;
  background:none;
}
.ora-home #about .fact strong,
.ora-home #about .principle strong{font-size:1rem;line-height:1.35}
.ora-home #about .fact span,
.ora-home #about .principle span{font-size:.875rem;line-height:1.55}
@media(max-width:1100px){
  .ora-home #about .facts,
  .ora-home #about .principles-strip{gap:0;margin-top:34px}
  .ora-home #about .fact,
  .ora-home #about .principle,
  .ora-home #about .fact+.fact,
  .ora-home #about .principle+.principle{
    gap:8px;
    padding:18px 0!important;
  }
}
@media(max-width:760px){
  .ora-home #about .principles-strip{margin-top:14px}
  .ora-home #about .fact span,
  .ora-home #about .principle span{max-width:38ch}
}
