/* IFL 2.3 Bus Project — isolated animated experience */
#ifl-bus-teaser,.ifl-bus-page{--bp:var(--md-sys-color-primary,#d3a72f);--surf:var(--md-sys-color-surface,#171313);--surf2:var(--md-sys-color-surface-variant,#231b1b);--txt:var(--md-sys-color-on-surface,#f7f3f0);--mut:var(--md-sys-color-on-surface-variant,#aaa2a2);font-family:inherit;color:var(--txt)}
#ifl-bus-teaser{margin:0 0 18px;padding:13px 15px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:13px;border:1px solid color-mix(in srgb,var(--bp) 34%,transparent);border-radius:14px;background:linear-gradient(110deg,color-mix(in srgb,var(--bp) 10%,transparent),transparent 46%),var(--surf);cursor:pointer;position:relative;overflow:hidden}
#ifl-bus-teaser:before{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 25%,rgba(255,255,255,.09) 48%,transparent 70%);transform:translateX(-120%);animation:iflTeaserShine 5.8s ease-in-out infinite;pointer-events:none}@keyframes iflTeaserShine{55%,100%{transform:translateX(140%)}}
.ifl-bus-teaser__icon{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;background:color-mix(in srgb,var(--bp) 15%,transparent);color:var(--bp)}.ifl-bus-teaser__icon span{font-size:27px}.ifl-bus-teaser__body{min-width:0}.ifl-bus-teaser__top,.ifl-bus-teaser__line{display:flex;justify-content:space-between;gap:12px;align-items:center}.ifl-bus-teaser__top strong{font-size:15px}.ifl-bus-teaser__top span{font-size:9px;font-weight:800;letter-spacing:.07em;color:var(--bp)}.ifl-bus-teaser.preview .ifl-bus-teaser__top span{color:#ff6060}.ifl-bus-teaser__line{margin-top:4px;font-size:12px}.ifl-bus-teaser__line b{font-size:18px}.ifl-bus-teaser__line span{color:var(--mut)}.ifl-bus-mini{height:5px;border-radius:99px;background:rgba(255,255,255,.08);overflow:hidden;margin-top:5px}.ifl-bus-mini i{display:block;height:100%;background:linear-gradient(90deg,var(--bp),#ffd86b);transition:width .8s ease}.ifl-bus-teaser>button{border:0;background:transparent;color:var(--txt);display:flex;align-items:center;gap:5px;font:inherit;font-size:11px;font-weight:700;cursor:pointer}.ifl-bus-teaser>button span{font-size:17px}
.ifl-bus-nav{width:100%;border:0;background:transparent;color:inherit;display:flex;align-items:center;gap:9px;padding:9px 12px;border-radius:8px;font:inherit;cursor:pointer}.ifl-bus-nav:hover{background:color-mix(in srgb,var(--bp) 12%,transparent)}.ifl-bus-nav .material-symbols-outlined{font-size:18px;color:var(--bp)}
.ifl-bus-page{position:fixed;z-index:9997;inset:54px 0 0;background:radial-gradient(circle at 70% 0,color-mix(in srgb,var(--bp) 7%,transparent),transparent 35%),var(--md-sys-color-background,#100d0d);overflow:auto;padding:26px clamp(18px,3vw,54px) 60px;animation:iflPageIn .22s ease}@keyframes iflPageIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.ifl-bus-page *{box-sizing:border-box}.ifl-bus-page__top{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;max-width:1500px;margin:0 auto 15px}.ifl-bus-page__top small{color:var(--mut)}.ifl-bus-page__top h1{font-size:clamp(28px,3vw,46px);line-height:1;margin:5px 0 7px;letter-spacing:-.03em}.ifl-bus-page__top h1::first-letter{color:var(--txt)}.ifl-bus-page__top p{margin:0;color:var(--mut);font-size:13px}.ifl-bus-page__actions{display:flex;gap:10px;align-items:center}.ifl-close{width:42px;height:42px;border-radius:12px;border:1px solid rgba(255,255,255,.08);background:var(--surf2);color:var(--txt);cursor:pointer}.ifl-preview{display:grid;grid-template-columns:auto auto;gap:1px 8px;padding:8px 12px;border-radius:11px;border:1px solid rgba(255,69,69,.45);background:rgba(125,20,20,.22);color:#ff6f6f}.ifl-preview>span{grid-row:1/3;align-self:center}.ifl-preview b{font-size:11px}.ifl-preview small{font-size:9px;color:#ffaaaa}
.ifl-bus-hero{max-width:1500px;margin:0 auto;display:grid;grid-template-columns:minmax(0,2.5fr) minmax(270px,.85fr);gap:14px}.ifl-bus-visual{height:min(52vh,520px);min-height:330px;border-radius:15px;overflow:hidden;border:1px solid color-mix(in srgb,var(--bp) 30%,transparent);background:#090909;position:relative}.ifl-bus-scene{position:absolute;inset:0;background:#070707;overflow:hidden}.ifl-bus-scene__base{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(1) brightness(.2) contrast(1.2);opacity:.58;transform:scale(1.02)}.ifl-bus-scene__blueprint{position:absolute;inset:0;background:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:36px 36px;mix-blend-mode:screen;opacity:.32}.ifl-bus-piece{position:absolute;inset:0;background-image:var(--bus);background-position:center;background-size:cover;opacity:0;filter:saturate(.8) contrast(1.05);transform:translate3d(0,14px,0) scale(1.015);transition:opacity 1.1s ease,transform 1.2s cubic-bezier(.15,.75,.2,1),filter .8s ease}.ifl-bus-piece.built{opacity:1;transform:none}.ifl-bus-piece.current{opacity:1;filter:saturate(1.05) brightness(1.06);animation:iflCurrentPiece 2.2s ease-in-out infinite alternate}@keyframes iflCurrentPiece{to{filter:saturate(1.15) brightness(1.12) drop-shadow(0 0 8px color-mix(in srgb,var(--bp) 55%,transparent))}}
.ifl-bus-piece.p1{clip-path:polygon(0 57%,100% 57%,100% 100%,0 100%)}.ifl-bus-piece.p2{clip-path:polygon(41% 43%,100% 40%,100% 100%,35% 100%)}.ifl-bus-piece.p3{clip-path:polygon(0 28%,100% 28%,100% 100%,0 100%)}.ifl-bus-piece.p4{clip-path:polygon(0 5%,100% 5%,100% 59%,0 59%)}.ifl-bus-piece.p5{clip-path:polygon(0 0,100% 0,100% 100%,0 100%);opacity:0}.ifl-bus-piece.p5.built{opacity:.45;mix-blend-mode:screen}.ifl-bus-piece.p6{clip-path:inset(0);opacity:0}.ifl-bus-piece.p6.built{opacity:1;filter:none}.ifl-bus-scan{position:absolute;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--bp),transparent);box-shadow:0 0 16px var(--bp);opacity:.6;animation:iflScan 4.8s ease-in-out infinite}@keyframes iflScan{0%,100%{top:12%;opacity:0}15%{opacity:.65}85%{opacity:.65}100%{top:88%;opacity:0}}
.ifl-bus-sparks{position:absolute;inset:0;pointer-events:none;opacity:.2}.ifl-bus-sparks i{position:absolute;left:var(--x);top:var(--y);width:4px;height:4px;border-radius:50%;background:#fff3a5;box-shadow:0 0 8px 2px #ffb000;opacity:0;transform:rotate(var(--r));animation:iflSpark 2.6s ease-out infinite;animation-delay:var(--d)}@keyframes iflSpark{0%,70%{opacity:0;transform:translate(0,0) scale(.2)}75%{opacity:1}100%{opacity:0;transform:translate(22px,28px) scale(0)}}.contribution-pulse .ifl-bus-sparks,.stage-unlock .ifl-bus-sparks{opacity:1}.contribution-pulse .ifl-bus-sparks i{animation-duration:.85s}.stage-unlock .ifl-bus-sparks i{animation-duration:.55s}.stage-unlock .ifl-bus-visual{animation:iflUnlock .65s ease 2}@keyframes iflUnlock{50%{box-shadow:0 0 0 2px var(--bp),0 0 38px color-mix(in srgb,var(--bp) 40%,transparent)}}
.ifl-bus-hero>aside{border:1px solid color-mix(in srgb,var(--bp) 25%,transparent);border-radius:15px;background:linear-gradient(145deg,color-mix(in srgb,var(--bp) 7%,transparent),transparent 55%),var(--surf);padding:20px;display:flex;flex-direction:column;gap:12px}.ifl-bus-hero>aside>small{color:var(--mut)}.ifl-pct-num{font-size:clamp(42px,4vw,64px);line-height:1;color:var(--bp);font-weight:900}.ifl-bigbar{height:13px;background:rgba(255,255,255,.07);border-radius:99px;overflow:hidden}.ifl-bigbar i{display:block;height:100%;background:linear-gradient(90deg,var(--bp),#ffd86b);box-shadow:0 0 18px color-mix(in srgb,var(--bp) 50%,transparent);transition:width 1s ease}.ifl-phase{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid rgba(255,255,255,.06);border-radius:10px}.ifl-phase>span{color:var(--bp)}.ifl-phase div{display:flex;flex-direction:column}.ifl-phase small,.ifl-personal small{color:var(--mut);font-size:10px}.ifl-phase b{font-size:13px}.ifl-personal{margin-top:auto;padding-top:11px;border-top:1px solid rgba(255,255,255,.06);display:flex;flex-direction:column}.ifl-personal b{font-size:20px}
.ifl-stage-row{max-width:1500px;margin:12px auto;display:grid;grid-template-columns:repeat(7,1fr);gap:4px;padding:10px 8px;border-radius:13px;background:var(--surf);border:1px solid rgba(255,255,255,.06)}.ifl-step{position:relative;display:grid;justify-items:center;gap:3px;color:#666}.ifl-step:before{content:"";position:absolute;top:17px;right:50%;left:-50%;height:2px;background:#393434;z-index:0}.ifl-step:first-child:before{display:none}.ifl-step>span{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;border:2px solid #4c4747;background:var(--surf);z-index:1;font-size:17px}.ifl-step b{font-size:9px}.ifl-step small{font-size:8px}.ifl-step.done,.ifl-step.current{color:var(--txt)}.ifl-step.done:before,.ifl-step.current:before{background:var(--bp)}.ifl-step.done>span{background:#2b7d35;border-color:#55db68;color:white}.ifl-step.current>span{border-color:var(--bp);color:var(--bp);box-shadow:0 0 0 5px color-mix(in srgb,var(--bp) 9%,transparent),0 0 18px color-mix(in srgb,var(--bp) 30%,transparent);animation:iflRing 1.8s ease-in-out infinite}@keyframes iflRing{50%{box-shadow:0 0 0 8px transparent,0 0 27px color-mix(in srgb,var(--bp) 45%,transparent)}}
.ifl-bus-grid{max-width:1500px;margin:0 auto;display:grid;grid-template-columns:minmax(0,2.2fr) minmax(230px,.7fr) minmax(220px,.6fr);gap:12px}.ifl-bus-grid>section,.ifl-release{border-radius:13px;border:1px solid rgba(255,255,255,.07);background:var(--surf);padding:14px}.ifl-bus-grid h2,.ifl-release h2{font-size:14px;margin:0 0 11px;display:flex;align-items:center;gap:7px}.ifl-bus-grid h2 span{color:var(--bp);font-size:19px}.ifl-materials{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.ifl-mat{display:flex;gap:8px;padding:10px;border:1px solid rgba(255,255,255,.06);border-radius:9px;background:rgba(255,255,255,.018)}.ifl-mat__icon{width:34px;height:34px;display:grid;place-items:center;border-radius:8px;background:color-mix(in srgb,var(--bp) 10%,transparent);color:var(--bp);flex:none}.ifl-mat__icon span{font-size:20px}.ifl-mat__body{min-width:0;display:flex;flex-direction:column;gap:3px}.ifl-mat strong{font-size:10px}.ifl-mat small,.ifl-mat em{font-size:8px;color:var(--mut);font-style:normal}.ifl-mat__body>div{height:5px;border-radius:99px;background:rgba(255,255,255,.07);overflow:hidden}.ifl-mat__body>div i{display:block;height:100%;background:var(--bp);transition:width .8s ease}.ifl-valid{margin-top:9px;font-size:9px;color:var(--mut)}.ifl-valid summary{cursor:pointer;color:var(--bp);font-weight:700}.ifl-valid p{margin:5px 0}.ifl-how p{display:flex;gap:8px;align-items:flex-start;font-size:10px;line-height:1.4;color:var(--mut)}.ifl-how p span{font-size:17px;color:var(--bp)}.ifl-leader ol{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px}.ifl-leader li{display:grid;grid-template-columns:20px 22px 1fr auto;align-items:center;gap:6px;font-size:9px}.ifl-leader li>b{width:18px;height:18px;display:grid;place-items:center;border-radius:50%;background:color-mix(in srgb,var(--bp) 15%,transparent);color:var(--bp)}.ifl-leader img{width:21px;height:21px;border-radius:50%;object-fit:cover}.ifl-leader li>span.material-symbols-outlined{font-size:20px;color:var(--mut)}.ifl-leader li strong{color:var(--bp)}
.ifl-release{max-width:1500px;margin:12px auto 0;display:grid;grid-template-columns:auto 1fr minmax(250px,.55fr);align-items:center;gap:13px;background:linear-gradient(90deg,color-mix(in srgb,var(--bp) 7%,transparent),transparent),var(--surf)}.ifl-release>span{font-size:31px;color:var(--bp)}.ifl-release h2{margin:0}.ifl-release p{margin:3px 0 0;font-size:10px;color:var(--mut)}.ifl-release__bar{position:relative;height:8px;border-radius:99px;background:rgba(255,255,255,.07)}.ifl-release__bar i{display:block;height:100%;border-radius:inherit;background:var(--bp)}.ifl-release__bar b{position:absolute;right:0;top:11px;font-size:9px}
.ifl-bus-toast{position:fixed;z-index:10000;left:50%;bottom:28px;transform:translate(-50%,18px);opacity:0;pointer-events:none;display:flex;align-items:center;gap:10px;padding:11px 16px;border:1px solid color-mix(in srgb,var(--bp) 50%,transparent);border-radius:12px;background:rgba(12,10,10,.95);box-shadow:0 16px 50px rgba(0,0,0,.45);transition:.25s ease}.ifl-bus-toast.show{opacity:1;transform:translate(-50%,0)}.ifl-bus-toast>span{color:var(--bp)}.ifl-bus-toast div{display:flex;flex-direction:column}.ifl-bus-toast b{font-size:11px}.ifl-bus-toast small{font-size:9px;color:var(--mut)}.ifl-bus-toast.major{border-color:#ffd55a;box-shadow:0 0 40px rgba(255,194,47,.23)}
@media(max-width:1050px){.ifl-bus-grid{grid-template-columns:1fr 1fr}.ifl-bus-grid>section:first-child{grid-column:1/-1}.ifl-materials{grid-template-columns:repeat(3,1fr)}}@media(max-width:800px){.ifl-bus-page{inset:54px 0 0;padding:18px 12px 50px}.ifl-bus-hero{grid-template-columns:1fr}.ifl-bus-visual{height:42vh;min-height:260px}.ifl-stage-row{overflow-x:auto;grid-template-columns:repeat(7,100px)}.ifl-bus-grid{grid-template-columns:1fr}.ifl-bus-grid>section:first-child{grid-column:auto}.ifl-materials{grid-template-columns:repeat(2,1fr)}.ifl-release{grid-template-columns:auto 1fr}.ifl-release__bar{grid-column:1/-1}.ifl-bus-page__top{flex-direction:column}.ifl-bus-page__actions{width:100%;justify-content:space-between}#ifl-bus-teaser{grid-template-columns:auto 1fr}#ifl-bus-teaser>button{display:none}}@media(prefers-reduced-motion:reduce){.ifl-bus-page *{animation:none!important;transition:none!important}}

/* 2.3.0 — deterministic progressive bus assembly. */
.ifl-bus-scene{--stage-fill:0%}
.ifl-bus-piece{will-change:opacity,transform,filter,mask-position;transform-origin:50% 68%}
.ifl-bus-piece.current{opacity:1;-webkit-mask-image:linear-gradient(90deg,#000 0 var(--stage-fill),transparent calc(var(--stage-fill) + .35%));mask-image:linear-gradient(90deg,#000 0 var(--stage-fill),transparent calc(var(--stage-fill) + .35%));-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}
.ifl-bus-piece__shine{position:absolute;inset:0;display:block;pointer-events:none;background:linear-gradient(105deg,transparent 42%,rgba(255,221,122,.20) 50%,transparent 58%);transform:translateX(-120%);opacity:0}
.contribution-pulse .ifl-bus-piece.current .ifl-bus-piece__shine{opacity:1;animation:iflPartShine 1.15s ease-out}
@keyframes iflPartShine{to{transform:translateX(120%);opacity:0}}
.ifl-bus-piece.p1{clip-path:polygon(16% 60%,70% 58%,74% 91%,18% 91%)}
.ifl-bus-piece.p2{clip-path:polygon(25% 48%,73% 43%,75% 93%,24% 93%)}
.ifl-bus-piece.p3{clip-path:polygon(16% 18%,71% 18%,74% 70%,18% 72%)}
.ifl-bus-piece.p4{clip-path:polygon(21% 22%,67% 22%,69% 60%,21% 60%)}
.ifl-bus-piece.p5{clip-path:polygon(36% 32%,73% 30%,75% 90%,35% 90%)}
.ifl-bus-piece.p6{clip-path:polygon(15% 16%,74% 16%,76% 93%,17% 93%)}
.stage-unlock .ifl-bus-piece.current.p1{animation:iflMountChassis 1.35s cubic-bezier(.16,.8,.22,1) both}.stage-unlock .ifl-bus-piece.current.p2{animation:iflMountMechanics 1.35s cubic-bezier(.16,.8,.22,1) both}.stage-unlock .ifl-bus-piece.current.p3{animation:iflMountBody 1.45s cubic-bezier(.16,.8,.22,1) both}.stage-unlock .ifl-bus-piece.current.p4{animation:iflMountGlass 1.2s ease-out both}.stage-unlock .ifl-bus-piece.current.p5{animation:iflMountTech 1.25s ease-out both}.stage-unlock .ifl-bus-piece.current.p6{animation:iflFinalReveal 1.8s cubic-bezier(.16,.8,.22,1) both}
@keyframes iflMountChassis{0%{transform:translateX(-18%) translateY(7%) scale(.96);filter:brightness(.65)}70%{transform:translateX(1%) translateY(0) scale(1.006)}100%{transform:none;filter:brightness(1.08)}}
@keyframes iflMountMechanics{0%{transform:translateY(14%) scale(.90);filter:brightness(.6)}65%{transform:translateY(-1%) scale(1.015)}100%{transform:none;filter:brightness(1.08)}}
@keyframes iflMountBody{0%{transform:translateY(-15%) scale(.985);filter:brightness(.68)}70%{transform:translateY(1%) scale(1.008)}100%{transform:none;filter:brightness(1.08)}}
@keyframes iflMountGlass{0%{opacity:.05;transform:scale(.94);filter:blur(5px) brightness(1.5)}100%{opacity:1;transform:none;filter:none}}
@keyframes iflMountTech{0%{opacity:.15;filter:brightness(2.2) saturate(.3);transform:scale(.97)}45%{opacity:1;filter:brightness(1.6) saturate(1.2)}100%{filter:none;transform:none}}
@keyframes iflFinalReveal{0%{opacity:.12;filter:brightness(.35) saturate(.2);transform:scale(.975)}55%{opacity:1;filter:brightness(1.45) saturate(1.15);transform:scale(1.008)}100%{filter:none;transform:none}}
.ifl-bus-buildhead{position:absolute;left:calc(17% + (var(--stage-fill) * .56));top:58%;width:2px;height:26%;z-index:12;pointer-events:none;filter:drop-shadow(0 0 6px #ffb000);transition:left 1s cubic-bezier(.2,.8,.2,1)}
.ifl-bus-buildhead>span{position:absolute;left:-5px;top:-5px;width:11px;height:11px;border-radius:50%;background:#fff4b1;box-shadow:0 0 8px #fff,0 0 20px #ffb000,0 0 34px #ff7a00;animation:iflWelderPulse .55s ease-in-out infinite alternate}.ifl-bus-buildhead>i{position:absolute;left:0;top:0;width:3px;height:9px;border-radius:3px;background:#ffd56a;transform-origin:top;animation:iflWeldDrop .75s linear infinite}.ifl-bus-buildhead>i:nth-child(2){--dx:-17px;animation-delay:.08s}.ifl-bus-buildhead>i:nth-child(3){--dx:12px;animation-delay:.2s}.ifl-bus-buildhead>i:nth-child(4){--dx:-8px;animation-delay:.33s}.ifl-bus-buildhead>i:nth-child(5){--dx:19px;animation-delay:.46s}
@keyframes iflWelderPulse{to{transform:scale(1.22);box-shadow:0 0 12px #fff,0 0 28px #ffb000,0 0 48px #ff6500}}@keyframes iflWeldDrop{0%{opacity:1;transform:translate(0,0) rotate(10deg)}100%{opacity:0;transform:translate(var(--dx,8px),45px) rotate(25deg) scale(.3)}}
.contribution-pulse .ifl-bus-piece.current{animation:iflContributionSettle .9s cubic-bezier(.2,.85,.25,1)}@keyframes iflContributionSettle{0%{filter:brightness(1)}35%{filter:brightness(1.35) drop-shadow(0 0 12px rgba(255,190,50,.5));transform:scale(1.007)}100%{filter:brightness(1.06);transform:none}}
.is-complete .ifl-bus-scene:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 57% 76%,rgba(255,246,205,.32),transparent 7%),radial-gradient(circle at 65% 77%,rgba(255,246,205,.32),transparent 7%);animation:iflHeadlights 1.4s ease-out both}@keyframes iflHeadlights{from{opacity:0}45%{opacity:1}70%{opacity:.45}to{opacity:.9}}
@media(prefers-reduced-motion:reduce){.ifl-bus-buildhead{display:none!important}.ifl-bus-piece.current{-webkit-mask-image:none!important;mask-image:none!important}}

/* 2.3.0 UI hotfix 2 — native typography, responsive preview banner, interactive build scene */
#ifl-bus-teaser,.ifl-bus-page{font-family:var(--font-body,"Inter",Roboto,sans-serif)!important}
.ifl-bus-page h1,.ifl-bus-page h2,.ifl-bus-page strong,.ifl-bus-page b{font-family:var(--font-display,"Space Grotesk",sans-serif)}
.ifl-bus-page{inset:64px 0 0}
.ifl-bus-page__top{align-items:center;margin-bottom:10px}
.ifl-bus-page__top>div:first-child{min-width:0}
.ifl-bus-title-row{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.ifl-bus-title-row h1{margin:5px 0 7px;font-weight:700}
/* Anniversary theme adds a hard-coded English suffix to every h1. Bus Project renders its own localized badge instead. */
body.theme-2nd-anniversary .ifl-bus-page h1:after{content:none!important;display:none!important}
.ifl-bus-title-row>span{color:var(--bp);font-family:var(--font-display,"Space Grotesk",sans-serif);font-size:clamp(11px,1.1vw,16px);font-weight:800;letter-spacing:.10em;white-space:nowrap}
.ifl-close{flex:none;display:grid;place-items:center}
.ifl-preview-row{max-width:1500px;margin:0 auto 12px;display:flex;align-items:center;gap:10px;padding:10px 13px;border-radius:11px;border:1px solid rgba(255,69,69,.42);background:linear-gradient(90deg,rgba(125,20,20,.28),rgba(125,20,20,.10));color:#ff7777}
.ifl-preview-row>span{font-size:20px}.ifl-preview-row>div{display:flex;flex-direction:column;gap:1px}.ifl-preview-row b{font-size:11px;letter-spacing:.035em}.ifl-preview-row small{font-size:9px;color:#ffb0b0}

/* Stages/materials are controls, not static poster content. */
.ifl-step{appearance:none;border:0;background:transparent;font:inherit;padding:0;cursor:pointer}
.ifl-step:hover,.ifl-step:focus-visible,.ifl-step.inspected{color:var(--txt);outline:none}
.ifl-step:hover>span,.ifl-step:focus-visible>span,.ifl-step.inspected>span{border-color:var(--bp);color:var(--bp);transform:translateY(-1px)}
.ifl-mat{cursor:pointer;transition:border-color .16s ease,background .16s ease,transform .16s ease}
.ifl-mat:hover,.ifl-mat:focus-visible,.ifl-mat.inspected{outline:none;border-color:color-mix(in srgb,var(--bp) 48%,transparent);background:color-mix(in srgb,var(--bp) 6%,transparent);transform:translateY(-1px)}

/* Interactive points over the in-game bus image. */
.ifl-bus-hotspots{position:absolute;inset:0;z-index:16;pointer-events:none}
.ifl-bus-hotspot{pointer-events:auto;position:absolute;left:var(--hx);top:var(--hy);transform:translate(-50%,-50%);display:flex;align-items:center;gap:6px;min-width:30px;height:30px;padding:0 7px;border-radius:999px;border:1px solid rgba(255,255,255,.23);background:rgba(8,8,9,.74);backdrop-filter:blur(5px);color:#c8c2bf;cursor:pointer;box-shadow:0 5px 20px rgba(0,0,0,.28);transition:transform .16s ease,border-color .16s ease,background .16s ease,color .16s ease,box-shadow .16s ease}
.ifl-bus-hotspot .material-symbols-outlined{font-size:16px}.ifl-bus-hotspot b{max-width:0;opacity:0;overflow:hidden;white-space:nowrap;font-size:9px;transition:max-width .2s ease,opacity .15s ease}
.ifl-bus-hotspot:hover,.ifl-bus-hotspot:focus-visible,.ifl-bus-hotspot.inspected{outline:none;transform:translate(-50%,-50%) scale(1.06);border-color:var(--bp);color:var(--bp);background:rgba(13,11,9,.92);box-shadow:0 0 0 4px color-mix(in srgb,var(--bp) 11%,transparent),0 8px 26px rgba(0,0,0,.42)}
.ifl-bus-hotspot:hover b,.ifl-bus-hotspot:focus-visible b,.ifl-bus-hotspot.inspected b{max-width:140px;opacity:1}
.ifl-bus-hotspot.done{border-color:rgba(85,219,104,.48);color:#77e786}.ifl-bus-hotspot.current{border-color:var(--bp);color:var(--bp);animation:iflHotspot 1.8s ease-in-out infinite}@keyframes iflHotspot{50%{box-shadow:0 0 0 6px transparent,0 0 22px color-mix(in srgb,var(--bp) 40%,transparent)}}
.ifl-bus-hotspot.future{opacity:.78}
.ifl-bus-inspector{position:absolute;left:13px;bottom:13px;z-index:15;max-width:min(430px,calc(100% - 26px));display:flex;align-items:center;gap:9px;padding:9px 11px;border:1px solid rgba(255,255,255,.12);border-radius:10px;background:rgba(8,8,9,.77);backdrop-filter:blur(7px);box-shadow:0 8px 28px rgba(0,0,0,.28);pointer-events:none}
.ifl-bus-inspector>span{font-size:19px;color:var(--bp)}.ifl-bus-inspector>div{display:flex;flex-direction:column;gap:1px}.ifl-bus-inspector b{font-size:10px}.ifl-bus-inspector small{font-size:8.5px;line-height:1.3;color:#b6adac}

/* Inspecting a future component is a preview only; it never changes saved progress. */
.ifl-bus-scene[data-inspect] .ifl-bus-scene__base{filter:grayscale(1) brightness(.15) contrast(1.25)}
.ifl-bus-scene[data-inspect] .ifl-bus-piece{opacity:.08;filter:grayscale(.5) brightness(.55);-webkit-mask-image:none!important;mask-image:none!important;animation:none!important}
.ifl-bus-scene[data-inspect="1"] .p1,.ifl-bus-scene[data-inspect="2"] .p2,.ifl-bus-scene[data-inspect="3"] .p3,.ifl-bus-scene[data-inspect="4"] .p4,.ifl-bus-scene[data-inspect="5"] .p5,.ifl-bus-scene[data-inspect="6"] .p6{opacity:.95!important;transform:scale(1.006)!important;filter:saturate(1.12) brightness(1.16) drop-shadow(0 0 12px color-mix(in srgb,var(--bp) 58%,transparent))!important}

@media(max-width:800px){.ifl-bus-page{inset:64px 0 0}.ifl-bus-page__top{flex-direction:row;align-items:flex-start}.ifl-bus-page__top>div:first-child{flex:1}.ifl-preview-row{margin-bottom:10px}.ifl-bus-hotspot b{display:none}.ifl-bus-hotspot{width:30px;padding:0;justify-content:center}.ifl-bus-inspector{right:13px;max-width:none}}

/* Bus project uses the Hub content area and preserves the mounted Angular page. */
app-layoutdrivershub main>[data-ifl-bus-hidden]{display:none!important}
#ifl-bus-page.ifl-bus-page{position:relative;z-index:auto;inset:auto;width:100%;box-sizing:border-box;overflow:visible;padding:24px clamp(12px,2vw,32px) 32px;min-height:60vh;border-radius:16px}
#ifl-bus-page.is-locked .ifl-close{position:absolute;top:16px;right:16px}
@media(max-width:600px){#ifl-bus-page.ifl-bus-page{padding:16px 10px 24px;border-radius:10px}}
