/* DEMO C2 · Vòng thẻ quanh Trái Đất — loaded after journey.css on /ve-pow/demo-c2/ only.
   Boarding = the Earth in the middle, a thin dashed orbit and ten cards on it. The card in front is big, flat and easy to read; its neighbours are smaller; the far ones are a number and a label.
   Phones and tablets: the Earth on top with a tilted orbit and ten dots, one large card under it in a swipe-snap row. (Dark only, not themed: the test walkers skip /ve-pow/.)
   The cabin is pinned to the viewport, so the numbers JS puts in --c2-* (centre of the Earth, its radius, the ellipse of the orbit) are viewport pixels. */

/* ---------- boarding hides the old panel, deck, window furniture and the still of the scene ---------- */
.jr-cabin.is-live[data-demo=c2][data-state=intro]::after{display:none!important}
.jr-cabin.is-live[data-demo=c2][data-state=intro] :is(.jr-console,.jr-deck,.jr-window,.jr-moons,.jr-pins,.jr-lock,.jr-cap,.jr-orbfall){visibility:hidden!important;pointer-events:none!important}

.c2{display:none;position:absolute;inset:0;z-index:4;pointer-events:none;color:var(--text);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}
.jr-cabin.is-live[data-demo=c2][data-state=intro] .c2,.jr-cabin.is-live[data-demo=c2] .c2.is-leaving{display:block}
.c2 :is(button,a):focus-visible{outline:3px solid #fff;outline-offset:3px}

/* ---------- title ---------- */
.c2-head{position:absolute;left:0;right:0;top:calc(var(--hh) + 14px);z-index:2;padding:0 20px;text-align:center;pointer-events:none}
.c2-head::before{content:'';position:absolute;z-index:-1;inset:-20px -8% -26px;background:radial-gradient(ellipse 52% 50% at 50% 50%,#050b17cc,#050b1700 74%)}
.c2-kicker{margin:0;font-size:13px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--accent,#72eaff)}
.c2-title{margin:8px 0 0;font-size:clamp(38px,min(5vw,7.4vh),72px);font-weight:800;line-height:1.05;letter-spacing:-.035em;color:#fff;text-shadow:0 2px 26px #02050c,0 0 3px #02050ccc}
.c2-sub{margin:10px auto 0;max-width:660px;text-wrap:balance;font-size:clamp(18px,1.4vw,20px);line-height:1.4;color:#dbe7f4;text-shadow:0 1px 14px #02050c,0 0 3px #02050c99}

/* the Earth stand-in: until the 3D scene is up, and when there is no 3D at all */
.c2-sky{display:none}
.c2-earth{position:absolute;left:calc(var(--c2-cx,50%) - var(--c2-r,0px));top:calc(var(--c2-cy,50%) - var(--c2-r,0px));--os:calc(2*var(--c2-r,0px));--planet:#4aa3ff;z-index:0;box-shadow:0 0 0 1px #ffffff1c,0 0 90px #4aa3ff40;pointer-events:none;transition:opacity .7s}
.c2-earth::before{animation:jr-spin 140s linear infinite}
.jr-cabin.is-live.is-3d .c2-earth{opacity:0}

/* ---------- the orbit: a thin dashed ellipse; the back half goes behind the Earth ---------- */
.c2-stage{position:absolute;inset:0;pointer-events:auto;cursor:grab;touch-action:pan-y;-webkit-user-select:none;user-select:none}
.c2.is-drag .c2-stage{cursor:grabbing}
.c2-orbit{position:absolute;left:calc(var(--c2-cx,50%) - var(--c2-rx,0px));top:calc(var(--c2-cy,50%) - var(--c2-ry,0px));width:calc(2*var(--c2-rx,0px));height:calc(2*var(--c2-ry,0px));border:1.5px dashed #72eaff8a;border-radius:50%;pointer-events:none;z-index:1}
.c2-orbit.is-back{clip-path:inset(0 0 50% 0);-webkit-mask-image:radial-gradient(circle at 50% 50%,#0000 calc(var(--c2-r,0px) - 1px),#000 var(--c2-r,0px));mask-image:radial-gradient(circle at 50% 50%,#0000 calc(var(--c2-r,0px) - 1px),#000 var(--c2-r,0px))}
.c2-orbit.is-front{clip-path:inset(50% 0 0 0)}
.c2-dotsorbit{display:none}

/* ---------- the cards ---------- */
.c2-cards{position:absolute;inset:0}
.c2-card{position:absolute;left:0;top:0;box-sizing:border-box;width:var(--c2-w,320px);display:flex;flex-direction:column;padding:18px 18px 18px;border:1.5px solid color-mix(in srgb,var(--planet,#72eaff) 55%,#0a1626);border-radius:20px;background:color-mix(in srgb,var(--planet,#72eaff) 11%,#0a1626);box-shadow:0 18px 40px -16px #000d;color:#fff;font-family:inherit;text-align:left;cursor:pointer;transform-origin:50% 40px;will-change:transform,opacity;pointer-events:auto}
.c2-card[data-behind]{pointer-events:none;-webkit-mask-image:radial-gradient(circle at var(--mx,0px) var(--my,0px),#0000 calc(var(--mr,0px) - 1px),#000 var(--mr,0px));mask-image:radial-gradient(circle at var(--mx,0px) var(--my,0px),#0000 calc(var(--mr,0px) - 1px),#000 var(--mr,0px))}
.c2-top{display:flex;align-items:center;gap:12px;min-height:44px}
.c2-orb{--os:44px;flex:none}
.c2-meta{display:flex;flex-direction:column;gap:3px;min-width:0}
.c2-no{font-size:15px;font-weight:700;line-height:1.2;color:#fff;font-variant-numeric:tabular-nums}
.c2-of{font-weight:500;color:#b4c6da}
.c2-tag{font-style:normal;font-size:13.5px;font-weight:700;line-height:1.2;letter-spacing:.1em;text-transform:uppercase;color:color-mix(in srgb,var(--planet,#72eaff) 62%,#fff)}
.c2-text{margin:12px 0 0;font-size:22px;font-weight:600;line-height:1.35;color:#fff;overflow-wrap:break-word}
.c2-go{display:none}

/* the one in front: flat, opaque, easy to read */
.c2-card[data-st=front]{border-color:var(--planet,#72eaff);box-shadow:0 0 0 1px color-mix(in srgb,var(--planet,#72eaff) 36%,#0000),0 0 44px -10px color-mix(in srgb,var(--planet,#72eaff) 60%,#0000),0 26px 50px -16px #000e;cursor:default}
.c2-card[data-st=front] .c2-orb::before{animation:jr-spin 90s linear infinite}
.c2-card[data-st=front] .c2-go{display:flex;align-items:center;justify-content:center;gap:8px;box-sizing:border-box;width:100%;min-height:52px;margin-top:16px;padding:0 16px;border:0;border-radius:14px;background:#72eaff;color:#04101a;font-family:inherit;font-size:16px;font-weight:700;line-height:1;cursor:pointer;transition:background .2s,transform .2s}
.c2-card[data-st=front] .c2-go:hover{background:#a2f2ff}
.c2-card[data-st=front] .c2-go:active{transform:scale(.985)}

/* its neighbours: number, label and the sentence in at most three lines (the card is drawn at 3/4 size, so 20px reads as 15px) */
.c2-card[data-st=near]{padding-bottom:16px}
.c2-card[data-st=near] .c2-w,.c2-card[data-st=near] .c2-of{display:none}
.c2-card[data-st=near] .c2-no{font-size:20px}
.c2-card[data-st=near] .c2-tag{font-size:16px}
.c2-card[data-st=near] .c2-text{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden;margin-top:10px;font-size:20px;font-weight:500;line-height:1.35;color:#eef4fb}

/* the far ones: a number and a label, at 14px whatever their size on the ring */
.c2-card[data-st=far]{padding-bottom:16px;box-shadow:none}
.c2-card[data-st=far] .c2-w,.c2-card[data-st=far] .c2-of,.c2-card[data-st=far] .c2-text{display:none}
.c2-card[data-st=far] .c2-no{font-size:calc(15px/var(--s,.58))}
.c2-card[data-st=far] .c2-tag{font-size:calc(14px/var(--s,.58))}
.c2[data-mode=ring] .c2-card[data-st=far][data-side=r] .c2-top{justify-content:flex-end}

/* ---------- arrows, hint, number bar ---------- */
.c2-arrow{position:absolute;z-index:120;top:calc(var(--c2-cy,0px) + var(--c2-r,0px)*.5 + var(--c2-hf,0px) - 98px);display:grid;place-items:center;width:56px;height:56px;padding:0;border:1.5px solid #72eaff8c;border-radius:50%;background:#071322f0;color:#72eaff;box-shadow:0 12px 30px -10px #000;cursor:pointer;pointer-events:auto;transition:background .2s,color .2s,transform .2s}
.c2-arrow.is-prev{left:calc(var(--c2-cx,50%) - var(--c2-w,320px)/2 - 76px)}
.c2-arrow.is-next{left:calc(var(--c2-cx,50%) + var(--c2-w,320px)/2 + 20px)}
.c2-arrow:hover{background:#72eaff;color:#04101a}
.c2-arrow:active{transform:scale(.94)}
.c2-foot{position:absolute;left:0;right:0;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:130;display:flex;flex-direction:column;align-items:center;gap:6px;pointer-events:none}
.c2-hint{margin:0;padding:0 16px;font-size:15px;line-height:1.35;text-align:center;color:#c8d7e8;text-shadow:0 1px 12px #02050c,0 0 3px #02050c;transition:opacity .5s}
.c2-hint.is-gone{opacity:0}
.c2-nums{display:flex;gap:2px;max-width:calc(100vw - 20px);margin:0;padding:4px;overflow-x:auto;list-style:none;border:1px solid #72eaff3d;border-radius:999px;background:#07111ff0;box-shadow:0 10px 30px -12px #000;scrollbar-width:none;pointer-events:auto}
.c2-nums::-webkit-scrollbar{display:none}
.c2-nums li{flex:none;display:block}
.c2-nums button{display:block;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:none;color:#d3e1f1;font-family:inherit;font-size:16px;font-weight:600;font-variant-numeric:tabular-nums;cursor:pointer;transition:background .2s,color .2s}
.c2-nums button:hover{background:#72eaff2a;color:#fff}
.c2-nums button[aria-current=true]{background:#72eaff;color:#04101a;font-weight:700}

/* ---------- coming and going ---------- */
@keyframes c2-in{from{opacity:0;translate:0 26px}}
@keyframes c2-fade{from{opacity:0}}
@keyframes c2-out{to{opacity:0;translate:0 26px}}
@keyframes c2-out-fade{to{opacity:0}}
.c2.is-entering .c2-card{animation:c2-in .6s cubic-bezier(.2,.8,.2,1) calc(var(--c2-wait,.15s) + var(--c2-d,0s)) backwards}
.c2.is-entering :is(.c2-head,.c2-foot,.c2-arrow,.c2-orbit,.c2-dotsorbit){animation:c2-fade .6s ease var(--c2-wait,.15s) backwards}
.c2.is-leaving{pointer-events:none}
.c2.is-leaving .c2-card{animation:c2-out .36s cubic-bezier(.4,0,1,1) forwards}
.c2.is-leaving :is(.c2-head,.c2-foot,.c2-arrow,.c2-orbit,.c2-dotsorbit,.c2-earth){animation:c2-out-fade .3s ease forwards}

/* ---------- phones and tablets (and short landscape windows): the Earth on top, one large card in a swipe-snap row ---------- */
.jr-cabin.is-live[data-demo=c2][data-state=intro] .c2[data-mode=rail],.jr-cabin.is-live[data-demo=c2] .c2.is-leaving[data-mode=rail]{display:flex;flex-direction:column;padding:calc(var(--hh) + 6px) 0 calc(10px + env(safe-area-inset-bottom,0px))}
.c2[data-mode=rail]{--c2-cw:min(calc(100vw - 52px),520px)}
.c2[data-mode=rail] .c2-head{position:relative;top:auto;flex:none;padding:0 16px}
.c2[data-mode=rail] .c2-kicker{font-size:12px}
.c2[data-mode=rail] .c2-title{margin-top:4px;font-size:clamp(26px,8.4vw,52px)}
.c2[data-mode=rail] .c2-sub{margin-top:6px;max-width:34ch;font-size:16px;line-height:1.35}
.c2[data-mode=rail] .c2-sky{display:block;flex:1 1 0;min-height:92px}
.c2[data-mode=rail] .c2-stage{display:contents}
.c2[data-mode=rail] .c2-orbit{transform:rotate(var(--c2-tilt,0deg));transform-origin:50% 50%;border-width:1px;border-color:#72eaff52}
.c2[data-mode=rail] .c2-dotsorbit{display:block}
.c2[data-mode=rail] .c2-dotsorbit i{position:absolute;z-index:2;left:var(--x,0px);top:var(--y,0px);width:7px;height:7px;margin:-3.5px 0 0 -3.5px;border-radius:50%;background:#72eaff80;pointer-events:none;transition:width .3s,height .3s,margin .3s,background .3s,box-shadow .3s,opacity .3s}
.c2[data-mode=rail] .c2-dotsorbit i.is-lit{width:14px;height:14px;margin:-7px 0 0 -7px;background:#72eaff;box-shadow:0 0 0 3px #72eaff33,0 0 16px #72eaff}
.c2[data-mode=rail] .c2-dotsorbit i.is-hid{opacity:0}
.c2[data-mode=rail] .c2-arrow{display:none}
.c2[data-mode=rail] .c2-cards{position:relative;inset:auto;flex:none;display:flex;gap:10px;padding:4px calc((100vw - var(--c2-cw))/2) 12px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;pointer-events:auto;cursor:default}
.c2[data-mode=rail] .c2-cards::-webkit-scrollbar{display:none}
.c2[data-mode=rail] .c2-card{position:relative;flex:none;width:var(--c2-cw);transform:none;scroll-snap-align:center;scroll-snap-stop:always;opacity:.55;cursor:pointer;transition:opacity .3s}
.c2[data-mode=rail] .c2-card.is-cur{opacity:1}
.c2[data-mode=rail] .c2-card{box-shadow:none}
.c2[data-mode=rail] .c2-card[data-st=front]{box-shadow:0 0 0 1px color-mix(in srgb,var(--planet,#72eaff) 36%,#0000)}
.c2[data-mode=rail] .c2-card[data-st=front] .c2-go{min-height:52px}
.c2[data-mode=rail] .c2-text{font-size:20px}
.c2[data-mode=rail] .c2-foot{position:relative;inset:auto;flex:none;padding:0 10px;gap:4px;z-index:2}
.c2[data-mode=rail] .c2-hint{font-size:15px}
.c2[data-mode=rail] .c2-card:not(.is-cur) .c2-go{pointer-events:none}

/* tablets in portrait */
@media(min-width:600px){
.c2[data-mode=rail] .c2-title{font-size:clamp(40px,6.4vw,60px)}
.c2[data-mode=rail] .c2-sub{max-width:44ch;font-size:19px}
.c2[data-mode=rail] .c2-text{font-size:23px}
.c2[data-mode=rail] .c2-no{font-size:16px}
.c2[data-mode=rail] .c2-tag{font-size:14px}
}
/* short phones: the sub-line gives its room to the Earth */
@media(max-width:599.98px) and (max-height:700px){
.c2[data-mode=rail] .c2-sub{display:none}
}
@media(max-width:599.98px) and (max-height:600px){
.c2[data-mode=rail] .c2-kicker{display:none}
.c2[data-mode=rail] .c2-hint{display:none}
}

/* short landscape windows: the title and the Earth on the left, the cards on the right */
.jr-cabin.is-live[data-demo=c2][data-state=intro] .c2[data-mode=rail][data-land="1"],.jr-cabin.is-live[data-demo=c2] .c2.is-leaving[data-mode=rail][data-land="1"]{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,min(52%,560px));grid-template-rows:auto minmax(0,1fr) auto;padding-top:calc(var(--hh) + 2px);column-gap:8px}
.c2[data-mode=rail][data-land="1"]{--c2-cw:calc(min(52vw,560px) - 56px)}
.c2[data-mode=rail][data-land="1"] .c2-head{grid-column:1;grid-row:1;text-align:left;padding:0 8px 0 24px}
.c2[data-mode=rail][data-land="1"] .c2-title{font-size:clamp(26px,4.6vw,44px)}
.c2[data-mode=rail][data-land="1"] .c2-sub{margin-left:0;font-size:15px}
.c2[data-mode=rail][data-land="1"] .c2-sky{grid-column:1;grid-row:2/4}
.c2[data-mode=rail][data-land="1"] .c2-cards{grid-column:2;grid-row:1/3;align-self:center;padding-inline:28px}
.c2[data-mode=rail][data-land="1"] .c2-foot{grid-column:2;grid-row:3}
.c2[data-mode=rail][data-land="1"] .c2-text{font-size:18px}
.c2[data-mode=rail][data-land="1"] .c2-card[data-st=front] .c2-go{margin-top:10px}

@media(prefers-reduced-motion:reduce){
.c2 *,.c2 *::before{animation:none!important;transition:none!important}
}
