/*
Theme Name: OLImmobilier
Theme URI: https://www.olimmobilier.ch/
Author: Repair Hub
Description: Thème vitrine d’OLImmobilier SA (Chézard-Saint-Martin, Val-de-Ruz) : annonces, agent, contact et scènes 3D légères (emblème en relief, volume qui se construit au défilement). Three.js embarqué, aucune ressource externe. Repli statique sur mobile et avec « réduire les animations ».
Version: 1.1.0
Requires at least: 6.3
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: olimmobilier
Tags: one-column, custom-colors, accessibility-ready, translation-ready
*/

:root{--ink:#282b28;--red:#b44432;--muted:#677069;--paper:#f4f1eb;--line:#d5d8d0;--pad:clamp(24px,5.5vw,94px)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:#fff;font:16px/1.65 Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer}[hidden]{display:none!important}:focus-visible{outline:3px solid #ad663e;outline-offset:5px}.skip{position:absolute;left:20px;top:-100px;z-index:40;background:white;padding:12px}.skip:focus{top:15px}.site-header{padding:24px var(--pad);display:flex;align-items:center;justify-content:space-between;gap:25px;background:white;border-bottom:1px solid var(--line)}.logo img{width:220px;height:auto}nav{display:flex;gap:30px;align-items:center;font-size:14px}nav a[aria-current]{border-bottom:2px solid var(--red)}.menu{display:none}.button{display:inline-flex;align-items:center;justify-content:center;gap:20px;background:var(--red);color:white;padding:16px 25px;border:1px solid var(--red);font-size:14px;font-weight:500;min-height:48px;transition:background .2s}.button:hover{background:#953728}.button.compact{padding:12px 18px}.underlink{display:inline-block;border-bottom:1px solid currentColor;padding-bottom:4px;font-size:14px;align-self:start}.eyebrow{font-size:12px;letter-spacing:.14em;color:var(--muted);margin:0 0 25px;font-weight:500}h1,h2,h3{font-family:Georgia,'Times New Roman',serif;font-weight:400;line-height:1.08;letter-spacing:-.045em;margin:0}h1{font-size:clamp(50px,5.5vw,87px)}h2{font-size:clamp(38px,4.2vw,65px)}h3{font-size:32px}em{font-weight:400;color:var(--red)}p{max-width:65ch}.lead{font-size:18px;line-height:1.7;color:var(--muted)}.hero{display:grid;grid-template-columns:44% 56%;min-height:640px;background:var(--paper)}.hero-copy{padding:65px 45px 65px var(--pad);display:flex;flex-direction:column;align-items:start;justify-content:center}.hero-copy h1{margin-bottom:20px}.hero-copy .lead{max-width:33ch;margin:0 0 30px}.hero-copy .underlink{margin-top:20px}.hero-image{position:relative;min-height:640px;overflow:hidden}.hero-image>img{width:100%;height:100%;position:absolute;object-fit:cover;object-position:50% 70%}.hero-property{position:absolute;bottom:50px;left:40px;right:40px;background:#ffffffed;padding:25px 28px;backdrop-filter:blur(8px)}.hero-property>span{font-size:11px;letter-spacing:.1em;color:var(--muted)}.hero-property strong{font:35px/1.2 Georgia,serif;display:block;margin-top:9px;font-weight:400}.hero-property p{font-size:14px;margin:8px 0 0;display:flex;justify-content:space-between;gap:15px}.hero-property b{font-size:22px;font-weight:400}.hero-image>small{position:absolute;bottom:15px;right:40px;color:white;font-size:11px;text-shadow:0 1px 4px #000}.section{padding:85px var(--pad)}.section-head{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:42px}.section-head .eyebrow{margin-bottom:15px}.section-head>span{font-size:13px;color:var(--muted)}.properties{display:grid;grid-template-columns:1fr 1fr;gap:35px}.property .photo{position:relative;overflow:hidden;height:350px}.photo img{height:100%;width:100%;object-fit:cover;object-position:50% 68%;transition:transform .6s}.property a:hover .photo img{transform:scale(1.035)}.badge{position:absolute;top:18px;left:18px;background:white;padding:6px 12px;font-size:12px}.photo-arrow{position:absolute;bottom:18px;right:18px;color:white;background:#282b28bd;width:40px;height:40px;text-align:center;padding-top:4px;font-size:22px}.property-info{padding:25px 0}.property-info .eyebrow{margin-bottom:12px;font-size:11px}.property-info>p{font-size:14px;color:var(--muted);margin:14px 0 23px}.property-bottom{display:flex;justify-content:space-between;align-items:center;gap:15px;padding-top:16px;border-top:1px solid var(--line);font-size:13px}.property-bottom strong{font-weight:500}.approach{display:grid;grid-template-columns:1.25fr .75fr;gap:100px;background:var(--paper);padding:80px var(--pad);align-items:center}.approach .lead{margin:26px 0}.portrait{position:relative;max-width:380px;justify-self:end}.portrait img{width:100%;height:430px;object-fit:cover}.portrait span{display:block;padding:20px 0 0;letter-spacing:.1em;font-size:12px}.portrait small{font-size:13px;letter-spacing:0;color:var(--muted)}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:45px}.steps>div{border-top:1px solid var(--line);padding-top:22px}.steps span{color:var(--red);font-size:12px;display:block;margin-bottom:25px}.steps p{color:var(--muted)}.cta{background:var(--ink);color:white;padding:70px var(--pad);position:relative}.cta .eyebrow{color:#c7cfc5}.cta h2{font-size:clamp(42px,5vw,70px)}.cta .button{position:absolute;right:var(--pad);bottom:85px}.site-footer{padding:60px var(--pad) 28px;background:var(--paper)}.footer-head{display:flex;align-items:center;justify-content:space-between;gap:30px;margin-bottom:45px}.footer-head img{width:220px;mix-blend-mode:multiply}.footer-head p{font:25px/1.3 Georgia,serif;margin:0}.footer-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:35px;margin-bottom:40px}.footer-grid b{font-size:11px;letter-spacing:.13em;font-weight:500;color:var(--muted)}.footer-grid p{font-size:14px}.footer-grid a:hover{text-decoration:underline}.footer-bottom{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding-top:20px;font-size:12px;color:var(--muted)}.page-head{padding:70px var(--pad) 50px;background:var(--paper)}.page-head h1{max-width:1000px}.listing{padding-top:38px}.filters{display:flex;align-items:center;gap:20px;border-bottom:1px solid var(--line);padding-bottom:24px;margin-bottom:35px}.filters button{border:0;background:none;color:var(--muted);padding:9px 0;font-size:15px;border-bottom:2px solid transparent}.filters button[aria-pressed=true]{color:var(--ink);border-color:var(--red)}.filters>span{margin-left:auto;color:var(--muted);font-size:13px}.detail-top{display:grid;grid-template-columns:1fr 1fr;background:var(--paper)}.detail-top>div{padding:65px 45px 65px var(--pad)}.detail-top h1{font-size:clamp(46px,4.7vw,70px)}.detail-top>img{width:100%;height:600px;object-fit:cover;object-position:50% 65%}.detail-price{font-size:24px;margin:20px 0}.detail-price small{font-size:14px;color:var(--muted)}.detail-content{display:grid;grid-template-columns:1fr 1fr;gap:100px}.detail-content p{color:var(--muted)}dl{margin:0}dl>div{padding:18px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:25px;font-size:15px}dt{color:var(--muted)}dd{margin:0;text-align:right}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.gallery-open{padding:0;background:none;border:0;position:relative}.gallery-open img{width:100%;height:300px;object-fit:cover}.gallery-open span{position:absolute;bottom:15px;right:15px;background:#fffffff0;padding:5px 12px;font-size:12px}dialog{width:95vw;max-width:1200px;height:88vh;border:0;background:#252a25;color:white;padding:35px 65px}dialog::backdrop{background:#000c}#gallery-image{height:calc(100% - 55px);width:100%;object-fit:contain}.close{position:absolute;top:5px;right:12px;background:none;color:white;border:0;font-size:34px}#gallery-prev,#gallery-next{position:absolute;top:46%;border:1px solid #fff5;background:#0005;color:white;font-size:24px;padding:10px;left:10px}#gallery-next{left:auto;right:10px}#gallery-caption{font-size:14px;text-align:center;max-width:none}.agent{display:grid;grid-template-columns:1.25fr .75fr;gap:80px;padding:70px var(--pad);background:var(--paper);align-items:center}.agent>img{width:100%;height:570px;object-fit:cover}.agent .button{margin:24px 0 16px}.agent .underlink{display:block;width:fit-content}.contact{display:grid;grid-template-columns:.8fr 1.2fr;gap:90px}.contact-big{font-size:25px;display:block;margin:30px 0 10px}.contact .underlink{margin-bottom:25px}.contact p{color:var(--muted)}form{display:grid;gap:20px}label{display:grid;gap:9px;font-size:14px}input,select,textarea{border:1px solid var(--line);background:#fafbf8;color:var(--ink);padding:13px;max-width:100%;width:100%;min-height:48px;border-radius:0}textarea{resize:vertical}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}.consent{display:flex;align-items:start;gap:10px;font-size:12px;color:var(--muted)}.consent input{width:18px;height:18px;min-height:0;flex-shrink:0;margin:2px 0}.image-note{font-size:12px!important;color:var(--muted)}.legal{max-width:1000px}.legal h2{font-size:34px;margin:30px 0 15px}#form-result{padding:18px;background:var(--paper);border-left:2px solid var(--red)}
@media(max-width:1000px){nav{gap:18px;font-size:13px}.logo img{width:180px}.hero-copy{padding-right:28px}.hero h1{font-size:60px}.approach,.detail-content,.contact,.agent{gap:45px}.hero-property{left:25px;right:25px}.property .photo{height:280px}.gallery-open img{height:230px}}
@media(max-width:760px){.site-header{padding:20px 24px;position:relative}.logo img{width:185px}.menu{display:flex;align-items:center;gap:10px;background:white;border:1px solid var(--line);padding:8px 12px;font-size:14px}nav{display:none;position:absolute;left:0;right:0;top:100%;background:white;z-index:20;padding:24px;flex-direction:column;align-items:stretch;border-bottom:1px solid var(--line)}.site-header.open nav{display:flex}.hero,.approach,.detail-top,.detail-content,.agent,.contact{grid-template-columns:1fr}.hero-copy{padding:45px 24px}.hero h1{font-size:62px}.hero-copy .lead{font-size:17px}.hero-image{min-height:440px}.hero-property{bottom:40px;left:24px;right:24px;padding:20px}.hero-property strong{font-size:30px}.hero-property p{font-size:12px}.section{padding:55px 24px}.section-head{display:block;margin-bottom:28px}.section-head .underlink{margin-top:20px}.properties,.steps,.gallery{grid-template-columns:1fr;gap:25px}.property .photo{height:320px}.property-info h3{font-size:31px}.approach,.agent{padding:55px 24px;gap:35px}.portrait{justify-self:start;max-width:none;width:100%}.portrait img{height:430px;object-position:50% 35%}.steps{gap:30px}.cta{padding:50px 24px}.cta .button{position:static;margin-top:25px}.footer-head,.footer-bottom{flex-direction:column;align-items:start}.footer-grid{grid-template-columns:1fr;gap:10px}.site-footer{padding:45px 24px 70px}.page-head{padding:48px 24px 30px}.page-head h1{font-size:49px}.filters{gap:15px;flex-wrap:wrap}.filters button{font-size:14px}.filters span{width:100%;margin-left:0}.detail-top>div{padding:45px 24px}.detail-top>img{height:390px}.detail-content{gap:30px}.agent>img{height:450px;object-position:center 30%}.agent h1{font-size:48px}.gallery-open img{height:300px}.form-row{grid-template-columns:1fr}.contact{gap:35px}dialog{padding:40px 40px 15px}.property-bottom{font-size:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Portrait officiel détouré, superposé à un fond arrondi. */
.portrait-cutout{width:100%;max-width:430px}.portrait-stage{position:relative;isolation:isolate;width:100%;height:510px;overflow:hidden;border-radius:0 0 48% 48%}.portrait-stage::before{content:"";position:absolute;inset:22% 0 0;background:#dcd2c4;border-radius:50%;z-index:-1}.portrait-stage img{display:block;width:100%;height:100%;object-fit:contain;object-position:center bottom;position:relative;z-index:1}.portrait-cutout>span{text-align:center;padding-top:24px}.portrait-large{height:590px;max-width:460px;justify-self:end}.agent{grid-template-columns:1.15fr .85fr;gap:65px}.agent>div:first-child{max-width:660px}@media(max-width:760px){.portrait-cutout{max-width:390px;justify-self:center}.portrait-stage{height:460px}.portrait-large{height:480px;max-width:380px;justify-self:center}.agent{grid-template-columns:1fr;gap:36px}.approach{overflow:hidden}}@media(max-width:420px){.portrait-stage{height:390px}.portrait-large{height:420px}}

/* ===== Version thème 1.0 : en-tête, 3D, parcours au défilement ===== */
.site-header{position:sticky;top:0;z-index:30;transition:padding .25s,box-shadow .25s}
.site-header.is-scrolled{padding-top:14px;padding-bottom:14px;box-shadow:0 6px 24px #282b2812}
.admin-bar .site-header{top:32px}
@media(max-width:782px){.admin-bar .site-header{top:0}}
.hero-property{transition:transform .35s ease,box-shadow .35s ease}
.hero-property:hover{transform:translateY(-4px);box-shadow:0 18px 40px #0002}

/* Apparitions douces (désactivées avec « réduire les animations ») */
.can-reveal .reveal{opacity:0;transform:translateY(22px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1)}
.can-reveal .reveal.is-in{opacity:1;transform:none}
.can-reveal .properties .reveal:nth-child(2){transition-delay:.12s}

/* Scènes 3D : le repli statique reste visible tant que WebGL n'a pas rendu */
[data-scene]{position:relative}
.scene-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;opacity:0;transition:opacity .9s ease}
[data-scene].is-live .scene-canvas{opacity:1}
[data-scene].is-live .scene-fallback{opacity:0;transition:opacity .6s ease}
.scene-fallback{width:100%;height:100%;object-fit:contain}

/* Parcours */
.story{background:var(--paper);border-top:1px solid var(--line)}
.story-sticky{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(30px,4vw,70px);align-items:center;padding:85px var(--pad)}
.story-copy h2{margin-bottom:30px;font-size:clamp(36px,3.3vw,54px)}
.story-steps{list-style:none;margin:0;padding:0;display:grid;gap:18px}
.story-steps li{border-top:1px solid var(--line);padding-top:18px}
.story-steps span{color:var(--red);font-size:12px;display:block;margin-bottom:8px;letter-spacing:.1em}
.story-steps h3{font-size:27px}
.story-steps p{color:var(--muted);margin:6px 0 0;font-size:15px}
.story-progress{display:none}
.story-visual{margin:0;position:relative}
.story-canvas{aspect-ratio:6/5;width:100%}
.story-visual figcaption{font-size:11px;letter-spacing:.06em;color:var(--muted);margin-top:10px;text-align:right}

.olim-3d .story{height:330vh}
.olim-3d .story-sticky{position:sticky;top:0;height:100vh;padding-top:96px;padding-bottom:40px}
.olim-3d .story-canvas{aspect-ratio:auto;height:calc(100vh - 190px);min-height:380px}
.olim-3d .story-steps li{opacity:.32;transition:opacity .45s ease,transform .45s ease;transform:translateX(0)}
.olim-3d .story-steps li.is-active{opacity:1;transform:translateX(8px)}
.olim-3d .story-steps li.is-active span::before{content:"";display:inline-block;width:22px;height:1px;background:var(--red);vertical-align:middle;margin-right:10px}
.olim-3d .story-progress{display:block;height:2px;background:var(--line);margin-top:34px;max-width:380px;overflow:hidden}
.olim-3d .story-progress i{display:block;height:100%;background:var(--red);transform-origin:0 50%;transform:scaleX(0)}

/* Appel à l'action avec emblème en relief */
.cta{display:grid;grid-template-columns:1fr minmax(260px,.8fr);align-items:center;gap:40px;overflow:hidden}
.cta .button{position:static;margin-top:34px}
.cta-mark{height:clamp(220px,26vw,360px);width:100%}
.cta-mark::after{content:"";position:absolute;left:12%;right:12%;bottom:4%;height:16%;background:radial-gradient(closest-side,#0000004d,#0000);z-index:0;pointer-events:none}
.cta-mark .scene-fallback{position:relative;z-index:1;padding:8% 10%}
.cta-mark .scene-canvas{z-index:2}

@media(max-width:1000px){.story-steps h3{font-size:26px}}
@media(max-width:760px){
	.story-sticky{grid-template-columns:1fr;padding:55px 24px;gap:30px}
	.story-visual{order:-1}
	.cta{grid-template-columns:1fr;gap:10px}
	.cta-mark{height:200px;max-width:340px}
	.cta-mark .scene-fallback{padding:6% 4%}
	.site-header{position:sticky}
}
@media(prefers-reduced-motion:reduce){.can-reveal .reveal{opacity:1;transform:none}.hero-property:hover{transform:none}}

/* Contenu éditable WordPress */
.entry-content img{height:auto}
.entry-content a{text-decoration:underline}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}

/* Visionneuse 3D de Grand Chézard */
.viewer{margin:0}
.viewer-canvas{aspect-ratio:16/9;width:100%;background:var(--paper);overflow:hidden}
.viewer-canvas .scene-fallback{object-fit:cover}
.viewer figcaption{font-size:12px;color:var(--muted);margin-top:12px;max-width:none}
.viewer-hint{display:none}
.olim-3d .viewer-hint{display:inline}
.viewer-controls{display:none;gap:10px;flex-wrap:wrap}
.olim-3d .viewer-controls{display:flex}
.viewer-controls button{border:1px solid var(--line);background:#fff;color:var(--ink);padding:10px 16px;font-size:13px;min-height:44px;transition:background .2s,color .2s,border-color .2s}
.viewer-controls button[aria-pressed=true]{background:var(--ink);color:#fff;border-color:var(--ink)}
.story-visual figcaption a{border-bottom:1px solid currentColor}
@media(max-width:760px){.viewer-canvas{aspect-ratio:4/3}}

/* Icônes vectorielles (pas de caractères qui deviennent des emojis sur mobile) */
.ico{display:inline-block;width:.95em;height:.95em;vertical-align:-.1em;background:currentColor;flex-shrink:0;-webkit-mask:var(--i) center/contain no-repeat;mask:var(--i) center/contain no-repeat;font-style:normal}
.ico-arrow{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='square'%3E%3Cpath d='M7 17 17 7M8 7h9v9'/%3E%3C/svg%3E")}
.ico-next{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='square'%3E%3Cpath d='M4 12h15M13 6l6 6-6 6'/%3E%3C/svg%3E")}
.ico-prev{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='square'%3E%3Cpath d='M20 12H5M11 6l-6 6 6 6'/%3E%3C/svg%3E")}
.ico-close{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8'%3E%3Cpath d='M5 5l14 14M19 5 5 19'/%3E%3C/svg%3E")}
.ico-menu{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8'%3E%3Cpath d='M3 6h18M3 12h18M3 18h18'/%3E%3C/svg%3E")}
.photo-arrow{display:flex;align-items:center;justify-content:center;padding:0}
.photo-arrow .ico{width:20px;height:20px}
.hero-property b .ico,.hero-property .ico{width:22px;height:22px}

/* Parcours 3D sur mobile : la scène en haut, l'étape active dessous */
@media(max-width:760px){
	.olim-3d .story{height:320vh}
	.olim-3d .story-sticky{height:100vh;height:100svh;padding:78px 20px 18px;grid-template-columns:1fr;gap:12px;align-content:start}
	.olim-3d .story-visual{order:-1}
	.olim-3d .story-canvas{height:50vh;height:50svh;min-height:260px}
	.olim-3d .story-visual figcaption{font-size:10px;margin-top:6px;text-align:left}
	.olim-3d .story-copy .eyebrow{margin-bottom:8px;font-size:11px}
	.olim-3d .story-copy h2{font-size:28px;margin-bottom:12px}
	.olim-3d .story-steps{display:block}
	.olim-3d .story-steps li{display:none;border:0;padding:0}
	.olim-3d .story-steps li.is-active{display:block;transform:none;animation:olim-step .45s ease}
	.olim-3d .story-steps h3{font-size:24px}
	.olim-3d .story-steps p{font-size:14px}
	.olim-3d .story-progress{margin-top:14px;max-width:none}
	.viewer-controls button{flex:1 1 auto}
	.olim-3d .viewer-section .section-head{margin-bottom:20px}
	.olim-3d .viewer-controls{margin-top:16px}
}
@keyframes olim-step{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* Pas de bleu par défaut (iOS / Android) sur les boutons, liens et numéros détectés */
html{-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%}
button{color:inherit;-webkit-appearance:none;appearance:none;border-radius:0}
.menu{color:var(--ink)}
a,a:visited,a:active{color:inherit}
.button,.button:visited,.button:active{color:#fff}
a[x-apple-data-detectors],a[href^="tel"],a[href^="mailto"]{color:inherit!important;text-decoration:none!important;font:inherit!important}
.underlink[href^="mailto"]{text-decoration:none!important;border-bottom:1px solid currentColor}

/* Animation du logo à l'ouverture */
.olim-intro{position:fixed;inset:0;z-index:100000;background:var(--paper);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:26px;cursor:pointer;transition:transform .65s cubic-bezier(.7,0,.2,1),opacity .4s ease .25s}
.olim-intro.is-out{transform:translateY(-100%);opacity:.6}
.olim-intro-seen .olim-intro{display:none}
.olim-intro-on body{overflow:hidden}
.olim-intro-logo{position:relative;width:min(78vw,440px);aspect-ratio:1373/304}
.olim-intro-word{position:absolute;inset:0;width:100%;height:100%;mix-blend-mode:multiply;clip-path:inset(0 100% 0 35.6%);animation:olim-word .7s cubic-bezier(.2,.7,.2,1) 1.15s forwards}
.olim-intro-mark{position:absolute;left:0;top:0;width:35.7%;height:100%;overflow:visible}
.olim-intro-mark *{transform-box:fill-box}
.i-house{transform-origin:50% 100%;transform:scaleY(0);animation:olim-house .55s cubic-bezier(.3,1.5,.5,1) .1s forwards}
.i-ring{transform-origin:50% 50%;transform:scale(.2) rotate(-90deg);opacity:0;animation:olim-ring .55s cubic-bezier(.3,1.4,.5,1) .45s forwards}
.i-l{transform-origin:50% 100%;transform:scaleY(0);animation:olim-bar .4s cubic-bezier(.3,1.4,.5,1) .7s forwards}
.i-i{transform-origin:50% 100%;transform:scaleY(0);animation:olim-bar .4s cubic-bezier(.3,1.4,.5,1) .82s forwards}
.i-dot{transform:translateY(-260%);opacity:0;animation:olim-dot .6s cubic-bezier(.3,0,.4,1) .95s forwards}
.olim-intro-line{display:block;width:min(78vw,440px);height:2px;background:var(--line);position:relative;overflow:hidden}
.olim-intro-line::after{content:"";position:absolute;inset:0;background:var(--red);transform:scaleX(0);transform-origin:0 50%;animation:olim-line 2.1s cubic-bezier(.4,0,.2,1) forwards}
@keyframes olim-house{to{transform:scaleY(1)}}
@keyframes olim-ring{to{transform:none;opacity:1}}
@keyframes olim-bar{to{transform:scaleY(1)}}
@keyframes olim-dot{0%{transform:translateY(-260%);opacity:0}45%{opacity:1}70%{transform:translateY(0)}84%{transform:translateY(-22%)}100%{transform:translateY(0);opacity:1}}
@keyframes olim-word{to{clip-path:inset(0 0 0 35.6%)}}
@keyframes olim-line{to{transform:scaleX(1)}}
@media(prefers-reduced-motion:reduce){.olim-intro{display:none}}
