:root{
  --gold:#d6a13b;
  --gold-soft:#f0c870;
  --cream:#f4f0e8;
  --ink:#10100e;
  --panel-w:34.8vw;
  --header-h:82px;
  --dark-w:65.2vw;
  --hero-circle-left:calc(32.3vw + 25px);
  --hero-circle-top:18.1vh;
  --hero-circle-size:min(27.45vw,410px);
  --hero-text-left:4.2vw;
  --hero-text-width:min(28.2vw,420px);
}

*{box-sizing:border-box}
html,body{margin:0;width:100%;height:100%;overflow:hidden}
body{font-family:'Inter',Arial,sans-serif;background:#000;color:#fff}
button,input{font:inherit}
button{cursor:pointer}
.hidden{display:none!important}
.hp{position:absolute;left:-9999px;opacity:0;pointer-events:none}
.app{position:relative;width:100vw;height:100vh;overflow:hidden;background:#000}
.bg-layer{position:absolute;left:0;top:0;bottom:0;width:var(--dark-w);pointer-events:none;background-size:cover;background-position:center;opacity:0;transform:scale(1.006);transition:opacity .72s cubic-bezier(.22,.61,.36,1),transform 1.25s cubic-bezier(.22,.61,.36,1);will-change:opacity,transform}
.bg-layer.is-active{opacity:1;transform:scale(1)}
/* HEADER */
.topbar{position:absolute;z-index:30;left:3.7vw;right:3.2vw;top:14px;height:68px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;column-gap:26px}
.brand-wrap{display:flex;align-items:center;gap:14px;min-width:0}
.brand{width:126px;height:auto;display:block;filter:drop-shadow(0 5px 12px rgba(0,0,0,.18))}
.brand-divider{width:1px;height:50px;background:rgba(240,200,112,.42)}
.brand-tagline{font-family:'Cormorant Garamond',Georgia,serif;font-size:19px;line-height:1.02;color:var(--gold-soft);white-space:nowrap;text-align:center}
.main-nav{position:absolute;left:0;display:flex;justify-content:center;align-items:center;gap:30px;padding:0 22px;max-width:none;justify-self:center;transition:left .22s ease}
.nav-item{position:relative;color:#f6efe3;text-decoration:none;font-size:12px;letter-spacing:.16em;font-weight:600;padding:6px 0;text-transform:uppercase;white-space:nowrap}
.nav-item.is-active,.nav-item:hover{color:#f2c96f}
.nav-item::after{content:'';position:absolute;left:0;right:0;bottom:-8px;height:1px;background:transparent}
.nav-item.is-active::after,.nav-item:hover::after{background:linear-gradient(90deg,transparent,var(--gold),transparent)}
.nav-item.is-active::before,.nav-item:hover::before{content:'';position:absolute;width:7px;height:7px;border-radius:50%;background:var(--gold);left:50%;bottom:-11px;transform:translateX(-50%);box-shadow:0 0 0 4px rgba(214,161,59,.14)}
.top-actions{display:flex;align-items:center;gap:12px;justify-self:end}
.fullscreen-btn,.menu-btn{background:none;border:0;color:#f4eee4;display:flex;align-items:center;gap:8px;text-transform:uppercase;letter-spacing:.13em;font-size:10px;font-weight:700;padding:0}.menu-btn{display:none}
.icon-box{display:grid;place-items:center;width:29px;height:29px;border:1px solid rgba(255,255,255,.34);font-size:14px}
.v-divider{width:1px;height:40px;background:rgba(255,255,255,.34)}
.hamburger{display:grid;gap:5px}.hamburger i{display:block;width:31px;height:2px;background:#fff}
/* LEFT TEXT */
.layout{position:absolute;inset:0;z-index:4}
.hero-left{position:absolute;left:var(--hero-text-left);top:calc(var(--hero-circle-top) + (var(--hero-circle-size) / 2));transform:translateY(-50%);width:var(--hero-text-width);z-index:9;display:flex;flex-direction:column;align-items:center}
.location-row{display:flex;align-items:center;gap:17px;margin-bottom:14px;width:100%}
#leftLabel{font-size:13px;letter-spacing:.22em;font-weight:700;text-transform:uppercase;color:#f1eadf;white-space:nowrap}
.location-line{height:1px;width:110px;background:rgba(255,255,255,.44)}
.hero-title{font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(50px,4.15vw,66px);line-height:.88;margin:0 0 16px;width:100%;max-width:100%;font-weight:700;letter-spacing:-.045em;color:#fff}
.hero-title .gold{color:var(--gold-soft)}
.hero-lead{font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(21px,1.68vw,25px);line-height:1.22;width:100%;max-width:100%;margin:0 0 22px;color:#f3ece2;text-wrap:pretty}
.explore-btn{display:flex;align-items:center;gap:13px;align-self:flex-start;background:none;border:0;color:#f4ecd8;text-transform:uppercase;letter-spacing:.14em;font-weight:700;font-size:11px;padding:0;transition:transform .22s ease,opacity .22s ease}.explore-btn:hover{transform:translateX(2px)}
.play-circle{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;border:2px solid rgba(214,161,59,.95);box-shadow:0 0 0 5px rgba(214,161,59,.11);color:var(--gold-soft);font-size:15px}
/* CENTER IMAGE */
.hero-center{position:absolute;left:var(--hero-circle-left);top:var(--hero-circle-top);width:var(--hero-circle-size);height:var(--hero-circle-size);z-index:7}
.circle-shell{position:relative;width:100%;height:100%;border-radius:50%;overflow:visible;user-select:none;-webkit-user-select:none;--pan-x:0px;--pan-y:0px;--zoom-scale:1}
.circle-viewport{position:absolute;inset:0;border-radius:50%;overflow:hidden;clip-path:circle(49.9% at 50% 50%);cursor:grab;touch-action:none;background:#090909;box-shadow:0 22px 60px rgba(0,0,0,.45)}
.circle-viewport img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:2;transform:translate(var(--pan-x,0px),var(--pan-y,0px)) scale(var(--zoom-scale,1));transform-origin:50% 50%;transition:transform .12s ease-out,filter .32s ease;will-change:transform;pointer-events:none;-webkit-user-drag:none}
.ring{position:absolute;border-radius:50%;border:2px solid rgba(214,161,59,.90);z-index:3;pointer-events:none}
.ring-1{inset:-8px}.ring-2{display:none}
.circle-shell::before,.circle-shell::after{display:none}
.circle-shell.is-zooming .circle-viewport{cursor:grab}.circle-shell.is-dragging .circle-viewport{cursor:grabbing}.circle-shell.is-static .circle-viewport{cursor:default}.circle-shell.is-zooming .circle-viewport img{transform:translate(var(--pan-x,0px),var(--pan-y,0px)) scale(var(--zoom-scale,2.65))}
.iris-shutter{position:absolute;inset:0;border-radius:50%;overflow:hidden;pointer-events:none;z-index:4;opacity:0}
.iris-preview{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;opacity:0;z-index:0;clip-path:polygon(50% 25%,72% 37%,72% 63%,50% 75%,28% 63%,28% 37%);filter:brightness(1.02) saturate(1.02)}
.iris-state{position:absolute;inset:0;border-radius:50%;background-position:center;background-repeat:no-repeat;background-size:cover;opacity:0;z-index:1}
.iris-open{background-image:url('../img/aperture_open.svg')}
.iris-mid{background-image:url('../img/aperture_mid.svg')}
.iris-closed{background-image:url('../img/aperture_closed.svg')}
.circle-shell.is-transmuting .iris-shutter{opacity:1;animation:irisOverlayFade .84s linear both}
.circle-shell.is-transmuting #circleImage{filter:brightness(.08)}
.circle-shell.is-transmuting .iris-preview{animation:irisPreviewState .84s linear both}
.circle-shell.is-transmuting .iris-open{animation:irisOpenState .84s linear both}
.circle-shell.is-transmuting .iris-mid{animation:irisMidState .84s linear both}
.circle-shell.is-transmuting .iris-closed{animation:irisClosedState .84s linear both}
.circle-points{position:absolute;inset:-12px;z-index:8;pointer-events:none}
.circle-point{position:absolute;width:18px;height:18px;border-radius:50%;border:2px solid rgba(255,243,209,.95);background:rgba(214,161,59,.16);box-shadow:0 0 0 4px rgba(214,161,59,.09),0 0 18px rgba(214,161,59,.24);padding:0;pointer-events:auto;--tx:-50%;--ty:-50%;transform:translate(var(--tx),var(--ty)) scale(1);transition:transform .2s ease,box-shadow .2s ease,background .2s ease,border-color .2s ease}
.circle-point:hover,.circle-point:focus-visible{transform:translate(var(--tx),var(--ty)) scale(1.12);background:rgba(240,200,112,.40);box-shadow:0 0 0 6px rgba(214,161,59,.14),0 0 20px rgba(214,161,59,.30);outline:none;z-index:1}
.circle-point.is-active{background:var(--gold-soft);border-color:#fff8db;box-shadow:0 0 0 6px rgba(214,161,59,.18),0 0 22px rgba(214,161,59,.38)}
.circle-point:disabled{cursor:default;pointer-events:none}
.circle-point.point-1{top:44px;left:44px;--tx:-50%;--ty:-50%}
.circle-point.point-2{top:44px;right:44px;--tx:50%;--ty:-50%}
.circle-point.point-3{bottom:44px;right:44px;--tx:50%;--ty:50%}
.circle-point.point-4{bottom:44px;left:44px;--tx:-50%;--ty:50%}
.callouts{display:none}.circle-story{position:absolute;left:50%;top:calc(100% + clamp(12px,1.8vh,20px));transform:translateX(-50%);width:min(31vw,360px);min-height:0;padding:0;border:0;border-radius:0;background:none;box-shadow:none;z-index:9}.circle-story::before{display:none}.circle-story-head{position:relative;font-size:9px;letter-spacing:.24em;text-transform:uppercase;color:rgba(240,200,112,.90);font-weight:700;margin:0 0 4px;text-shadow:0 1px 10px rgba(0,0,0,.4)}.circle-story-text{position:relative;display:inline-block;font-family:"Cormorant Garamond",Georgia,serif;font-size:22px;line-height:1.02;color:#f7ead0;min-height:1.15em;padding-right:14px;text-shadow:0 2px 16px rgba(0,0,0,.55)}.circle-story-text::after{content:"";position:absolute;right:0;top:.08em;width:1px;height:.95em;background:rgba(240,200,112,.84);animation:altarCaret 1s steps(1,end) infinite}.detail-callouts{display:none!important;position:absolute;inset:0;z-index:2;pointer-events:none}.detail-callouts .callout{font-size:9px;letter-spacing:.13em;color:#fff3d1;text-shadow:0 1px 4px rgba(0,0,0,.45)}.detail-callouts .callout::before{width:10px;height:10px;box-shadow:0 0 0 3px rgba(214,161,59,.15)}.detail-callouts .callout .line{width:24px}.detail-callouts .callout:nth-child(1){left:74%!important;top:29%!important}.detail-callouts .callout:nth-child(2){left:77%!important;top:51%!important}.detail-callouts .callout:nth-child(3){left:76%!important;top:74%!important}
.callout{position:absolute;display:flex;align-items:center;gap:6px;color:#f5ecd8;font-size:10px;letter-spacing:.14em;font-weight:700;text-transform:uppercase;white-space:nowrap;transform:translate(-100%, -50%)}
.callout::before{content:'';order:2;width:11px;height:11px;border-radius:50%;border:2px solid var(--gold-soft);background:rgba(0,0,0,.38);box-shadow:0 0 0 3px rgba(214,161,59,.11)}
.callout .line{order:1;display:block;width:30px;height:1px;background:linear-gradient(90deg,rgba(214,161,59,.22),rgba(214,161,59,.9))}
.callout span:last-child{order:3}
/* ROUTE: independent lower strip of the dark sector */
.research-route-strip{position:absolute;z-index:18;left:0;bottom:0;width:var(--dark-w);height:124px;background:linear-gradient(180deg,rgba(0,0,0,.46),rgba(0,0,0,.92) 34%,#080808 100%);border-top:1px solid rgba(214,161,59,.20);overflow:hidden}
.route{position:absolute;left:0;right:0;bottom:0;height:110px;padding:8px 3.9vw 0;display:grid;grid-template-columns:repeat(8,1fr);align-items:start;gap:0;--track-left:0px;--track-width:0px;--progress-width:0px}
.route::before{content:'';position:absolute;left:var(--track-left);top:57px;width:var(--track-width);border-top:2px dotted rgba(214,161,59,.84);z-index:0}.route::after{content:'';position:absolute;left:var(--track-left);top:57px;width:var(--progress-width);border-top:2px solid rgba(240,200,112,.98);z-index:1;transition:width .38s cubic-bezier(.22,.61,.36,1)}
.route-item{appearance:none;-webkit-appearance:none;background:transparent!important;border:0!important;padding:0!important;margin:0!important;color:inherit;position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center;min-width:0;z-index:2;font:inherit}
.route-dot{width:18px;height:18px;border-radius:50%;border:2px solid #dfc99e;background:#0f0f0f;box-shadow:0 0 0 4px rgba(214,161,59,.09);position:relative;z-index:2}
.route-item.active .route-dot{background:var(--gold-soft);border-color:#fff2cb;box-shadow:0 0 0 6px rgba(214,161,59,.15)}
.route-num{font-size:9px;letter-spacing:.1em;color:#f3ead7;font-weight:700;margin-top:0}
.route-label{font-family:'Cormorant Garamond',Georgia,serif;color:#f5ecd8;font-size:15px;line-height:.92;white-space:normal;max-width:100px;text-transform:none;margin-top:1px}
.route-item.active .route-label{color:#f0c66e;font-weight:700}.route-item.is-viewed .route-dot{background:rgba(214,161,59,.92);border-color:rgba(255,242,203,.95);box-shadow:0 0 0 5px rgba(214,161,59,.12)}.route-item.is-viewed .route-label,.route-item.is-viewed .route-num{color:#f2d38d}
/* RIGHT PANEL */
.panel-right{position:absolute;z-index:10;right:0;top:var(--header-h);width:var(--panel-w);height:calc(100vh - var(--header-h));background:var(--cream);color:var(--ink);padding:24px 30px 18px;display:flex;flex-direction:column;overflow:hidden;box-shadow:-18px 0 40px rgba(0,0,0,.10)}
.panel-right::before{content:'';position:absolute;inset:0;pointer-events:none;background-image:repeating-linear-gradient(45deg,rgba(111,93,64,.075) 0,rgba(111,93,64,.075) 1px,transparent 1px,transparent 24px),repeating-linear-gradient(-45deg,rgba(111,93,64,.075) 0,rgba(111,93,64,.075) 1px,transparent 1px,transparent 24px);background-position:center;opacity:.82}
.panel-stepbar,.panel-content,.panel-actions{position:relative;z-index:1}
.panel-stepbar{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:13px;min-height:28px;margin-bottom:15px}
.panel-counter,.panel-slug{font-size:11px;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:#292720;white-space:nowrap}
.mini-progress{display:flex;align-items:center;gap:6px}.mini-progress .prog-line{flex:1;height:1px;background:#d7d1c5;position:relative}.mini-progress .prog-line::before{content:'';position:absolute;left:0;top:-1px;height:3px;width:var(--active-pct,0%);background:var(--gold)}.mini-progress .prog-dot{width:8px;height:8px;border-radius:50%;background:#d8d2c7;border:1px solid #c2baae}.mini-progress .prog-dot.active{background:var(--gold-soft);border-color:#a97820;box-shadow:0 0 0 3px rgba(214,161,59,.11)}
.panel-content{flex:1;min-height:0;display:flex;flex-direction:column;overflow:auto;padding-right:4px}
.panel-eyebrow{display:none}
.panel-title{font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(42px,3.4vw,54px);line-height:.88;letter-spacing:-.042em;margin:2px 0 10px;font-weight:700;max-width:96%}
.panel-body{font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(19px,1.48vw,23px);line-height:1.18;margin:0 0 12px;color:#38352f}
.panel-image-wrap{position:relative;border-radius:14px;overflow:hidden;box-shadow:0 8px 26px rgba(0,0,0,.08);width:100%;max-width:none;aspect-ratio:3/2;height:auto;min-height:0;margin:8px 0 6px;background:#ddd;flex:0 0 auto}
.panel-image-wrap img{width:100%;height:100%;object-fit:cover;object-position:center}
.panel-caption{font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:#716b5f;font-weight:600}
.panel-actions{display:flex;gap:12px;padding-top:12px;flex:0 0 auto}
.btn{height:52px;border-radius:999px;padding:0 20px;border:1px solid transparent;text-transform:uppercase;letter-spacing:.14em;font-weight:700;font-size:10px}
.btn-secondary{background:transparent;border-color:#c5bcad;color:#5a5348;flex:1}.btn-primary{background:#080808;color:#fff;flex:1}.btn.wide{width:100%;margin-top:4px}
/* FORM */
.subscribe-form{display:grid;gap:7px;overflow:auto;padding-right:4px}.subscribe-form label{display:grid;gap:4px;font-size:10px;color:#3e3a35;font-weight:700}.subscribe-form input[type=text],.subscribe-form input[type=email]{height:39px;border-radius:11px;border:1px solid #cec6b9;background:#fff;padding:0 11px;font-size:13px}.check{grid-template-columns:auto 1fr;align-items:flex-start;gap:7px!important;font-weight:500!important;line-height:1.27}.check input{margin-top:3px}.form-status{font-size:11px;font-weight:700;min-height:1.4em;color:#735411}.form-status.error{color:#933}.form-status.success{color:#2b6a3f}
/* 1366x768 exact tuning */
@media (max-width:1400px) and (max-height:820px){
  :root{--header-h:82px;--hero-circle-left:calc(32.4vw + 25px);--hero-circle-top:18.4vh;--hero-circle-size:min(26.45vw,360px);--hero-text-left:4.2vw;--hero-text-width:min(28vw,420px)}
  .topbar{top:12px;height:62px}
  .brand{width:118px}.brand-tagline{font-size:18px}.brand-divider{height:46px}
  .main-nav{gap:25px}.nav-item{font-size:11px}
  .hero-left{width:var(--hero-text-width)}
  .hero-title{font-size:52px;margin-bottom:14px}.hero-lead{font-size:20px;line-height:1.24;margin-bottom:19px}.play-circle{width:52px;height:52px}.explore-btn{font-size:10px}
  .hero-center{min-width:0;min-height:0;max-width:none;max-height:none}
  .callout{font-size:9px}.callout .line{width:25px}
  .panel-right{padding:22px 28px 15px}.panel-stepbar{margin-bottom:13px}.panel-title{font-size:42px}.panel-body{font-size:18px;line-height:1.16}.panel-image-wrap{width:100%;max-width:none}.panel-actions{padding-top:10px}.btn{height:48px}
  .research-route-strip{height:116px}.route{height:102px;padding-top:8px}.route::before,.route::after{top:54px}.route-label{font-size:14px}.route-num{font-size:8px}
}
@media (max-width:1100px){
  html,body{overflow:auto}.app{height:auto;min-height:100vh}.topbar{position:relative;left:auto;right:auto;top:auto;padding:16px;grid-template-columns:1fr auto;gap:12px}.layout{position:relative;display:block}.hero-left,.hero-center,.panel-right{position:relative;left:auto;right:auto;top:auto;width:auto;height:auto;margin:0;padding:20px;transform:none}.hero-center{width:min(75vw,520px);height:min(75vw,520px);margin:auto;padding-bottom:72px}.panel-right{height:auto}.research-route-strip{position:relative;left:auto;bottom:auto;width:100%;height:auto;background:none;border-top:0;overflow:visible}.route{position:relative;left:auto;right:auto;bottom:auto;width:100%;height:auto;padding:22px 16px;grid-template-columns:repeat(4,1fr);row-gap:24px;background:none;border-top:0}.route::before,.route::after{display:none}.main-nav{position:relative;left:auto;justify-content:flex-start;flex-wrap:wrap;grid-column:1 / -1;order:3;padding:0}.hero-title,.panel-title{font-size:52px}.hero-lead,.panel-body{font-size:20px;max-width:none}.panel-image-wrap{height:auto;aspect-ratio:3/2}.brand-tagline{font-size:18px}.menu-btn{display:flex}.circle-story{position:relative;left:auto;top:auto;transform:none;width:100%;margin-top:18px}}



.route-evo{display:flex;align-items:flex-end;justify-content:center;min-height:48px;margin-bottom:1px;pointer-events:none;position:relative;z-index:2;color:#f6f1e6;filter:drop-shadow(0 0 4px rgba(255,255,255,.14));}
.route-item.active .route-evo,.route-item.is-viewed .route-evo{color:#f0c66e;filter:drop-shadow(0 0 5px rgba(240,198,110,.20));}
.route-evo::after{content:'';position:absolute;inset:auto 6px 4px 6px;height:2px;background:linear-gradient(90deg,transparent 0%, rgba(244,236,222,.18) 18%, rgba(244,236,222,.18) 82%, transparent 100%);opacity:.45}
.route-item.active .route-evo::after,.route-item.is-viewed .route-evo::after{background:linear-gradient(90deg,transparent 0%, rgba(240,198,110,.3) 18%, rgba(240,198,110,.3) 82%, transparent 100%)}
.evo-sketch{position:relative;display:block;width:72px;height:44px}
.evo-img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transform-origin:center bottom;image-rendering:auto;pointer-events:none}
.evo-img-a{opacity:1;filter:brightness(0) saturate(100%) invert(96%) sepia(18%) saturate(280%) hue-rotate(336deg) brightness(101%) contrast(95%);animation:evoSketchA 1.5s steps(1,end) infinite}
.evo-img-b{opacity:.30;filter:brightness(0) saturate(100%) invert(96%) sepia(18%) saturate(280%) hue-rotate(336deg) brightness(101%) contrast(95%);animation:evoSketchB 1.5s steps(1,end) infinite}
.evo-img-c{opacity:.18;filter:brightness(0) saturate(100%) invert(96%) sepia(18%) saturate(280%) hue-rotate(336deg) brightness(101%) contrast(95%);animation:evoSketchC 1.5s steps(1,end) infinite}
.route-item.active .evo-img-a,.route-item.is-viewed .evo-img-a,.route-item.active .evo-img-b,.route-item.is-viewed .evo-img-b,.route-item.active .evo-img-c,.route-item.is-viewed .evo-img-c{filter:brightness(0) saturate(100%) invert(80%) sepia(39%) saturate(624%) hue-rotate(356deg) brightness(101%) contrast(89%)}
.route-evo-empty{min-height:48px}
.route-evo-empty::after{display:none}
.route-evo-1 .evo-img,.route-evo-2 .evo-img,.route-evo-3 .evo-img,.route-evo-4 .evo-img,.route-evo-5 .evo-img{animation-delay:0s}
@keyframes evoSketchA{0%,33%,100%{transform:translate(0,0) rotate(0deg)}34%,66%{transform:translate(-0.8px,0.6px) rotate(-0.7deg)}67%,99%{transform:translate(0.8px,-0.5px) rotate(0.6deg)}}
@keyframes evoSketchB{0%,33%,100%{transform:translate(1px,-0.4px) rotate(0.5deg)}34%,66%{transform:translate(-1px,0.7px) rotate(-0.5deg)}67%,99%{transform:translate(0.4px,0.3px) rotate(0.3deg)}}
@keyframes evoSketchC{0%,33%,100%{transform:translate(-0.7px,0.4px) rotate(-0.3deg)}34%,66%{transform:translate(0.9px,-0.5px) rotate(0.6deg)}67%,99%{transform:translate(-0.2px,0.1px) rotate(-0.2deg)}}
@media (max-width:1100px){
  .route-evo{min-height:42px}
  .evo-sketch{width:64px;height:38px}
}
@media (max-width:720px){
  .route-evo{min-height:38px}
  .evo-sketch{width:52px;height:32px}
  .route-evo-empty{min-height:38px}
}

/* Interaction refinements: subtle movement, no rotation */
.swap-text{animation:altarTextIn .56s cubic-bezier(.22,.61,.36,1) both}
.swap-circle{animation:altarCircleIn .64s cubic-bezier(.22,.61,.36,1) both}
.swap-detail{animation:altarDetailIn .58s cubic-bezier(.22,.61,.36,1) both}
.swap-callouts .callout{animation:altarCalloutIn .48s cubic-bezier(.22,.61,.36,1) both}
.swap-callouts .callout:nth-child(2){animation-delay:.055s}
.swap-callouts .callout:nth-child(3){animation-delay:.11s}
@keyframes altarTextIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes altarCircleIn{from{opacity:.08;filter:brightness(.86)}to{opacity:1;filter:brightness(1)}}
@keyframes irisOverlayFade{0%,90%{opacity:1}100%{opacity:0}}
@keyframes irisPreviewState{
0%,21%{opacity:1;clip-path:polygon(50% 25%,72% 37%,72% 63%,50% 75%,28% 63%,28% 37%)}
22%,49%{opacity:1;clip-path:polygon(50% 31%,66% 40%,66% 60%,50% 69%,34% 60%,34% 40%)}
50%,72%{opacity:1;clip-path:polygon(50% 37%,61% 43%,61% 57%,50% 63%,39% 57%,39% 43%)}
73%,100%{opacity:0;clip-path:polygon(50% 37%,61% 43%,61% 57%,50% 63%,39% 57%,39% 43%)}
}
@keyframes irisOpenState{0%,22%{opacity:1}23%,100%{opacity:0}}
@keyframes irisMidState{0%,21%{opacity:0}22%,50%{opacity:1}51%,100%{opacity:0}}
@keyframes irisClosedState{0%,49%{opacity:0}50%,78%{opacity:1}79%,100%{opacity:0}}
@keyframes altarDetailIn{from{opacity:0;transform:translateY(8px) scale(.992)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes altarCalloutIn{from{opacity:0;transform:translate(-100%,-50%) translateX(-7px)}to{opacity:1;transform:translate(-100%,-50%) translateX(0)}}
@keyframes altarCaret{0%,49%{opacity:1}50%,100%{opacity:0}}
@media (prefers-reduced-motion:reduce){.bg-layer{transition:none;transform:none}.swap-text,.swap-circle,.swap-detail,.swap-callouts .callout,.iris-state,.iris-shutter,.iris-preview{animation:none!important}}

/* Fullscreen-only refinements */
:fullscreen .circle-story{top:calc(100% + clamp(12px,1.6vh,18px))}

:fullscreen .panel-actions{transform:translateY(-10px)}
@media (max-width:1400px) and (max-height:820px){:fullscreen .panel-actions{transform:translateY(-8px)}}

@media (max-width:1100px){.circle-points{inset:-10px}.circle-point{width:16px;height:16px}.circle-point.point-1{top:32px;left:32px}.circle-point.point-2{top:32px;right:32px}.circle-point.point-3{bottom:32px;right:32px}.circle-point.point-4{bottom:32px;left:32px}}

@media (max-width:1400px) and (max-height:820px){.circle-story{width:min(30vw,330px)}.circle-story-text{font-size:20px}}

/* v40 · navegación del investigador + formulario compacto */
.researcher-nav{position:relative;display:flex;align-items:center}
.researcher-trigger{appearance:none;-webkit-appearance:none;background:transparent;border:0;font-family:inherit;font-size:12px;line-height:normal;letter-spacing:.16em;font-weight:600;text-transform:uppercase;color:#f6efe3;cursor:pointer}
.researcher-card{position:absolute;top:calc(100% + 18px);left:50%;width:min(380px,34vw);transform:translate(-50%,-6px);padding:18px 20px 19px;border:1px solid rgba(182,139,76,.28);border-radius:14px;background:rgba(250,247,239,.98);color:#181511;box-shadow:0 18px 46px rgba(0,0,0,.28);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s ease,transform .18s ease,visibility .18s ease;z-index:60;text-align:left;text-transform:none;letter-spacing:normal}
.researcher-card::before{content:'';position:absolute;top:-7px;left:50%;width:13px;height:13px;background:rgba(250,247,239,.98);border-left:1px solid rgba(182,139,76,.28);border-top:1px solid rgba(182,139,76,.28);transform:translateX(-50%) rotate(45deg)}
.researcher-nav:hover .researcher-card,.researcher-nav:focus-within .researcher-card,.researcher-nav.is-open .researcher-card{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0)}
.researcher-card-kicker{font-size:9px;letter-spacing:.22em;font-weight:700;color:#9a6c20;margin-bottom:7px}
.researcher-card strong{display:block;font-family:'Cormorant Garamond',Georgia,serif;font-size:25px;line-height:1;color:#111;margin-bottom:8px}
.researcher-card p{margin:0;font-family:'Inter',Arial,sans-serif;font-size:12px;line-height:1.52;color:#4a443b;font-weight:400}

.form-row-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%}
.subscribe-form textarea{width:100%;min-width:0;box-sizing:border-box;min-height:66px;max-height:110px;resize:vertical;border-radius:11px;border:1px solid #cec6b9;background:#fff;padding:9px 11px;font:13px/1.35 'Inter',Arial,sans-serif;color:#27231f;outline:none}
.subscribe-form textarea:focus,.subscribe-form input:focus{border-color:#b68b4c;box-shadow:0 0 0 2px rgba(182,139,76,.11)}
.appreciation-field{margin-top:1px}
.field-compact{display:block!important;min-width:0}
.subscribe-form input[type=text],.subscribe-form input[type=email]{width:100%;min-width:0;box-sizing:border-box}
.subscribe-form input::placeholder,.subscribe-form textarea::placeholder{color:#8f8a82;opacity:1;font-weight:400}
.brand{image-rendering:auto}

@media (max-width:1100px){
  .researcher-nav{width:100%}
  .researcher-card{left:0;transform:translateY(-6px);width:min(420px,92vw)}
  .researcher-nav:hover .researcher-card,.researcher-nav:focus-within .researcher-card,.researcher-nav.is-open .researcher-card{transform:translateY(0)}
  .form-row-two{grid-template-columns:1fr}
}


/* v43 · ajuste quirúrgico: logo limpio + responsive móvil. Sin cambios de lógica/CRM */
@media (max-width:720px){
  :root{--header-h:auto;--dark-w:100%;--panel-w:100%;--hero-text-left:0;--hero-text-width:100%;}
  html,body{overflow-x:hidden;overflow-y:auto}
  .app{width:100%;min-height:100svh;overflow:hidden}
  .topbar{height:auto;padding:12px 14px 8px;align-items:start}
  .brand-wrap{gap:9px;align-items:center}
  .brand{width:104px;max-width:30vw}
  .brand-divider{height:38px}
  .brand-tagline{font-size:14px;line-height:1.05;white-space:normal;text-align:left;max-width:128px}
  .top-actions{gap:8px;padding-top:5px}
  .fullscreen-btn .label{display:none}
  .v-divider{height:30px}
  .main-nav{width:100%;gap:12px 18px;padding:10px 0 2px;justify-content:flex-start}
  .nav-item,.researcher-trigger{font-size:10px;letter-spacing:.11em}
  .researcher-card{position:fixed;left:12px;right:12px;top:118px;width:auto;max-width:none;transform:translateY(-6px)}
  .researcher-nav:hover .researcher-card,.researcher-nav:focus-within .researcher-card,.researcher-nav.is-open .researcher-card{transform:translateY(0)}
  .layout{width:100%;overflow:hidden}
  .bg-layer{width:100%;height:610px;bottom:auto;background-position:center top}
  .hero-left{padding:38px 20px 22px;align-items:flex-start;background:linear-gradient(180deg,rgba(0,0,0,.18),rgba(0,0,0,.76))}
  .location-row{margin-bottom:12px}.location-line{width:64px}
  .hero-title{font-size:clamp(42px,13vw,58px);line-height:.9;margin-bottom:15px}
  .hero-lead{font-size:20px;line-height:1.2;margin-bottom:20px}
  .hero-center{width:min(82vw,390px);height:auto;aspect-ratio:1/1;margin:10px auto 0;padding:0}
  .circle-story{margin:16px auto 0;padding:0 6px}.circle-story-text{font-size:19px;line-height:1.08}
  .panel-right{margin-top:68px;padding:28px 20px 22px;overflow:visible}
  .panel-title{font-size:clamp(40px,12vw,52px);line-height:.9}
  .panel-body{font-size:19px;line-height:1.22}
  .panel-image-wrap{width:100%;height:auto;aspect-ratio:3/2;max-width:none}
  .panel-actions{display:grid;grid-template-columns:1fr;gap:9px}.btn{width:100%;height:50px}
  .research-route-strip{background:#080808!important;margin-top:0;padding-bottom:max(8px,env(safe-area-inset-bottom))}
  .route{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 10px;padding:20px 16px 22px}
  .route-item{min-width:0}.route-label{font-size:13px;white-space:normal}
  .form-row-two{grid-template-columns:1fr}
}

/* v45 · corrección puntual de visibilidad del logotipo sobre cabecera oscura */
.brand{
  filter:brightness(0) invert(1) drop-shadow(0 5px 12px rgba(0,0,0,.22));
  opacity:1;
}

/* v46 · logo oficial extraído de la referencia aprobada */
.brand{width:126px;height:auto;display:block;filter:none!important;opacity:1!important;object-fit:contain;}
@media(max-width:720px){.brand{width:104px;max-width:30vw;}}


/* v47 · ajustes responsive móviles solicitados */
@media (max-width:720px){
  .topbar{
    padding:12px 14px 10px;
    grid-template-columns:minmax(0,1fr) auto;
    gap:10px 12px;
    align-items:start;
  }
  .brand-wrap{
    gap:10px;
    align-items:flex-start;
  }
  .brand{width:112px;max-width:32vw;flex:0 0 auto;}
  .brand-divider{display:none;}
  .brand-tagline{
    font-size:13px;
    line-height:1.02;
    max-width:102px;
    white-space:normal;
    text-align:left;
    padding-top:3px;
  }
  .top-actions{
    padding-top:0;
    align-self:start;
    justify-self:end;
  }
  .menu-btn{display:none!important;}
  .fullscreen-btn{
    gap:7px;
    align-items:center;
    font-size:9px;
    letter-spacing:.12em;
    white-space:nowrap;
  }
  .fullscreen-btn span:last-child{display:block;line-height:1.05;text-align:left;}
  .fullscreen-btn span:last-child br{display:none;}
  .icon-box{width:28px;height:28px;}
  .v-divider{display:none;}

  .main-nav{
    grid-column:1 / -1;
    order:3;
    width:100%;
    padding:8px 0 0;
    gap:10px;
    display:flex;
    flex-direction:column;
    align-items:stretch;
  }
  .main-nav > .nav-item,
  .main-nav > .researcher-nav{
    width:100%;
  }
  .main-nav > .nav-item[data-nav="LA INVESTIGACIÓN"]{order:2;}
  .researcher-nav{order:1;}
  .nav-item,
  .researcher-trigger{
    display:flex;
    align-items:center;
    justify-content:space-between;
    width:100%;
    min-height:40px;
    padding:10px 12px;
    border:1px solid rgba(240,200,112,.18);
    background:rgba(255,255,255,.03);
    border-radius:12px;
    font-size:10px;
    letter-spacing:.12em;
  }
  .main-nav > .nav-item::before,
  .main-nav > .nav-item::after,
  .researcher-trigger::before,
  .researcher-trigger::after{display:none!important;}
  .researcher-trigger::after{
    display:block!important;
    content:'+';
    position:static;
    width:auto;
    height:auto;
    background:none;
    transform:none;
    box-shadow:none;
    font-size:16px;
    line-height:1;
  }
  .researcher-nav.is-open .researcher-trigger::after{content:'−';}
  .researcher-card{
    position:relative;
    left:auto;
    right:auto;
    top:auto;
    width:100%;
    margin-top:8px;
    transform:none!important;
  }
  .researcher-card::before{left:18px;transform:rotate(45deg);}

  .hero-left{padding:34px 20px 18px;}
  .hero-center{
    width:100%;
    max-width:none;
    height:auto !important;
    aspect-ratio:auto !important;
    margin:10px auto 0;
    padding:0 0 12px;
    display:flex;
    flex-direction:column;
    align-items:center;
    overflow:visible;
  }
  .circle-shell{
    width:min(82vw,390px);
    height:min(82vw,390px);
    flex:0 0 auto;
  }
  .circle-viewport{
    touch-action:pan-y !important;
    cursor:default;
  }
  .circle-story{
    position:relative;
    left:auto;
    top:auto;
    transform:none;
    margin:12px auto 14px;
    padding:0 10px;
    width:100%;
    z-index:3;
  }
  .circle-story-head{margin-bottom:6px;}
  .circle-story-text{
    display:block;
    min-height:1.25em;
    padding-right:12px;
  }

  .research-route-strip{
    background:#080808!important;
    margin-top:4px;
    padding-bottom:max(8px,env(safe-area-inset-bottom));
  }
  .route{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px 10px;
    padding:18px 16px 22px;
  }
  .route::before,.route::after{display:none!important;}
  .route-item{
    position:relative;
    padding-top:0;
    padding-bottom:6px;
  }
  .route-label{font-size:13px;white-space:normal;}
  .route-item.connect-next::after{
    content:'';
    position:absolute;
    top:43px;
    left:calc(50% + 18px);
    width:calc(100% - 36px);
    border-top:2px solid rgba(240,200,112,.96);
    z-index:1;
  }
  .route-item.connect-next .route-dot{box-shadow:0 0 0 5px rgba(214,161,59,.12);}

  .panel-right{
    margin-top:12px;
    padding:28px 20px 22px;
    overflow:visible;
  }
}


/* v48 · acordeón real del investigador SOLO móvil */
@media (max-width:720px){
  .researcher-nav{
    display:block;
    width:100%;
  }

  .researcher-trigger{
    position:relative;
    z-index:2;
    width:100%;
  }

  /* Cerrado: no ocupa absolutamente ningún espacio */
  .researcher-card{
    display:none !important;
    position:relative !important;
    left:auto !important;
    right:auto !important;
    top:auto !important;
    width:100% !important;
    max-width:none !important;
    margin:8px 0 0 !important;
    padding:18px 18px 20px !important;
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
    transform:none !important;
    border-radius:14px !important;
    box-shadow:0 16px 36px rgba(0,0,0,.24) !important;
  }

  /* Abierto: aparece debajo del botón y crece hacia abajo */
  .researcher-nav.is-open .researcher-card{
    display:block !important;
  }

  /* Evita que :hover/:focus del desktop la abra por su cuenta */
  .researcher-nav:hover .researcher-card,
  .researcher-nav:focus-within .researcher-card{
    display:none !important;
  }
  .researcher-nav.is-open:hover .researcher-card,
  .researcher-nav.is-open:focus-within .researcher-card{
    display:block !important;
  }

  .researcher-card::before{
    content:'';
    position:absolute;
    top:-7px;
    left:24px;
    width:13px;
    height:13px;
    background:rgba(250,247,239,.98);
    border-left:1px solid rgba(182,139,76,.28);
    border-top:1px solid rgba(182,139,76,.28);
    transform:rotate(45deg) !important;
  }

  .researcher-card strong{
    font-size:31px;
    line-height:.98;
  }

  .researcher-card p{
    font-size:14px;
    line-height:1.48;
  }

  /* El + / − forma parte del botón, no de una pseudo-regla decorativa */
  .researcher-trigger::after{
    content:'+' !important;
    display:block !important;
    position:static !important;
    flex:0 0 auto;
    margin-left:12px;
    width:auto !important;
    height:auto !important;
    background:none !important;
    box-shadow:none !important;
    transform:none !important;
    font-size:20px !important;
    line-height:1 !important;
    color:var(--gold-soft) !important;
  }
  .researcher-nav.is-open .researcher-trigger::after{
    content:'−' !important;
  }
}


/* v51 · pantalla de entrada / invitación inicial */
body.entry-modal-open{overflow:hidden!important;}
.entry-modal{
  position:fixed;
  inset:0;
  z-index:9999;
  display:grid;
  place-items:center;
  padding:24px;
  opacity:1;
  visibility:visible;
  transition:opacity .32s ease,visibility .32s ease;
}
.entry-modal.is-closing{opacity:0;visibility:hidden;pointer-events:none;}
.entry-modal-backdrop{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.78);
  backdrop-filter:blur(7px);
  -webkit-backdrop-filter:blur(7px);
}
.entry-modal-card{
  position:relative;
  width:min(520px,calc(100vw - 48px));
  padding:28px 30px 26px;
  border:1px solid rgba(240,200,112,.42);
  border-radius:20px;
  background:
    radial-gradient(circle at 50% -20%,rgba(214,161,59,.15),transparent 42%),
    linear-gradient(180deg,rgba(18,17,14,.98),rgba(6,6,5,.985));
  color:#f7f0e4;
  box-shadow:0 30px 90px rgba(0,0,0,.58),0 0 0 1px rgba(255,255,255,.035) inset;
  text-align:center;
  overflow:hidden;
}
.entry-modal-card::before,
.entry-modal-card::after{
  content:'';
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  width:82px;
  height:1px;
  background:linear-gradient(90deg,transparent,var(--gold-soft),transparent);
}
.entry-modal-card::before{top:0;}
.entry-modal-card::after{bottom:0;}
.entry-modal-mark{display:flex;justify-content:center;margin:0 auto 14px;}
.entry-modal-mark img{width:94px;height:auto;display:block;opacity:.96;}
.entry-modal-kicker{
  margin-bottom:10px;
  color:var(--gold-soft);
  font-size:9px;
  line-height:1;
  font-weight:700;
  letter-spacing:.28em;
  text-transform:uppercase;
}
.entry-modal h2{
  margin:0 0 12px;
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:clamp(34px,4vw,48px);
  line-height:.92;
  font-weight:600;
  letter-spacing:-.025em;
  color:#fffaf1;
}
.entry-modal-lead{
  margin:0 auto 9px;
  max-width:400px;
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:21px;
  line-height:1.18;
  color:#eadfcf;
}
.entry-modal-copy{
  margin:0 auto 21px;
  max-width:390px;
  font-size:12px;
  line-height:1.55;
  color:rgba(247,240,228,.68);
}
.entry-modal-actions{display:grid;grid-template-columns:1fr;gap:9px;}
.entry-modal-primary,
.entry-modal-secondary{
  min-height:50px;
  border-radius:999px;
  text-transform:uppercase;
  letter-spacing:.13em;
  font-size:10px;
  font-weight:700;
  transition:transform .18s ease,border-color .18s ease,background .18s ease;
}
.entry-modal-primary{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  border:1px solid rgba(240,200,112,.92);
  background:var(--gold-soft);
  color:#17130c;
}
.entry-modal-primary:hover{transform:translateY(-1px);background:#f5d581;}
.entry-modal-fullscreen-icon{font-size:16px;line-height:1;}
.entry-modal-secondary{
  border:1px solid rgba(255,255,255,.13);
  background:transparent;
  color:rgba(247,240,228,.72);
}
.entry-modal-secondary:hover{border-color:rgba(240,200,112,.38);color:#fff;}

@media(max-width:720px){
  .entry-modal{padding:18px;align-items:center;}
  .entry-modal-card{width:100%;padding:24px 20px 21px;border-radius:18px;}
  .entry-modal-mark img{width:84px;}
  .entry-modal h2{font-size:38px;}
  .entry-modal-lead{font-size:19px;}
  .entry-modal-copy{font-size:11px;margin-bottom:18px;}
  .entry-modal-primary,.entry-modal-secondary{min-height:48px;font-size:9px;}
}


/* v53 · logo móvil en positivo con fondo exterior transparente */
@media (max-width:720px){
  .brand,
  .entry-modal-mark img{
    filter:none !important;
  }
}


.panel-content::-webkit-scrollbar{width:8px}.panel-content::-webkit-scrollbar-thumb{background:rgba(122,109,87,.35);border-radius:999px}.panel-content::-webkit-scrollbar-track{background:transparent}


.panel-image-wrap.is-portrait{aspect-ratio:2/3;}
.panel-image-wrap.is-portrait img{object-fit:cover;}
@media (max-width:1100px){.panel-image-wrap.is-portrait{aspect-ratio:2/3;}}



/* Ajuste fino de la secuencia evolutiva según el referente del usuario */
.route-evo .evo-img{object-position:center bottom}
.route-evo-1 .evo-sketch{width:58px;height:34px;transform:translateY(8px)}
.route-evo-2 .evo-sketch{width:61px;height:40px;transform:translateY(5px)}
.route-evo-3 .evo-sketch{width:63px;height:43px;transform:translateY(2px)}
.route-evo-4 .evo-sketch{width:66px;height:45px;transform:translateY(1px)}
.route-evo-5 .evo-sketch{width:68px;height:45px;transform:translateY(0)}
@media (max-width:1100px){
  .route-evo-1 .evo-sketch{width:54px;height:31px;transform:translateY(7px)}
  .route-evo-2 .evo-sketch{width:57px;height:36px;transform:translateY(4px)}
  .route-evo-3 .evo-sketch{width:59px;height:39px;transform:translateY(2px)}
  .route-evo-4 .evo-sketch{width:62px;height:41px;transform:translateY(1px)}
  .route-evo-5 .evo-sketch{width:64px;height:41px;transform:translateY(0)}
}
@media (max-width:720px){
  .route-evo-1 .evo-sketch{width:45px;height:26px;transform:translateY(5px)}
  .route-evo-2 .evo-sketch{width:48px;height:30px;transform:translateY(3px)}
  .route-evo-3 .evo-sketch{width:50px;height:32px;transform:translateY(1px)}
  .route-evo-4 .evo-sketch{width:52px;height:34px;transform:translateY(0)}
  .route-evo-5 .evo-sketch{width:54px;height:34px;transform:translateY(0)}
}

/* Ajustes v45: quitar evolución inferior y convertir selectores de foto en cámaras */
.route-item{justify-content:flex-start;padding-top:12px}
.route-dot{margin-top:0}
.route-num{margin-top:2px}
.route-label{margin-top:2px}
.route-evo,.route-evo-empty,.route-evo::after,.route-item .evo-sketch,.route-item .evo-img{display:none!important}

.circle-points{inset:-14px}
.circle-point{
  width:24px;
  height:24px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  border:1.5px solid rgba(255,243,209,.96);
  background:rgba(30,24,16,.84);
  box-shadow:0 0 0 4px rgba(214,161,59,.11),0 0 18px rgba(214,161,59,.22);
}
.circle-point:hover,.circle-point:focus-visible{
  background:rgba(83,59,18,.96);
}
.circle-point.is-active{
  background:rgba(214,161,59,.96);
  border-color:#fff8db;
}
.circle-point-icon{
  font-size:11px;
  line-height:1;
  transform:translateY(-.5px);
  filter:grayscale(1) brightness(1.5);
}
.circle-point.is-active .circle-point-icon,
.circle-point:hover .circle-point-icon,
.circle-point:focus-visible .circle-point-icon{filter:none}
@media (max-width:1100px){
  .circle-points{inset:-12px}
  .circle-point{width:22px;height:22px}
  .circle-point-icon{font-size:10px}
}

/* v46 fixes: retouch circle images, active photo labels, centered content, clean route line */
:root{
  --hero-circle-top:20.7vh;
}
.hero-left{
  top:calc(var(--hero-circle-top) + (var(--hero-circle-size) / 2) + 8px);
}
.research-route-strip{height:118px}
.route{height:98px;padding:8px 3.9vw 0}
.route::before,.route::after{top:17px}
.route-item{justify-content:flex-start;padding-top:0}
.route-dot{margin-top:0}
.route-num{margin-top:2px}
.route-label{margin-top:1px}

.circle-story{top:calc(100% + clamp(14px,2vh,24px))}
.circle-points{inset:-14px}
.circle-point{
  overflow:visible;
  width:26px;height:26px;
  border:1.6px solid rgba(255,243,209,.96);
  background:rgba(18,14,10,.9);
  box-shadow:0 0 0 4px rgba(214,161,59,.08),0 0 16px rgba(214,161,59,.2);
}
.circle-point:hover,.circle-point:focus-visible{background:rgba(84,59,18,.96)}
.circle-point.is-active{background:#f0c66e;border-color:#fff8db;box-shadow:0 0 0 6px rgba(214,161,59,.16),0 0 22px rgba(214,161,59,.35)}
.circle-point-icon{display:flex;align-items:center;justify-content:center;width:13px;height:13px;color:#fff3d1}
.circle-point-icon svg{display:block;width:13px;height:13px}
.circle-point.is-active .circle-point-icon{color:#22180a}
.circle-point::after{content:none}
.circle-point.is-active::after{
  content:attr(data-label);
  position:absolute;
  left:50%;bottom:calc(100% + 8px);
  transform:translateX(-50%);
  padding:3px 8px 2px;
  border-radius:999px;
  background:rgba(0,0,0,.86);
  border:1px solid rgba(240,200,112,.35);
  color:#f7e6bf;
  font-size:10px;
  line-height:1;
  letter-spacing:.08em;
  text-transform:uppercase;
  white-space:nowrap;
  box-shadow:0 5px 14px rgba(0,0,0,.35);
}
.circle-points.count-3 .point-1{top:44px;left:44px;--tx:-50%;--ty:-50%}
.circle-points.count-3 .point-2{top:44px;right:44px;--tx:50%;--ty:-50%}
.circle-points.count-3 .point-3{bottom:-6px;left:50%;--tx:-50%;--ty:50%}
.circle-points.count-3 .point-4{display:none}
.circle-points.count-4 .point-1{top:44px;left:44px;--tx:-50%;--ty:-50%}
.circle-points.count-4 .point-2{top:44px;right:44px;--tx:50%;--ty:-50%}
.circle-points.count-4 .point-3{bottom:44px;right:44px;--tx:50%;--ty:50%}
.circle-points.count-4 .point-4{bottom:44px;left:44px;--tx:-50%;--ty:50%}

@media (max-width:1400px){
  :root{--hero-circle-top:20.1vh}
}
@media (max-width:1100px){
  :root{--hero-circle-top:20.2vh}
  .route{height:94px}
  .route::before,.route::after{top:15px}
  .circle-point{width:24px;height:24px}
  .circle-point-icon,.circle-point-icon svg{width:12px;height:12px}
  .circle-points.count-3 .point-1{top:32px;left:32px}
  .circle-points.count-3 .point-2{top:32px;right:32px}
  .circle-points.count-3 .point-3{bottom:-3px;left:50%}
  .circle-points.count-4 .point-1{top:32px;left:32px}
  .circle-points.count-4 .point-2{top:32px;right:32px}
  .circle-points.count-4 .point-3{bottom:32px;right:32px}
  .circle-points.count-4 .point-4{bottom:32px;left:32px}
}

/* v47: separación cámara inferior + orden fotográfico + centrado vertical calculado */
:root{
  --route-strip-h:118px;
  --main-content-center-y:calc(var(--header-h) + ((100vh - var(--header-h) - var(--route-strip-h)) / 2));
  --circle-story-reserve:60px;
}

/* El bloque textual se centra contra la zona útil real entre header y navegación inferior. */
.hero-left{
  top:var(--main-content-center-y);
}

/* El círculo sube sólo lo necesario para que círculo + cámaras + archivo visual formen
   un conjunto centrado, no pegado al header ni a la navegación inferior. */
.hero-center{
  top:calc(var(--main-content-center-y) - (var(--hero-circle-size) / 2) - (var(--circle-story-reserve) / 2));
}

/* La tercera cámara queda claramente separada del aro grande. */
.circle-points{z-index:10}
.circle-points.count-3 .point-3{
  bottom:-14px;
  left:50%;
  --tx:-50%;
  --ty:50%;
}

/* Archivo visual baja debajo de la cámara y no intercepta sus clics. */
.circle-story{
  top:calc(100% + 58px);
  pointer-events:none;
}

@media (max-width:1400px){
  :root{
    --route-strip-h:118px;
    --circle-story-reserve:58px;
  }
}

@media (max-width:1100px){
  :root{
    --route-strip-h:0px;
    --circle-story-reserve:0px;
  }
  .hero-left,.hero-center{
    top:auto;
  }
  .circle-points.count-3 .point-3{
    bottom:-12px;
    left:50%;
  }
  .circle-story{
    top:auto;
    pointer-events:none;
  }
}


/* v49: separación definitiva cámara inferior / Archivo Visual */
.circle-points.count-3 .point-3{
  bottom:-28px;
  left:50%;
  --tx:-50%;
  --ty:50%;
}
.circle-points.count-3 .point-3.is-active::after{
  top:calc(100% + 8px);
  bottom:auto;
}
.circle-story{
  top:calc(100% + 92px);
  pointer-events:none;
}
@media (max-width:1400px) and (min-width:1101px){
  .circle-points.count-3 .point-3{bottom:-26px}
  .circle-story{top:calc(100% + 88px)}
}
@media (max-width:1100px){
  .circle-points.count-3 .point-3{bottom:-14px}
  .circle-story{top:auto;margin-top:28px}
}

/* v50: tercera cámara lateral y galería reiniciada al cambiar de entorno */
.circle-points.count-3 .point-3{
  top:auto;
  left:auto;
  right:44px;
  bottom:44px;
  --tx:50%;
  --ty:50%;
}
.circle-points.count-3 .point-3.is-active::after{
  top:auto;
  bottom:calc(100% + 8px);
}
.circle-story{
  top:calc(100% + 28px);
  pointer-events:none;
}
@media (max-width:1400px) and (min-width:1101px){
  .circle-points.count-3 .point-3{right:38px;bottom:38px}
  .circle-story{top:calc(100% + 26px)}
}
@media (max-width:1100px){
  .circle-points.count-3 .point-3{
    top:auto;
    left:auto;
    right:32px;
    bottom:32px;
  }
  .circle-story{top:auto;margin-top:20px}
}

/* v51 final fixes: 3rd camera distance like other icons + step 02 gallery */
.circle-points.count-3 .point-3{
  left:auto;
  right:44px;
  bottom:44px;
  --tx:50%;
  --ty:50%;
}
.circle-story{
  top:calc(100% + 34px);
}
@media (max-width:1100px){
  .circle-points.count-3 .point-3{
    left:auto;
    right:32px;
    bottom:32px;
    --tx:50%;
    --ty:50%;
  }
  .circle-story{top:auto;margin-top:20px}
}

/* v62 · fix mobile route overflow + proper dot-to-dot connectors */
@media (max-width:720px){
  .research-route-strip{
    position:relative;
    height:auto !important;
    overflow:hidden;
    background:#080808 !important;
    margin-top:4px;
    padding:0 0 max(10px,env(safe-area-inset-bottom));
  }

  .route{
    height:auto !important;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px 12px;
    padding:18px 16px 22px !important;
    align-items:start;
  }

  .route-item{
    position:relative;
    min-height:74px;
    padding:0 4px 8px !important;
    justify-content:flex-start;
    align-items:center;
  }

  .route-dot{
    margin-top:0 !important;
    margin-bottom:4px;
  }

  .route-num{
    display:block;
    margin-top:0 !important;
    line-height:1;
  }

  .route-label{
    display:block;
    margin-top:4px !important;
    font-size:13px;
    line-height:1.08;
    white-space:normal;
    text-align:center;
    max-width:130px;
  }

  .route-item.connect-next::after{
    content:'';
    position:absolute;
    top:9px;
    left:calc(50% + 20px);
    width:calc(100% - 40px);
    border-top:2px solid rgba(240,200,112,.96);
    z-index:1;
  }
}
