/*
Theme Name: MIRASCO Living
Author: H&E
Description: ミラスコの暮らし体験・岡山の部屋探し向け専用テーマ。
Version: 1.0.0
Requires PHP: 8.3
Text Domain: mirasco
*/

:root{--ink:#142c49;--blue:#154f9c;--cream:#f4f3ed;--yellow:#f7cf58}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--cream);font-family:'Noto Sans JP',sans-serif;line-height:1.9}a{color:inherit;text-decoration:none}button{font:inherit}h1,h2,h3,p{margin:0}button,a,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible{outline:3px solid var(--yellow);outline-offset:5px}header{position:fixed;left:0;right:0;top:0;padding:22px 4vw;z-index:30;display:flex;align-items:center;justify-content:space-between;transition:background .3s,color .3s;color:white}header.solid{background:rgba(244,243,237,.96);color:var(--ink);border-bottom:1px solid #142c4918}.brand{font-size:25px;letter-spacing:.08em;font-weight:600}.brand em{font-style:normal;color:var(--yellow)}.nav{display:flex;gap:28px;align-items:center;font-size:12px}.nav .contact{padding:9px 18px;border:1px solid currentColor;border-radius:30px}.hero{height:170svh;position:relative;background:#132642}.hero-pin{position:sticky;top:0;height:100svh;overflow:hidden;color:white}.hero-image{position:absolute;inset:-3%;width:106%;height:106%;object-fit:cover;object-position:50% 50%;transform:scale(1.04);will-change:transform;filter:brightness(.78)}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,24,43,.58),transparent 75%),linear-gradient(0deg,rgba(8,24,43,.65),transparent 45%)}.hero-copy{position:absolute;left:7vw;top:29%;max-width:1000px;will-change:transform,opacity}.eyebrow{font-size:11px;letter-spacing:.18em;display:flex;gap:12px;align-items:center}.eyebrow:before{content:'';display:block;width:6px;height:6px;border-radius:50%;background:var(--yellow)}h1{font-family:'Noto Serif JP',serif;font-size:clamp(36px,4.9vw,72px);font-weight:400;letter-spacing:.025em;line-height:1.65;margin-top:23px}.hero-copy p{font-size:14px;margin-top:24px;font-weight:400;letter-spacing:.04em}.round-link{display:inline-flex;align-items:center;gap:24px;font-size:13px;margin-top:25px}.round-link b{border:1px solid currentColor;border-radius:50%;width:45px;height:45px;display:grid;place-items:center;font-size:19px;font-weight:400;transition:background .25s,transform .25s}.round-link:hover b{background:#ffffff22;transform:translateX(4px)}.hero-word{position:absolute;bottom:17px;left:4vw;right:4vw;font-size:14.1vw;line-height:.85;font-weight:500;letter-spacing:-.065em;opacity:.2;white-space:nowrap;pointer-events:none}.hero-bottom{position:absolute;bottom:40px;left:7vw;right:7vw;display:flex;justify-content:space-between;align-items:flex-end;font-size:10px;z-index:2;letter-spacing:.06em}.scroll-cue{display:flex;align-items:center;gap:12px}.scroll-cue span{display:inline-block;height:38px;width:1px;background:#ffffff55;position:relative;overflow:hidden}.scroll-cue span:after{content:'';position:absolute;top:-100%;width:1px;height:100%;background:white;animation:scroll-line 2s ease infinite}.intro{padding:130px 7vw 120px;background:var(--cream);position:relative;z-index:3}.label{font-size:11px;letter-spacing:.14em;margin-bottom:34px;color:#6b7c8e}.intro-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:10vw}.intro h2,.big-title{font-family:'Noto Serif JP',serif;font-size:clamp(31px,3.7vw,54px);font-weight:400;line-height:1.75;letter-spacing:.03em}.intro-text{padding-top:10px;font-size:14px;color:#627183}.intro-text p+p{margin-top:20px}.intro-line{height:1px;background:#cbd2d7;margin-top:70px}.values{display:grid;grid-template-columns:repeat(3,1fr);margin-top:28px;gap:35px}.value{display:flex;gap:18px;align-items:flex-start}.value span{font-family:Georgia,serif;color:#98a6b3;font-size:29px;line-height:1.4}.value h3{font-size:14px;font-weight:500}.value p{font-size:11px;color:#6b7c8e;margin-top:5px}.experience{padding:92px 7vw 100px;background:#153d74;color:white;position:relative;overflow:hidden}.experience .label{color:#b5c7dc}.experience-head{display:flex;justify-content:space-between;gap:40px;align-items:flex-end;margin-bottom:48px}.experience-head p{max-width:300px;font-size:13px;color:#bdcde1}.scene{position:relative;aspect-ratio:1.85;border-radius:2px;overflow:hidden;background:#102a47}.scene img{width:100%;height:100%;object-fit:cover;transform:scale(1.02);filter:var(--light-filter,none);transition:filter .8s}.scene .note{position:absolute;right:17px;bottom:12px;font-size:10px;color:white;background:#142c4960;padding:4px 9px}.scene-dot{position:absolute;background:var(--yellow);border:6px solid #f7cf5833;background-clip:padding-box;border-radius:50%;width:30px;height:30px;cursor:pointer;color:#142c49;transition:transform .25s}.scene-dot:hover,.scene-dot[aria-pressed=true]{transform:scale(1.15)}.scene-dot:after{content:'+';position:absolute;inset:0;display:grid;place-items:center;font-size:14px}.scene-dot.a{top:45%;left:46%}.scene-dot.b{top:68%;left:66%}.scene-dot.c{top:33%;left:77%}.scene-details{display:flex;justify-content:space-between;gap:35px;margin-top:26px}.scene-description{max-width:600px}.scene-description small{font-size:10px;letter-spacing:.15em;color:#a8bed6}.scene-description h3{font-family:'Noto Serif JP',serif;font-size:23px;font-weight:400;margin:8px 0}.scene-description p{font-size:13px;color:#bdcde1}.light-controls{display:flex;gap:8px;align-items:flex-start;margin-top:7px}.light-controls button{font-size:11px;color:white;padding:8px 16px;background:none;border:1px solid #ffffff55;border-radius:30px;cursor:pointer}.light-controls button[aria-pressed=true]{background:white;color:#153d74}.lifestyle{padding:110px 7vw;background:#e8edf0}.lifestyle-head{display:grid;grid-template-columns:1fr 1fr;gap:50px;margin-bottom:50px}.lifestyle-head p{font-size:14px;color:#64778b;align-self:end;max-width:430px}.choices{display:flex;gap:10px;margin-bottom:28px;flex-wrap:wrap}.choices button{border:1px solid #b9c6d1;background:transparent;padding:10px 23px;border-radius:30px;color:var(--ink);font-size:13px;cursor:pointer;transition:background .2s}.choices button[aria-pressed=true]{background:var(--ink);color:white;border-color:var(--ink)}.choice-body{display:grid;grid-template-columns:.8fr 1.2fr;border-top:1px solid #bdcad6;padding-top:35px;gap:60px;min-height:210px}.choice-body h3{font-family:'Noto Serif JP',serif;font-size:31px;line-height:1.7;font-weight:400}.choice-body p{font-size:14px;color:#61758a}.choice-body ul{padding-left:20px;font-size:13px;line-height:2.3;margin:20px 0}.flow{padding:100px 7vw 110px}.flow-head{display:grid;grid-template-columns:1fr 1fr;gap:50px;margin-bottom:50px}.flow-head p{align-self:end;font-size:14px;color:#64778b;max-width:420px}.flow-row{display:grid;grid-template-columns:100px 1fr 1.2fr;gap:35px;border-top:1px solid #cbd2d7;padding:30px 0}.flow-row:last-child{border-bottom:1px solid #cbd2d7}.flow-row .num{font-family:Georgia,serif;font-size:37px;color:#8b9cad;line-height:1.4}.flow-row h3{font-family:'Noto Serif JP',serif;font-size:23px;font-weight:400;padding-top:4px}.flow-row p{font-size:13px;color:#65778a}.faq{padding:0 7vw 100px}.faq-grid{display:grid;grid-template-columns:1fr 1.6fr;gap:60px}.faq h2{font-family:'Noto Serif JP',serif;font-size:34px;font-weight:400}details{border-top:1px solid #cbd2d7;padding:22px 0}details:last-child{border-bottom:1px solid #cbd2d7}summary{font-size:14px;cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:30px}summary:after{content:'＋';color:#7890a8}summary::-webkit-details-marker{display:none}details[open] summary:after{content:'−'}details p{font-size:13px;color:#64778b;margin-top:18px}.contact-section{background:#122e51;color:white;padding:85px 7vw}.contact-top{display:flex;justify-content:space-between;align-items:center;gap:45px}.contact-top h2{font-family:'Noto Serif JP',serif;font-size:clamp(31px,4vw,52px);line-height:1.75;font-weight:400}.contact-top p{font-size:13px;color:#b1c4da;margin-top:22px}.contact-button{background:var(--yellow);color:var(--ink);padding:23px 31px;border-radius:2px;font-size:14px;min-width:260px;display:flex;justify-content:space-between;gap:25px;transition:transform .25s}.contact-button:hover{transform:translateY(-4px)}.contact-bottom{margin-top:65px;display:flex;justify-content:space-between;font-size:11px;color:#a3b8d0;border-top:1px solid #ffffff22;padding-top:20px;gap:25px}footer{padding:28px 7vw;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:10px;color:#64778b}footer img{width:190px;height:auto}.reveal{opacity:1}.motion .reveal{opacity:0;transform:translateY(25px);transition:opacity .85s,transform .85s}.motion .reveal.in{opacity:1;transform:none}.fade-change{animation:change-in .45s ease}.hero-copy{animation:hero-in 1.2s .15s both}.hero-image{animation:image-in 1.6s ease both}@keyframes hero-in{from{opacity:0;translate:0 18px}to{opacity:1;translate:0 0}}@keyframes image-in{from{opacity:.5}to{opacity:1}}@keyframes change-in{from{opacity:.3;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes scroll-line{to{top:100%}}@media(max-width:800px){.nav a:not(.contact){display:none}.hero{height:140svh}.hero-copy{left:6vw;right:6vw;top:27%}h1{font-size:clamp(30px,6vw,48px)}.hero-copy p{font-size:12px}.hero-bottom{left:6vw;right:6vw;bottom:28px}.hero-word{bottom:90px;font-size:14vw}.intro,.lifestyle,.flow{padding:75px 6vw}.intro-grid,.lifestyle-head,.flow-head,.faq-grid{grid-template-columns:1fr;gap:28px}.intro-grid h2,.big-title{font-size:33px}.intro-text{max-width:600px}.values{grid-template-columns:1fr;gap:25px}.intro-line{margin-top:42px}.experience{padding:70px 6vw}.experience-head{display:block;margin-bottom:30px}.experience-head p{max-width:500px;margin-top:25px}.scene{aspect-ratio:1.25}.scene img{object-position:60%}.scene-details{display:block}.light-controls{margin-top:24px}.choice-body{grid-template-columns:1fr;gap:20px}.choice-body h3{font-size:26px}.flow-row{grid-template-columns:45px 1fr;gap:15px;padding:25px 0}.flow-row p{grid-column:2}.flow-row h3{font-size:21px}.flow-row .num{font-size:30px;grid-row:1/3}.faq{padding:0 6vw 70px}.faq-grid{gap:25px}.contact-section{padding:65px 6vw}.contact-top{display:block}.contact-button{margin-top:30px;max-width:420px;padding:20px 25px}.contact-bottom{flex-direction:column;gap:6px;margin-top:45px}footer{padding:25px 6vw;align-items:flex-start;flex-direction:column}.brand{font-size:21px}header{padding:17px 6vw}.nav{font-size:10px}.nav .contact{padding:8px 13px}.scene-dot.a{left:30%}.scene-dot.b{left:63%}.scene-dot.c{left:79%}.hero-bottom>span{max-width:160px;font-size:9px}.hero-image{object-position:64% center}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.motion .reveal{opacity:1;transform:none}.hero-image{will-change:auto}.hero-copy{will-change:auto}.hero{height:100svh}.hero-pin{position:relative}}
.brand{display:block;background:rgba(244,243,237,.94);padding:5px 10px;line-height:0}.brand img{width:154px;height:auto}header.solid .brand{padding-left:0;background:none}@media(max-width:600px){.brand img{width:125px}} 
/* More immersive spatial rhythm, inspired by the reference's layered sections. */
.hero{height:190svh}.hero-image{filter:brightness(.67)}.hero-copy{top:24%;left:7vw}.hero-copy h1{font-size:clamp(40px,5.2vw,78px);line-height:1.6}.hero-word{bottom:13vh;opacity:.87;font-size:14.4vw;color:#fff;mix-blend-mode:soft-light}.word-dot{display:inline-block;width:1.2vw;height:1.2vw;background:var(--yellow);border-radius:50%;margin-left:2vw;vertical-align:baseline}.hero-bottom{bottom:5vh}.intro{margin-top:-7svh;border-radius:0;padding-top:100px;overflow:hidden}.section-index{font-size:10px;letter-spacing:.14em;color:#8897a4;border-bottom:1px solid #142c4922;padding-bottom:24px;margin-bottom:45px}.intro-statement{font-family:'Noto Sans JP',sans-serif;font-size:clamp(68px,12.9vw,195px);font-weight:500;letter-spacing:-.065em;line-height:.97;margin-top:100px;color:#173d6a}.intro-statement span{color:#a9bccb}.intro-line{margin-top:45px}.intro h2{font-size:clamp(36px,4.2vw,61px)}.experience{padding:0;height:245svh;background:#0d2441;overflow:visible;position:relative}.experience-stage{position:sticky;top:0;height:100svh;padding:90px 6vw 30px;overflow:hidden;display:grid;grid-template-rows:auto 1fr auto;gap:18px}.experience-stage>.label{position:absolute;left:6vw;top:64px;font-size:9px;color:#a7bdd7}.experience-head{margin:0;align-items:center;position:relative;z-index:2}.experience-head h2{font-size:clamp(26px,2.8vw,42px);line-height:1.6}.experience-head p{font-size:11px;max-width:290px}.experience .scene{aspect-ratio:auto;min-height:0;border-radius:0;overflow:hidden}.experience .scene img{will-change:transform;transform:scale(1.04)}.experience .scene-details{margin:0;min-height:112px;align-items:flex-start}.scene-description h3{font-size:21px;margin:5px 0}.scene-description p{font-size:12px;line-height:1.8;max-width:600px}.scene-description small{font-size:9px}.experience .scene-dot{width:25px;height:25px}.scene-story-progress{position:absolute;right:6vw;top:70px;display:flex;gap:8px}.scene-story-progress i{height:2px;width:24px;background:#ffffff22;transition:background .4s}.scene-story-progress i.active{background:var(--yellow)}.lifestyle{position:relative;padding-top:80px;overflow:hidden;background:#faf9f4}.giant-heading{font-size:15vw;line-height:1;font-weight:500;letter-spacing:-.065em;color:#d6e0e8;margin-bottom:70px;white-space:nowrap}.lifestyle-head h2{font-size:clamp(34px,4vw,58px)}.choice-body{min-height:270px;padding-top:40px}.choices button{border-radius:2px;padding:14px 26px}.choices{gap:1px}.flow{background:#e3ebf1;position:relative;overflow:hidden;padding-top:90px}.flow-big{font-size:18vw;line-height:.9;font-weight:500;letter-spacing:-.06em;color:#b9cbd9;margin-bottom:65px}.flow-head{position:relative}.flow-row{padding:36px 0;border-color:#9fb4c444}.flow-row .num{font-size:52px;color:#809bb2}.flow-row h3{font-size:26px}.faq{padding-top:95px;background:#e3ebf1}.contact-section{padding-top:105px;padding-bottom:95px;position:relative;overflow:hidden}.contact-top h2{font-size:clamp(36px,4.6vw,67px)}.contact-bottom{margin-top:85px}.contact-button{border-radius:0;min-width:310px}.contact-section:before{content:'';position:absolute;right:-90px;top:-70px;width:380px;height:380px;border-radius:50%;border:1px solid #ffffff12;pointer-events:none}.contact-section:after{content:'';position:absolute;right:-65px;top:-45px;width:330px;height:330px;border-radius:50%;border:1px solid #ffffff12;pointer-events:none}.scene-description{transition:opacity .3s}.scene .note{background:#132b45aa}.round-link:hover b{background:var(--yellow);color:var(--ink)}
@media(max-width:800px){.hero{height:150svh}.hero-copy{top:27%;left:6vw}.hero-copy h1{font-size:clamp(31px,6.7vw,50px)}.hero-word{bottom:17vh;opacity:.72}.intro{padding-top:65px;margin-top:-5svh}.section-index{margin-bottom:32px}.intro-statement{font-size:14vw;margin-top:60px}.intro h2{font-size:34px}.experience{height:auto;padding:65px 6vw}.experience-stage{position:static;height:auto;padding:0;display:block;overflow:visible}.experience-stage>.label{position:static;margin-bottom:30px}.experience-head{display:block;margin-bottom:25px}.experience-head h2{font-size:32px}.experience-head p{margin-top:20px;font-size:12px;max-width:none}.experience .scene{height:auto;aspect-ratio:1.25}.experience .scene-details{margin-top:25px;min-height:0;display:block}.experience .scene img{will-change:auto}.scene-story-progress{display:none}.giant-heading{margin-bottom:40px}.lifestyle{padding-top:65px}.lifestyle-head h2{font-size:33px}.choice-body{min-height:0}.choices button{padding:12px 18px;font-size:12px}.flow-big{font-size:24vw;margin-bottom:45px}.flow{padding-top:65px}.flow-row .num{font-size:34px}.flow-row h3{font-size:22px}.flow-row{padding:28px 0}.faq{padding-top:60px}.contact-section{padding:70px 6vw}.contact-top h2{font-size:35px}.contact-button{min-width:0;width:100%}.contact-bottom{margin-top:45px}}
@media(prefers-reduced-motion:reduce){.hero{height:100svh}.experience{height:auto;padding:80px 6vw}.experience-stage{position:static;height:auto;padding:0;display:block}.experience-stage>.label{position:static}.experience .scene{aspect-ratio:1.85;margin:35px 0}.experience .scene img{transform:none!important;will-change:auto}.scene-story-progress{display:none}}

/* Interactive dollhouse replaces the photograph in the spatial experience. */
.experience{height:auto;padding:85px 6vw 70px}.experience-stage{position:static;height:auto;display:block;padding:0;overflow:visible}.experience-stage>.label{position:static;margin-bottom:30px}.experience-head{margin-bottom:30px}.experience .model-scene{height:clamp(360px,52vw,640px);aspect-ratio:auto;position:relative;background:#e8edf0}.experience .scene-details{margin-top:26px;min-height:115px}#home-model{position:absolute;inset:0;overflow:hidden}#home-canvas{width:100%;height:100%;display:none;touch-action:pan-y;cursor:grab;outline-offset:-4px}#home-canvas:active{cursor:grabbing}#home-model.ready #home-canvas{display:block}.room-dot{position:absolute;display:none;transform:translate(-50%,-50%);z-index:3;border:1px solid #d3b44f;border-radius:25px;background:#fffef5ed;color:#253d54;box-shadow:0 3px 15px #16324b20;padding:6px 11px 6px 7px;font-size:11px;cursor:pointer;white-space:nowrap;align-items:center;gap:6px;line-height:1.4}.room-dot span{height:15px;width:15px;background:#f7cf58;border:3px solid #f7cf5833;background-clip:padding-box;border-radius:50%;display:block}.room-dot[aria-pressed=true]{background:#f7cf58;border-color:#d6b13f}.ready .room-dot{display:flex}.model-tools{display:none;position:absolute;top:15px;right:15px;gap:4px;z-index:5}.ready .model-tools{display:flex}.model-tools button{background:#fffef5ef;border:1px solid #d0d9df;color:#243c51;border-radius:4px;min-width:34px;height:34px;padding:0 10px;font-size:13px;cursor:pointer}.model-tools button:hover{background:#f7cf58}#model-status{position:absolute;left:15px;top:17px;color:#60778a;font-size:10px;max-width:55%;pointer-events:none}.model-caption{font-size:10px;color:#a8bed5;line-height:1.8;padding-top:7px}.model-scene .note{font-size:9px;z-index:6}.model-scene #scene-image{height:100%;object-fit:cover}.experience .model-scene{isolation:isolate}@media(max-width:800px){.experience{padding:65px 6vw}.experience .model-scene{height:400px}.model-tools{top:auto;bottom:40px;right:10px}.room-dot{font-size:10px;padding:5px 8px 5px 5px}.room-dot span{width:12px;height:12px}.model-caption{margin-top:20px}#model-status{max-width:90%;left:10px;top:10px;font-size:9px}.model-scene .note{right:10px;bottom:10px;font-size:8px}}@media(prefers-reduced-motion:reduce){.experience .model-scene{aspect-ratio:auto;margin:0}.experience-stage{padding:0}}

.room-window[hidden]{display:none!important}.room-window{position:absolute;inset:0;z-index:12;background:#182f48a6;display:grid;place-items:center;padding:22px;perspective:1400px;backdrop-filter:blur(6px)}.room-window-card{position:relative;width:min(900px,100%);height:100%;max-height:570px;border:7px solid #f9f6ee;background:#fffaf1;box-shadow:0 25px 65px #10233655;display:grid;grid-template-rows:minmax(0,1fr) auto;opacity:0;transform:translateY(32px) scale(.92) rotateX(8deg);transition:transform .65s cubic-bezier(.16,1,.3,1),opacity .4s}.is-open .room-window-card{opacity:1;transform:none}.room-window-photo{min-height:0;overflow:hidden}.room-window-photo img{width:100%;height:100%;object-fit:cover;transform:scale(1.045);transition:transform 1.4s ease}.is-open .room-window-photo img{transform:scale(1)}.room-window-copy{padding:18px 24px;color:#243b50;background:#fffaf1}.room-window-copy small{font-size:9px;letter-spacing:.14em;color:#73838b}.room-window-copy h3{font-family:'Noto Serif JP',serif;font-weight:500;font-size:clamp(17px,2.3vw,25px);margin:6px 0 8px}.room-window-copy p{font-size:12px;line-height:1.9;max-width:650px;margin:0}.room-close{position:absolute;right:12px;top:12px;z-index:2;background:#fffaf1;color:#243b50;border:0;padding:10px 15px;border-radius:30px;cursor:pointer;box-shadow:0 3px 14px #14293e20;font-size:12px}.model-scene .note{pointer-events:none;z-index:7}@media(max-width:800px){.experience .model-scene{height:500px}.room-window{padding:10px}.room-window-card{border-width:5px}.room-window-copy{padding:14px}.room-window-copy p{font-size:11px}.room-close{right:8px;top:8px;padding:9px 12px}}@media(prefers-reduced-motion:reduce){.room-window-card,.room-window-photo img{transition:none;transform:none}}

/* A continuous camera journey from dollhouse to eye-level interior. */
.room-window{padding:0;background:transparent;backdrop-filter:none;perspective:none;--room-reveal:0;--room-scale:.94}.room-window-card{width:100%;height:100%;max-height:none;border:0;box-shadow:none;background:transparent;display:block;opacity:var(--room-reveal);transform:none;transition:none;overflow:hidden}.room-window-photo{position:absolute;inset:0}.experience .scene .room-window-photo img{width:100%;height:100%;object-fit:cover;object-position:center;transform:scale(var(--room-scale));transition:none;will-change:transform}.room-window-copy{position:absolute;bottom:0;left:0;right:0;padding:55px 32px 25px;background:linear-gradient(0deg,#132c49ef,#132c49aa 60%,transparent);color:#fff;opacity:0;transform:translateY(12px);transition:opacity .6s,transform .6s;pointer-events:none}.arrived .room-window-copy{opacity:1;transform:none}.room-window-copy small{color:#c7d8e6}.room-window-copy p{color:#dbe4eb}.room-window-copy h3{color:#fff}.room-close{opacity:0;transition:opacity .35s;top:18px;right:18px}.arrived .room-close{opacity:1}.room-active .room-dot,.room-active .model-tools{opacity:0;pointer-events:none}.room-dot,.model-tools{transition:opacity .3s}.model-scene:has(.room-active)>#model-status{opacity:0}.model-scene .note{z-index:15;font-size:8px}.room-window-copy{padding-right:32px;padding-bottom:45px}@media(max-width:800px){.room-window{padding:0}.room-window-card{border:0}.room-window-copy{padding:45px 18px 42px}.room-window-copy h3{font-size:19px}.room-window-copy p{font-size:11px}.room-close{top:12px;right:12px}.experience .scene .room-window-photo img{object-position:center}}@media(prefers-reduced-motion:reduce){.room-window-copy,.room-close{transition:none;transform:none}}

.opening-finished:not(.opening-active) .hero-copy{animation:none;translate:none}
/* MIRASCO opening: a bouncing logo dot, then a photographic arched window. */
.brand-opening{display:none;position:fixed;inset:0;z-index:100;pointer-events:none;isolation:isolate;overflow:hidden}.opening-active .brand-opening{display:block}.opening-active body{overflow:hidden}.opening-veil{position:absolute;inset:0;background:#f4f3ed;animation:opening-veil-away 5s 2.8s cubic-bezier(.25,.65,.25,1) both}.opening-mark{position:absolute;width:min(76vw,700px);aspect-ratio:1779/604;left:50%;top:44%;transform:translate(-50%,-50%);animation:opening-mark-away .7s 2.15s both}.opening-mark img{width:100%;height:auto;display:block;mask-image:radial-gradient(circle at 67.17% 45.5%,transparent 0 2%,#000 2.1%);animation:opening-mark-in 1.5s both}.opening-ball{position:absolute;width:2.92%;aspect-ratio:1;left:65.71%;top:41.2%;border-radius:50%;background:radial-gradient(circle at 30% 25%,#ffe98d,#f7cf58 60%,#caa035);box-shadow:inset 0 0 0 1px #dcb749;animation:opening-ball-bounce 2s linear both}.opening-caption{position:absolute;left:0;right:0;top:100%;text-align:center;color:#7a8792;font-size:10px;letter-spacing:.18em;margin-top:20px;animation:opening-caption-in 1s .9s both}.opening-window{position:absolute;left:50%;top:50%;width:clamp(230px,32vw,420px);aspect-ratio: .77;transform:translate(-50%,-50%);perspective:1400px;animation:opening-window-journey 5.4s 2.4s both;filter:drop-shadow(0 15px 35px #102a4520)}.opening-leaf{position:absolute;top:0;bottom:0;width:50%;overflow:hidden;background:#f4f3ed;border:7px solid #e8e4da;backface-visibility:hidden;transform-style:preserve-3d}.opening-leaf.left{left:0;border-radius:240px 0 0 4px;transform-origin:left center;animation:opening-left 5s 2.8s cubic-bezier(.25,.65,.25,1) both}.opening-leaf.right{right:0;border-radius:0 240px 4px 0;transform-origin:right center;animation:opening-right 5s 2.8s cubic-bezier(.25,.65,.25,1) both}.opening-pane{position:absolute;inset:0;width:200%;background-image:linear-gradient(#1c38551a,#1c385526),url('assets/living.webp');background-size:cover;background-position:center}.left .opening-pane{left:0}.right .opening-pane{left:-100%}.opening-pane:before{content:'';position:absolute;left:50%;top:0;bottom:0;width:3px;background:#f4f3ed}.opening-pane:after{content:'';position:absolute;top:51%;left:0;right:0;height:5px;background:#e8e4da}.opening-handle{position:absolute;top:60%;height:23px;width:3px;background:#b49b69;box-shadow:0 1px 3px #0002;z-index:2}.left .opening-handle{right:8px}.right .opening-handle{left:8px}.opening-skip{display:none;position:fixed;z-index:101;right:24px;bottom:24px;padding:10px 17px;border:1px solid #b9c6d0;background:#f4f3edeb;color:#243d56;border-radius:30px;font-size:11px;cursor:pointer}.opening-active .opening-skip{display:block}.opening-replay{font-size:10px;color:#64778b;background:none;border:0;padding:7px 0;cursor:pointer;text-decoration:underline;text-underline-offset:4px}.opening-active .hero-copy{animation:opening-hero-arrive 1.4s 6.5s both}.opening-active header{opacity:0;animation:opening-caption-in .8s 7.1s both}.opening-active .hero-word{animation:opening-caption-in 1.5s 6.5s both}
@keyframes opening-ball-bounce{0%{opacity:0;transform:translate(-750%,-230%) scale(.85)}8%{opacity:1}22%{transform:translate(-510%,78%) scale(1.17,.83)}37%{transform:translate(-310%,-205%) scale(.96,1.06)}51%{transform:translate(-170%,65%) scale(1.13,.88)}67%{transform:translate(-60%,-105%) scale(.96,1.05)}80%{transform:translate(0,12%) scale(1.09,.92)}91%{transform:translate(0,-30%) scale(.99,1.02)}100%{opacity:1;transform:none}}
@keyframes opening-mark-in{from{opacity:0;translate:0 12px}to{opacity:1;translate:0 0}}@keyframes opening-caption-in{from{opacity:0}to{opacity:1}}@keyframes opening-mark-away{to{opacity:0;translate:0 -20px}}@keyframes opening-window-journey{0%{opacity:0;transform:translate(-50%,-50%) scale(.92)}12%{opacity:1;transform:translate(-50%,-50%) scale(1)}47%{opacity:1}100%{opacity:0;transform:translate(-50%,-50%) scale(5.8)}}@keyframes opening-left{0%,8%{transform:rotateY(0)}100%{transform:rotateY(-112deg)}}@keyframes opening-right{0%,8%{transform:rotateY(0)}100%{transform:rotateY(112deg)}}@keyframes opening-veil-away{0%,7%{opacity:1}70%{opacity:.18}100%{opacity:0}}@keyframes opening-hero-arrive{from{opacity:0;translate:0 20px}to{opacity:1;translate:0 0}}
@media(max-width:800px){.opening-mark{width:90vw;top:43%}.opening-caption{font-size:8px;letter-spacing:.1em}.opening-window{width:65vw;max-width:330px}.opening-leaf{border-width:5px}.opening-skip{bottom:18px;right:18px;font-size:10px}}@media(prefers-reduced-motion:reduce){.brand-opening,.opening-skip{display:none!important}.opening-active body{overflow:auto}.opening-active header,.opening-active .hero-copy,.opening-active .hero-word{opacity:1;translate:none}.opening-replay{display:none}}

/* Refined bronze frame and reflective glazing, facing the outdoors. */
.opening-window{filter:drop-shadow(0 20px 40px #18304724)}.opening-leaf{border:8px solid #414c50;background:#414c50;box-shadow:inset 0 0 0 1px #ac9574,0 0 0 1px #26383b,0 4px 14px #10253224}.opening-pane{background-image:linear-gradient(125deg,#fff7dd16,#33546508 55%,#223d5720),url('assets/window-neighborhood.webp');background-size:cover;background-position:center}.opening-pane:before{width:2px;background:linear-gradient(90deg,#38484a,#b3a083,#414d50);box-shadow:1px 0 4px #142c4933}.opening-pane:after{height:3px;background:linear-gradient(#8d7f68,#35474b);box-shadow:0 1px 2px #132b4926}.opening-leaf:before{content:'';position:absolute;inset:0;z-index:1;border:1px solid #bdac8b75;pointer-events:none;border-radius:inherit}.opening-leaf:after{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(115deg,transparent 10%,#ffffff24 11%,#ffffff06 35%,transparent 36%,transparent 67%,#ffffff12 68%,transparent 80%);pointer-events:none}.opening-handle{height:28px;width:4px;border-radius:2px;background:linear-gradient(90deg,#7e6a47,#c5b18a,#8c7855);box-shadow:1px 2px 4px #132b4933}.left .opening-handle{right:10px}.right .opening-handle{left:10px}@media(max-width:800px){.opening-leaf{border-width:6px}.opening-handle{height:23px;width:3px}.left .opening-handle{right:7px}.right .opening-handle{left:7px}}

/* Quiet daylight turns the opening into one continuous arrival. */
.opening-leaf{border:5px solid #8e918b;background:#8e918b;box-shadow:inset 0 0 0 1px #e1dfd4,0 0 0 1px #777e78,0 4px 14px #172c3b18}.opening-leaf:before{border-color:#ebe8de70}.opening-leaf:after{background:linear-gradient(115deg,transparent 25%,#fff9e90d 26%,#fff9e91c 41%,transparent 42%)}.opening-pane{background-image:linear-gradient(125deg,#fff5dc16,transparent 60%),url('assets/window-neighborhood.webp')}.opening-pane:before{width:2px;background:#a4a69b;box-shadow:none}.opening-pane:after{height:2px;background:#999e94;box-shadow:none}.opening-handle{width:3px;background:linear-gradient(90deg,#a49373,#d6c6a6,#9a896a);box-shadow:0 1px 2px #172c3b20}.opening-window{filter:drop-shadow(0 12px 27px #23354418);animation:quiet-window-journey 4.1s 1.95s both}.opening-mark{animation:opening-mark-away .55s 1.75s both}.opening-ball{animation-duration:1.65s}.opening-caption{animation-delay:.75s}.opening-leaf.left{animation:quiet-left 3.8s 2.05s cubic-bezier(.45,0,.2,1) both}.opening-leaf.right{animation:quiet-right 3.8s 2.05s cubic-bezier(.45,0,.2,1) both}.opening-veil{animation:quiet-veil 4.1s 1.95s both}.opening-daylight{position:absolute;inset:-10%;z-index:3;pointer-events:none;background:radial-gradient(ellipse at 52% 44%,#fffaf0 0%,#fffaf0ef 20%,#fffaf09a 50%,#fffaf000 75%);opacity:0;animation:daylight-pass 2.2s 3.8s both}.opening-active .hero-copy{animation:opening-hero-arrive 1.3s 4.7s both}.opening-active header{animation:opening-caption-in .8s 5.3s both}.opening-active .hero-word{animation:opening-caption-in 1.2s 5s both}
@keyframes quiet-window-journey{0%{opacity:0;transform:translate(-50%,-50%) scale(.97)}12%{opacity:1;transform:translate(-50%,-50%) scale(1)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.65)}100%{opacity:0;transform:translate(-50%,-50%) scale(5)}}@keyframes quiet-left{0%,8%{transform:rotateY(0)}60%{transform:rotateY(-91deg)}100%{transform:rotateY(-108deg)}}@keyframes quiet-right{0%,8%{transform:rotateY(0)}60%{transform:rotateY(91deg)}100%{transform:rotateY(108deg)}}@keyframes quiet-veil{0%,15%{opacity:1}64%{opacity:.4}100%{opacity:0}}@keyframes daylight-pass{0%{opacity:0;transform:scale(.75)}36%{opacity:.92}62%{opacity:.75}100%{opacity:0;transform:scale(1.3)}}@media(max-width:800px){.opening-leaf{border-width:4px}}

/* The A dot seeds a fine line, which becomes the arched window. */
.opening-mark{animation:opening-mark-away .7s 2.1s both}.opening-ball{animation:opening-ball-bounce 1.65s linear both,seed-glow .7s 1.65s both}.opening-thread{position:absolute;inset:0;width:100%;height:100%;overflow:visible;z-index:4;pointer-events:none}.opening-thread path{fill:none;stroke:#d1b36e;stroke-width:1.2;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;animation:seed-thread 1.05s 1.9s both}.opening-spark{position:absolute;width:5px;height:5px;margin:-2.5px;border-radius:50%;background:#f7cf58;box-shadow:0 0 18px #f7cf5890;z-index:4;opacity:0;animation:seed-spark .85s 1.9s both}.opening-trace{position:absolute;inset:0;width:100%;height:100%;z-index:3;overflow:visible;pointer-events:none;animation:trace-fade .65s 2.9s both}.opening-trace path{fill:none;stroke:#bda474;stroke-width:1.4;stroke-linecap:round;vector-effect:non-scaling-stroke;stroke-dasharray:1;stroke-dashoffset:1}.trace-arch{animation:trace-draw .9s 2.15s cubic-bezier(.3,.5,.2,1) both}.trace-mullion{stroke-width:.8!important;opacity:.6;animation:trace-draw .45s 2.65s both}.opening-window{animation:seed-window-journey 4.6s 2.05s both}.opening-leaf{opacity:0;animation-duration:3.5s!important;animation-delay:2.9s!important}.opening-leaf.left{animation-name:seed-left!important}.opening-leaf.right{animation-name:seed-right!important}.opening-pane{animation:opening-caption-in .65s 2.8s both}.opening-veil{animation:quiet-veil 4.1s 2.45s both}.opening-daylight{animation:daylight-pass 2s 4.3s both}.opening-active .hero-copy{animation:opening-hero-arrive 1.2s 5.2s both}.opening-active header{animation:opening-caption-in .7s 5.7s both}.opening-active .hero-word{animation:opening-caption-in 1s 5.4s both}
@keyframes seed-glow{0%{box-shadow:0 0 0 0 #f7cf5800}45%{box-shadow:0 0 15px 5px #f7cf5840}100%{box-shadow:0 0 22px 8px #f7cf5800}}@keyframes seed-thread{0%{stroke-dashoffset:1;opacity:1}62%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:0;opacity:0}}@keyframes seed-spark{0%{opacity:0;transform:translate(0,0)}10%{opacity:1}85%{opacity:1;transform:translate(var(--seed-dx),var(--seed-dy))}100%{opacity:0;transform:translate(var(--seed-dx),var(--seed-dy))}}@keyframes trace-draw{to{stroke-dashoffset:0}}@keyframes trace-fade{to{opacity:0}}@keyframes seed-window-journey{0%{opacity:1;transform:translate(-50%,-50%) scale(1)}26%{opacity:1;transform:translate(-50%,-50%) scale(1)}62%{opacity:1;transform:translate(-50%,-50%) scale(1.8)}100%{opacity:0;transform:translate(-50%,-50%) scale(5)}}@keyframes seed-left{0%{opacity:0;transform:rotateY(0)}16%{opacity:1;transform:rotateY(0)}68%{opacity:1;transform:rotateY(-91deg)}100%{opacity:1;transform:rotateY(-108deg)}}@keyframes seed-right{0%{opacity:0;transform:rotateY(0)}16%{opacity:1;transform:rotateY(0)}68%{opacity:1;transform:rotateY(91deg)}100%{opacity:1;transform:rotateY(108deg)}}

/* One timeline controls every handoff; the light follows its exact SVG curve. */
.opening-mark,.opening-window,.opening-leaf,.opening-leaf.left,.opening-leaf.right,.opening-pane,.opening-veil,.opening-daylight,.opening-thread path,.opening-spark,.opening-trace,.opening-trace path{animation:none!important;transition:none!important}.opening-ball{animation:opening-ball-bounce 1.65s linear both}.opening-mark{opacity:1}.opening-window{opacity:1;transform:translate(-50%,-50%) scale(1)}.opening-trace{opacity:1}.opening-leaf{opacity:0;transform:rotateY(0);border-top-left-radius:var(--arch-radius,240px)}.opening-leaf.right{border-top-left-radius:0;border-top-right-radius:var(--arch-radius,240px)}.opening-pane{opacity:0}.opening-thread path{opacity:0}.opening-spark{opacity:0;animation:none!important}.opening-daylight{opacity:0}.opening-active header,.opening-active .hero-copy,.opening-active .hero-word{animation:none!important;opacity:0}.opening-active .hero-copy{translate:0 16px}

/* Readiness fixes: touch targets and anchored navigation. */
section[id]{scroll-margin-top:90px}.room-dot{min-height:44px;min-width:44px}.model-tools button{min-height:44px;min-width:44px}.choices button{min-height:44px}.opening-replay{min-height:44px}.room-close{min-height:44px}@media(max-width:800px){.model-tools{bottom:42px}.model-tools button{padding:0 9px}.room-dot{min-height:44px;font-size:10px}.nav .contact{min-height:44px;display:inline-flex;align-items:center}}

.admin-bar header{top:32px}.admin-bar .opening{top:32px}
.journal{padding:90px 7vw;background:var(--cream)}.journal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:32px}.journal-card{border-top:1px solid #cbd2d7;padding-top:20px}.journal-card img{width:100%;height:220px;object-fit:cover;margin-bottom:15px}.journal-card time{font-size:12px;color:#627183}.journal-card h3{font-size:20px;margin-top:10px}.journal-card p{font-size:13px;color:#627183;margin-top:12px}.article-shell{max-width:940px;margin:auto;padding:150px 24px 90px;min-height:70vh}.article-shell h1{color:var(--ink);font-size:clamp(30px,4vw,48px);margin:10px 0 28px}.article-content{overflow-wrap:anywhere}.article-content p,.article-content ul,.article-content ol,.article-content figure{margin:24px 0}.article-content h2,.article-content h3{margin:40px 0 16px;line-height:1.5}.article-content img{max-width:100%;height:auto}.article-content a{text-decoration:underline;color:var(--blue)}.article-content blockquote{border-left:3px solid var(--yellow);padding-left:24px}.article-meta{font-size:12px;color:#627183}.article-cover{width:100%;max-height:500px;object-fit:cover;margin-bottom:30px}.pagination{margin-top:35px}.pagination a,.pagination span{padding:8px 12px}.article-shell .journal-grid{grid-template-columns:repeat(2,1fr)}.wp-block-table{overflow:auto}.wp-block-table table{border-collapse:collapse;width:100%}.wp-block-table td,.wp-block-table th{border:1px solid #cbd2d7;padding:12px}.site-footer-links{display:flex;gap:24px;font-size:12px}
@media(max-width:782px){.admin-bar header{top:46px}.admin-bar .opening{top:46px}.journal-grid,.article-shell .journal-grid{grid-template-columns:1fr}.journal{padding:65px 7vw}.site-footer-links{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
