.ideas-room{position:absolute;inset:0;overflow:hidden;background:#09070b;z-index:10;color:#eee8ee}
.ideas-open .viewport{min-width:0;min-height:0;height:100dvh}
.ideas-open .canvas{width:100vw;height:100dvh;transform:none!important;mask:none!important}
.ideas-open{overflow:hidden}
.ideas-open .canvas> :not(.header):not(.ideas-room){visibility:hidden!important;pointer-events:none!important}
.ideas-open .header{z-index:20!important;visibility:visible!important;opacity:1!important;pointer-events:auto!important;left:calc(50% - 733px * var(--scale,1));right:auto;top:calc(50% - 496px * var(--scale,1));width:1467px;transform:scale(var(--scale,1));transform-origin:top left}



.ideas-scene{position:absolute;width:1672px;height:941px;left:var(--ideas-left,0);top:var(--ideas-top,0);transform:scale(var(--ideas-scale,1));transform-origin:0 0;background:url('assets/environment/ideas/ideas-room-detailed.png') center/cover no-repeat}
.ideas-board,.ideas-threads{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.ideas-threads{z-index:2;overflow:visible}
.ideas-threads path{fill:none;stroke:#ff59c1;stroke-width:1.5;opacity:.18;transition:opacity .5s;stroke-linecap:round}
.ideas-threads circle{fill:#ff70ce;opacity:.25;transition:opacity .4s;filter:drop-shadow(0 0 5px #fc42b7)}
.ideas-scene:has(.ideas-zone:hover) .ideas-threads circle,.ideas-scene:has(.ideas-zone:focus-visible) .ideas-threads circle{opacity:1}
.ideas-threads[data-near="0"] path:nth-child(1),.ideas-threads[data-near="1"] path:nth-child(2),.ideas-threads[data-near="2"] path:nth-child(3),.ideas-threads[data-near="3"] path:nth-child(4){animation:ideas-pulse 1s ease-out}
.ideas-threads[data-selected] path{opacity:.12}
.ideas-threads[data-selected="0"] path:nth-child(1),.ideas-threads[data-selected="1"] path:nth-child(-n+2),.ideas-threads[data-selected="2"] path:nth-child(2),.ideas-threads[data-selected="2"] path:nth-child(3),.ideas-threads[data-selected="3"] path:nth-child(n+3),.ideas-threads[data-selected="4"] path{opacity:.85;filter:drop-shadow(0 0 3px #ff4fb2)}
.ideas-zone{position:absolute;pointer-events:auto;border:none;padding:0;background-image:url('assets/environment/ideas/ideas-room-detailed.png');background-size:1672px 941px;border-radius:3px;transition:transform .5s,filter .5s,box-shadow .5s;cursor:zoom-in}
.ideas-zone span{position:absolute;left:5px;bottom:-20px;font-size:12px;padding:3px 6px;background:#120b14d9;border-radius:3px;color:#ffc3e7;opacity:0;transition:opacity .3s}
.ideas-zone:hover,.ideas-zone:focus-visible{transform:translateY(-3px) rotate(-.35deg);filter:brightness(1.12);box-shadow:0 7px 10px #0007}
.ideas-zone:hover span,.ideas-zone:focus-visible span{opacity:1}
.has-dossier .ideas-zone:not(.is-selected){filter:brightness(.68)}
.ideas-zone.is-selected{box-shadow:0 0 18px #ff6ec345;filter:brightness(1.13)}
.ideas-intro{position:absolute;left:6.4%;top:34%;width:240px;text-shadow:0 2px 9px #000}
.ideas-intro p{font-size:clamp(18px,1.35vw,24px);line-height:1.45;margin:0}
.ideas-intro>span{display:block;color:#f86ac8;font-size:28px;margin-top:14px}
.ideas-hint{position:absolute;right:8%;bottom:24%;font-size:12px;color:#f9cfed;opacity:0;transition:opacity .4s;text-shadow:0 2px 5px #000}
.ideas-room:has(.ideas-zone:hover) .ideas-hint,.ideas-room:has(.ideas-zone:focus-visible) .ideas-hint{opacity:1}
.ideas-cta{position:absolute;right:4%;bottom:7%;border:1px solid #dc51b2;border-radius:30px;background:#110912cb;font-size:13px;padding:15px 24px;letter-spacing:.4px;color:#ff98dd}
.ideas-cta span{margin-left:20px}
.ideas-dossier{position:absolute;left:5%;top:29%;width:min(350px,35vw);padding:30px;background:#120e18f2;border:1px solid #8a456069;border-radius:7px;box-shadow:0 18px 50px #0006;animation:ideas-dossier-in .35s ease}
.has-dossier .ideas-intro{opacity:0}
.ideas-close{position:absolute;right:10px;top:8px;font-size:26px;width:36px;height:36px}
.ideas-dossier small{font-size:10px;letter-spacing:2px;color:#ef88c9}.ideas-dossier h2{font-size:26px;margin:18px 0}.ideas-dossier p{font-size:14px;line-height:1.65}.ideas-dossier footer{font-size:10px;letter-spacing:1px;color:#efa5d3;margin-top:22px}
.ideas-fragment{height:80px;background-image:url('assets/environment/ideas/ideas-room-detailed.png');background-size:850px auto;border-radius:3px;opacity:.85}
.ideas-route .ideas-threads path{animation:ideas-route 1.1s ease both;animation-delay:calc(var(--order)*.12s)}
@keyframes ideas-pulse{0%{stroke-dasharray:20 500;stroke-dashoffset:200;opacity:.9}100%{stroke-dasharray:20 500;stroke-dashoffset:-400;opacity:.2}}
@keyframes ideas-route{from{stroke-dasharray:600;stroke-dashoffset:600;opacity:.4}to{stroke-dasharray:600;stroke-dashoffset:0;opacity:1}}
@keyframes ideas-dossier-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(max-width:900px){.ideas-intro{left:4%;width:180px}.ideas-dossier{left:3%;width:38vw;padding:20px}.ideas-dossier p{font-size:12px}}
@media(prefers-reduced-motion:reduce){.ideas-room *{animation:none!important;transition:none!important}.ideas-zone:hover{transform:none}}

@media(min-aspect-ratio:1672/941){.ideas-room{background:#09070b url("assets/environment/ideas/ideas-room-wide.png") center/auto 100% no-repeat}.ideas-scene{background:none}.ideas-zone{background-image:none}}
@media(min-aspect-ratio:1672/941){.has-dossier .ideas-zone:not(.is-selected){backdrop-filter:brightness(.72)}.ideas-zone.is-selected{backdrop-filter:brightness(1.1)}}

/* One cinematic panorama at every breakpoint; central coordinates stay fixed. */
.ideas-room{background:#09070b}
.ideas-scene{background:none;isolation:isolate}
.ideas-scene::before{content:"";position:absolute;left:-575.5px;top:0;width:2823px;height:941px;background:url("assets/environment/ideas/ideas-room-cinematic-v3.png") center/100% 100% no-repeat;z-index:-1;pointer-events:none}
.ideas-zone{background-image:url("assets/environment/ideas/ideas-room-cinematic-v3.png");background-size:2823px 941px}
.ideas-fragment{background-image:url("assets/environment/ideas/ideas-room-cinematic-v3.png")}


/* Separate the shared navigation from the detailed ideas room. */
.ideas-open .header::before{content:"";position:absolute;z-index:-1;pointer-events:none;inset:-24px -100vw -30px;background:linear-gradient(180deg,rgba(12,8,19,.96) 0%,rgba(25,12,31,.92) 48%,rgba(20,10,28,.72) 76%,rgba(20,10,28,0) 100%)}
.ideas-open .header{isolation:isolate}
/* Characters remain part of the continuous board: light, not a moving image crop. */
.ideas-zone[aria-label="Персонажи — открыть досье"],
.ideas-zone[aria-label="Персонажи — открыть досье"]:hover,
.ideas-zone[aria-label="Персонажи — открыть досье"]:focus-visible,
.has-dossier .ideas-zone[aria-label="Персонажи — открыть досье"]{
 background:none;transform:none;filter:none;backdrop-filter:none;box-shadow:none;
}
.ideas-zone[aria-label="Персонажи — открыть досье"]::before{
 content:"";position:absolute;inset:-18px;pointer-events:none;
 background:radial-gradient(ellipse,rgba(255,112,195,.17),rgba(255,112,195,.06) 48%,transparent 74%);
 opacity:0;transition:opacity .45s ease;
}
.ideas-zone[aria-label="Персонажи — открыть досье"]:hover::before,
.ideas-zone[aria-label="Персонажи — открыть досье"]:focus-visible::before,
.ideas-zone[aria-label="Персонажи — открыть досье"].is-selected::before{opacity:1}

/* Light follows the photographed strings; normalized paths keep speed consistent. */
.ideas-threads g path{animation:none;fill:none;stroke-linecap:round}
.ideas-threads g .thread-base{stroke:#ff60bc;stroke-width:1.3;opacity:0;transition:opacity .4s}
.ideas-threads g .thread-pulse{stroke:#ffd1ee;stroke-width:2.6;opacity:0;stroke-dasharray:14 86;filter:drop-shadow(0 0 4px #ff38ad) drop-shadow(0 0 8px #ff38ad)}
.ideas-threads g circle{opacity:0}
.ideas-threads g.is-lit .thread-base{opacity:.65}
.ideas-threads g.is-lit circle{opacity:1;filter:drop-shadow(0 0 7px #ff38ad)}
.ideas-threads g.is-lit .thread-pulse{animation:thread-travel 1.6s ease-in-out 2}
.ideas-route .ideas-threads g .thread-pulse{animation:thread-travel 1s ease-in-out both;animation-delay:calc(var(--order)*.1s)}
.ideas-route .ideas-threads g .thread-base{opacity:.6}
@keyframes thread-travel{0%{stroke-dashoffset:14;opacity:0}15%{opacity:1}85%{opacity:1}100%{stroke-dashoffset:-100;opacity:0}}
@media(prefers-reduced-motion:reduce){.ideas-threads g .thread-pulse{animation:none!important}.ideas-threads g.is-lit .thread-base{opacity:.9}}

/* Keep the Impulse photo and its photographed strings registered on hover. */
.ideas-zone[aria-label="Импульс — открыть досье"],
.ideas-zone[aria-label="Импульс — открыть досье"]:hover,
.ideas-zone[aria-label="Импульс — открыть досье"]:focus-visible,
.has-dossier .ideas-zone[aria-label="Импульс — открыть досье"]{
 background:none;transform:none;filter:none;backdrop-filter:none;box-shadow:none;
}

/* Editorial stories are layered over the existing physical board. */
.ideas-open .canvas{inset:0}
.ideas-welcome{position:absolute;left:5%;top:24%;width:min(380px,34vw);padding:24px 0;text-shadow:0 2px 18px #000}
.ideas-welcome small{color:#ef9ad0;font-size:10px;letter-spacing:2.4px}
.ideas-welcome h1{font-size:clamp(28px,3vw,48px);line-height:1.08;font-weight:500;letter-spacing:-1.5px;margin:20px 0}
.ideas-welcome p{max-width:300px;color:#d5c6d4;font-size:14px;line-height:1.7}
.ideas-start{padding:13px 0;color:#ffa4dc;border-bottom:1px solid #a85786;font-size:14px}.ideas-start span{margin-left:28px}
.ideas-chapters{display:grid;gap:3px;margin-top:26px}
.ideas-chapters button{font-size:12px;text-align:left;padding:9px 0;color:#c9b7c9;transition:color .25s,translate .25s}
.ideas-chapters button:hover{color:#ffabe2;translate:4px 0}.ideas-chapters .is-visited::after{content:' ✓';color:#f397cc}
.has-dossier .ideas-welcome{visibility:hidden;pointer-events:none}
.ideas-dossier{left:4%;top:14%;width:min(590px,47vw);max-height:80%;overflow:auto;padding:32px;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#965579 #170f1c;background:linear-gradient(140deg,#19101ff7,#0e0b14fa);border:1px solid #ac719b55;border-radius:14px;box-shadow:0 24px 100px #0009;animation:story-enter .5s cubic-bezier(.22,.8,.25,1)}
.ideas-dossier h2{font-size:clamp(25px,2.4vw,36px);line-height:1.12;letter-spacing:-.8px;margin:19px 20px 16px 0;font-weight:500}
.ideas-dossier>p{color:#d1c2d0;line-height:1.75;font-size:14px}
.ideas-dossier>small{display:block;max-width:90%;font-size:9px;line-height:1.8;letter-spacing:1.6px}
.ideas-art{margin:22px 0 12px}.ideas-art img{display:block;width:100%;max-height:320px;object-fit:contain;border-radius:4px;background:#08070d}
.ideas-art figcaption{font-size:11px;color:#ae9bad;margin-top:10px;line-height:1.5}
.ideas-film{display:flex;gap:9px;margin:15px 0 22px}.ideas-film button{padding:3px;border:1px solid transparent;border-radius:5px;opacity:.5;transition:opacity .3s,border-color .3s;max-width:24%;width:72px}
.ideas-film button[aria-pressed=true]{opacity:1;border-color:#e981bf}.ideas-film button:hover{opacity:1}
.ideas-film img{width:100%;height:48px;object-fit:contain;display:block}
.ideas-actions{display:flex;flex-wrap:wrap;gap:12px 20px;border-top:1px solid #ad759232;padding-top:18px}
.ideas-actions a,.ideas-actions button{font-size:12px;color:#ffa4db;text-decoration:none;padding:6px 0;line-height:1.5}
.ideas-actions a:hover{text-decoration:underline}.ideas-actions .ideas-contact{color:#c2aabd}
.ideas-story-footer{display:flex;justify-content:space-between;gap:15px;align-items:center;border-top:1px solid #ad759232;padding-top:17px}
.ideas-story-footer span{font-size:10px;color:#a58fa3;letter-spacing:0}.ideas-story-footer button{font-size:11px;color:#e7bdd8}
.ideas-dossier .ideas-close{position:sticky;float:right;top:0;z-index:2;background:#241626e8;border-radius:50%;margin:-12px -12px 0 0}
.ideas-room::before{content:'';position:absolute;inset:0;pointer-events:none;z-index:1;background:linear-gradient(90deg,#08061070,transparent 55%)}
.ideas-welcome,.ideas-dossier,.ideas-cta,.ideas-hint{z-index:3}
@keyframes story-enter{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@media(max-width:800px){
 .ideas-open .header{left:0;top:0;width:100%;height:108px;transform:none!important;padding:12px 16px;gap:12px;display:flex;flex-wrap:wrap;background:#100a17ed}
 .ideas-open .header .logo{width:105px;height:45px}.ideas-open .header .contact{margin:6px 0 0 auto;font-size:10px;padding:7px 10px}.ideas-open .header .contact span{font-size:14px;margin-left:4px}
 .ideas-open .header nav{order:3;margin:0;width:100%;gap:20px;overflow-x:auto;padding-bottom:4px}.ideas-open .header nav button{font-size:11px;flex-shrink:0}
 .ideas-welcome{left:6%;top:145px;width:86%;padding:0}.ideas-welcome h1{font-size:36px}.ideas-welcome p{max-width:320px}.ideas-room::before{background:#09060f75}
 .ideas-chapters{gap:0;margin-top:15px}.ideas-chapters button{padding:11px 0}
 .ideas-dossier{left:4%;top:125px;width:92%;max-height:calc(100dvh - 145px);padding:24px}.ideas-dossier h2{font-size:28px}.ideas-art img{max-height:260px}
 .ideas-cta{bottom:22px;font-size:11px;padding:12px 16px}.has-dossier .ideas-cta{display:none}.ideas-hint{display:none}
}
@media(max-height:650px) and (min-width:801px){.ideas-welcome{top:18%}.ideas-welcome h1{font-size:30px}.ideas-chapters{margin-top:12px}.ideas-chapters button{padding:6px 0}}
@media(prefers-reduced-motion:reduce){.ideas-dossier{animation:none!important}.ideas-chapters button:hover{translate:none}}
