:root{--color-bg:#fafaf7;--color-surface:#fff;--color-fg:#14213d;--color-muted:#4a5568;--color-accent:#0b6e4f;--color-focus:#0b6e4f;--color-border:#d6d3cc;--font-sans:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--text-sm:.9375rem;--text-base:1rem;--text-md:1.125rem;--text-lg:1.25rem;--text-xl:1.375rem;--text-2xl:clamp(2rem, 5vw, 3rem);--space-1:.5rem;--space-2:1rem;--space-3:1.5rem;--space-4:2.5rem;--space-5:4rem;--radius:6px;--measure:62ch}@media (prefers-color-scheme:dark){:root{--color-bg:#0f172a;--color-surface:#16213b;--color-fg:#f1f5f9;--color-muted:#cbd5e1;--color-accent:#5eead4;--color-focus:#5eead4;--color-border:#334155}}*,:before,:after{box-sizing:border-box}html{color-scheme:light dark;font-family:var(--font-sans);-webkit-text-size-adjust:100%;font-size:100%;line-height:1.55}body{background:var(--color-bg);color:var(--color-fg);flex-direction:column;min-height:100dvh;margin:0;display:flex}a{color:var(--color-accent);text-underline-offset:.15em;text-decoration:underline}a:hover{text-decoration-thickness:2px}:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}.skip-link{left:var(--space-2);background:var(--color-surface);color:var(--color-fg);padding:var(--space-1) var(--space-2);border:2px solid var(--color-accent);border-radius:var(--radius);z-index:10;position:absolute;top:-100px}.skip-link:focus{top:var(--space-2)}.wrap{width:100%;max-width:var(--measure);padding-inline:var(--space-2);margin-inline:auto}header.site{padding-block:var(--space-3);border-bottom:1px solid var(--color-border)}header.site .wrap{justify-content:space-between;align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}nav.primary{align-items:center;gap:var(--space-3);font-size:var(--text-sm);flex-wrap:wrap;display:flex}nav.primary a{color:var(--color-fg);text-decoration:none}nav.primary a:hover{text-decoration:underline}nav.primary a.cta{color:var(--color-bg);background:var(--color-accent);border-radius:var(--radius);padding:.5em 1em;font-weight:600}nav.primary a.cta:hover{filter:brightness(1.08);text-decoration:none}@media (width<=640px){header.site{position:relative}header.site .wrap{flex-direction:column;align-items:flex-start;padding-inline-end:calc(var(--space-2) + 11.5rem)}nav.primary{gap:var(--space-2);width:calc(100% + 11.5rem);padding-inline-end:0}nav.primary a.cta{top:calc(var(--space-3) - .3rem);right:var(--space-2);position:absolute}}nav.legal{gap:var(--space-2);font-size:var(--text-sm);flex-wrap:wrap;margin-block-start:var(--space-1);display:flex}header.site .brand{font-weight:700;font-size:var(--text-md);letter-spacing:.01em;align-items:center;gap:.4em;text-decoration:none;display:inline-flex}.brand .brand-mark{width:1.4em;height:1.4em;display:block}.brand .brand-cruz{color:var(--color-fg)}.brand .brand-link{color:var(--color-accent)}main{padding-block:var(--space-4);flex:1}h1{font-size:var(--text-2xl);margin:0 0 var(--space-2);line-height:1.1}h2{font-size:var(--text-xl);margin:var(--space-4) 0 var(--space-1)}p{margin:0 0 var(--space-2);max-width:var(--measure)}.lede{font-size:var(--text-lg);color:var(--color-muted)}.notice{border:1px solid var(--color-border);border-left:4px solid var(--color-accent);background:var(--color-surface);padding:var(--space-2);border-radius:var(--radius);margin-block:var(--space-3)}footer.site{border-top:1px solid var(--color-border);padding-block:var(--space-3);color:var(--color-muted);font-size:var(--text-sm)}footer.site code{font-family:var(--font-mono);font-size:.875em}.badge{letter-spacing:.04em;text-transform:uppercase;border-radius:var(--radius);border:1px solid;padding:.2em .6em;font-size:.75rem;font-weight:700;display:inline-block}.badge-simulated{color:var(--color-accent)}.badge-roadmap{color:var(--color-muted)}form.stack{gap:var(--space-3);max-width:var(--measure);flex-direction:column;display:flex}.field{flex-direction:column;gap:.35rem;display:flex}.field label{font-weight:600;font-size:var(--text-base)}.field .hint{font-size:var(--text-sm);color:var(--color-muted)}.field input,.field select,.field textarea{font:inherit;color:var(--color-fg);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:.65em .75em}.field textarea{resize:vertical;min-height:6rem}.field .error{font-size:var(--text-sm);font-weight:600}.field .error:before{content:"Error: "}fieldset{border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-2);margin:0}fieldset legend{padding-inline:.3em;font-weight:600}.radio-row{align-items:center;gap:.5em;padding-block:.2em;display:flex}.radio-row input{width:1.1em;height:1.1em}button.btn,input[type=submit]{font:inherit;color:var(--color-bg);background:var(--color-accent);border-radius:var(--radius);cursor:pointer;border:none;align-self:flex-start;padding:.75em 1.5em;font-weight:700}button.btn:hover,input[type=submit]:hover{filter:brightness(1.08)}.card-grid{gap:var(--space-3);margin-block:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(260px,1fr));display:grid}.card{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);flex-direction:column;display:flex;overflow:hidden}.card img{border-bottom:1px solid var(--color-border);width:100%;height:auto;display:block}.card .card-body{padding:var(--space-2);flex-direction:column;gap:.4em;display:flex}.card .card-body h3{font-size:var(--text-base);margin:0}.card .card-body p{font-size:var(--text-sm);color:var(--color-muted);margin:0}table.field-table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}table.field-table caption{text-align:left;font-weight:700;font-size:var(--text-base);margin-block-end:var(--space-1)}table.field-table th,table.field-table td{text-align:left;border-bottom:1px solid var(--color-border);vertical-align:top;padding:.5em .75em}table.field-table th{text-transform:uppercase;letter-spacing:.03em;color:var(--color-muted);font-size:.8125rem}.table-scroll{overflow-x:auto}pre.code{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-2);font-family:var(--font-mono);font-size:.8125rem;line-height:1.5;overflow-x:auto}.checklist{gap:var(--space-1);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.checklist li{border-bottom:1px solid var(--color-border);padding-block:.5em}:root{--hero-veil:#14213d;--hero-ink:#fafaf7;--hero-muted-ink:#cbd5e1;--hero-cta-bg:#5eead4;--hero-cta-fg:#14213d;--hero-line:#5eead4;--hero-panel:#0f172ae0;--hero-panel-border:#334155;--text-3xl:clamp(1.6rem, 2.2vw + 1rem, 3.75rem)}main.has-hero{padding-block-start:0}.hero{color:var(--hero-ink);margin-block-end:var(--space-5)}.act{--p:1;position:relative}.act .stage{background:var(--hero-veil);position:relative;overflow:hidden}.act .media{position:absolute;inset:0}.act .media picture,.act .media img{width:100%;height:100%;position:absolute;inset:0}.act .media img{object-fit:cover;display:block}.act .veil{background:linear-gradient(180deg, color-mix(in srgb, var(--hero-veil) 90%, transparent) 0%, color-mix(in srgb, var(--hero-veil) 84%, transparent) 40%, color-mix(in srgb, var(--hero-veil) 45%, transparent) 70%, color-mix(in srgb, var(--hero-veil) 20%, transparent) 100%);position:absolute;inset:0}.act .content{width:100%;max-width:var(--measure);padding:var(--space-3) var(--space-2) var(--space-4);margin-inline:auto;position:relative}.act h1,.act h2{font-size:var(--text-3xl);margin:0 0 var(--space-2);text-wrap:balance;color:var(--hero-ink);line-height:1.08}.act p{color:var(--hero-ink)}.act .aside{color:var(--hero-muted-ink);font-size:var(--text-sm)}.act .cta,.act .btn{background:var(--hero-cta-bg);color:var(--hero-cta-fg);font:inherit;border:1px solid var(--hero-cta-bg);border-radius:var(--radius);cursor:pointer;padding:.75em 1.5em;font-weight:700;text-decoration:none;display:inline-block}.act .cta:hover,.act .btn:hover{filter:brightness(1.08);text-decoration:underline}.act .btn.alt{color:var(--hero-cta-bg);background:0 0}.act .sec{color:var(--hero-cta-bg);font-weight:600}.act :focus-visible{outline-color:var(--hero-ink)}.ctas{gap:var(--space-2);margin:0 0 var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.badge-hero{letter-spacing:.04em;text-transform:uppercase;border-radius:var(--radius);color:var(--hero-cta-bg);border:1px solid;padding:.15em .55em;font-size:.7rem;font-weight:700;display:inline-block}.panel-list{font-size:var(--text-sm);flex-direction:column;gap:.45rem;margin:0;padding:0;list-style:none;display:flex}.panel-list li{background:var(--hero-panel);border:1px solid var(--hero-panel-border);border-radius:var(--radius);padding:.45rem .7rem}.panel-list b{color:var(--hero-ink)}.panel-list span,.panel-list i{color:var(--hero-muted-ink);font-style:normal}.act-0 .stage{min-height:clamp(420px,78svh,760px)}.act-0 .content{padding-block-start:clamp(3.5rem,9vh,6rem)}.act-0 h1{max-width:24ch}.act-0 .cue{font-size:var(--text-sm);color:var(--hero-muted-ink);margin:0}.act-1 .grid,.act-2 .grid{gap:var(--space-3);grid-template-columns:1fr;display:grid}@media (width>=900px){.act-1 .content,.act-3 .content{max-width:1100px}.act-2 .content{max-width:1240px}.act-1 .grid{grid-template-columns:1fr 1fr;align-items:center}.act-2 .grid{grid-template-columns:1.7fr 1fr;align-items:center}}.tiles li{--t:clamp(0, calc((var(--p) - var(--i) * .13 - .2) / .1), 1);opacity:var(--t);transform:translateY(calc((1 - var(--t)) * 20px));gap:.1rem;display:grid}.tiles li:first-child{--i:0}.tiles li:nth-child(2){--i:1}.tiles li:nth-child(3){--i:2}.tiles li:nth-child(4){--i:3}.tiles li:nth-child(5){--i:4}.tiles .badge-hero{justify-self:start}.act-1 .media .then img{opacity:clamp(0, calc(1 - var(--p) / .6), 1);filter:sepia()saturate(1.5)brightness(.92)contrast(1.08)}.act-1 .media .now img{filter:sepia(calc(.6 - .6 * clamp(0, calc(var(--p) / .6), 1))) saturate(calc(.35 + .75 * clamp(0, calc(var(--p) / .6), 1)))}.map{width:100%;height:auto;font-family:var(--font-sans);display:block}.map .sea{fill:var(--hero-veil)}.map .coast{fill:var(--hero-panel);stroke:var(--hero-line);stroke-width:1.4px;stroke-linejoin:round}.map .road-minor{fill:none;stroke:var(--hero-muted-ink);stroke-width:.8px;opacity:.45}.map .road-70{fill:none;stroke:var(--hero-muted-ink);stroke-width:1.8px;opacity:.9}.map .road-66{fill:none;stroke:var(--hero-ink);stroke-width:3px;stroke-linecap:round}.map .ring{fill:none;stroke:var(--hero-line);stroke-width:1.2px;stroke-dasharray:3 5;opacity:.55}.map .cable{fill:none;stroke-width:2px;stroke-linecap:round}.map .cable-fact{stroke:var(--hero-line);opacity:.9}.map .cable-schematic{stroke:var(--hero-line);stroke-dasharray:4 6;opacity:.55}.map .cable-retired{stroke:var(--hero-muted-ink);stroke-dasharray:2 6;opacity:.5}.map .cirion-box{fill:var(--hero-panel);stroke:var(--hero-line);stroke-width:1px;stroke-dasharray:4 4}.map .sea-lane{fill:none;stroke:var(--hero-line);stroke-width:2px;stroke-dasharray:6 8;opacity:.6}.map .channel{fill:none;stroke:var(--hero-line);stroke-width:6px;opacity:.3}.map .wire{fill:none;stroke:var(--hero-line);stroke-width:2.5px;stroke-dasharray:1;stroke-dashoffset:clamp(0, calc(1 - (var(--p) - .2) / .06), 1);opacity:calc(.35 + .65 * clamp(0, calc((var(--p) - .2) / .06), 1))}.map .wire-back{stroke-dashoffset:clamp(0, calc(1 - (var(--p) - .26) / .06), 1);opacity:clamp(0, calc((var(--p) - .26) / .06), 1)}.map .corridor{fill:none;stroke:var(--hero-line);stroke-width:6px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:clamp(0, calc(1 - (var(--p) - .32) / .56), 1)}.map .pin circle{fill:var(--hero-line);stroke:var(--hero-veil);stroke-width:3px;transform-box:fill-box;transform-origin:50%;transform:scale(var(--s,1))}.map .pin .lbl{fill:var(--hero-ink);opacity:var(--s,1);font-size:22px;font-weight:700}.map .pin{--s:clamp(0, calc((var(--p) - var(--at)) / .04), 1)}.map .pin[data-at="1"]{--at:.12}.map .pin[data-at="4"]{--at:.65}.map .pin[data-at="5"]{--at:.9}.map .mark{fill:var(--hero-muted-ink);stroke:var(--hero-veil);stroke-width:2px}.map .mark-faint{opacity:.6}.map .mark-landing{fill:var(--hero-line)}.map .town{fill:var(--hero-ink);paint-order:stroke;stroke:var(--hero-veil);stroke-width:3px;font-size:15px;font-weight:700}.map .lbl-sm{fill:var(--hero-ink);font-size:13px;font-weight:700}.map .lbl-xs{fill:var(--hero-muted-ink);paint-order:stroke;stroke:var(--hero-veil);stroke-width:3px;font-size:11px}.map .cable-lbl-retired{opacity:.7}.map .vessel{fill:var(--hero-ink);stroke:var(--hero-veil);stroke-width:2px;opacity:clamp(0, calc(1 - (var(--p) - .2) / .12), 1)}.map .token{fill:var(--hero-line);stroke:var(--hero-veil);stroke-width:4px;opacity:clamp(0, calc((var(--p) - .3) / .04), 1)}.map .token-halo{fill:var(--hero-line);opacity:.25}.map #vessel-halo{opacity:calc(.25 * clamp(0, calc(1 - (var(--p) - .2) / .12), 1))}.map #route-halo{opacity:calc(.25 * clamp(0, calc((var(--p) - .3) / .04), 1))}.map .pulse{fill:var(--hero-ink);stroke:var(--hero-line);stroke-width:2px;opacity:clamp(0, calc((var(--p) - .2) / .02), 1)}.map .pulse-back{opacity:clamp(0, calc((var(--p) - .26) / .02), 1)}.stops li{--s:clamp(0, calc((var(--p) - var(--at)) / .04), 1);opacity:calc(.78 + .22 * var(--s));transform:translateX(calc((1 - var(--s)) * -12px));border-inline-start:4px solid color-mix(in srgb, var(--hero-line) calc(var(--s) * 100%), var(--hero-panel-border));grid-template-columns:auto 1fr;align-items:baseline;gap:.5rem;display:grid}.stops li:first-child{--at:.14}.stops li:nth-child(2){--at:.3}.stops li:nth-child(3){--at:.38}.stops li:nth-child(4){--at:.65}.stops li:nth-child(5){--at:.9}.stops li:nth-child(6){--at:.97}.stops .n{color:var(--hero-line);font-weight:800}.stops i{display:block}.beats{margin:var(--space-2) 0 0;flex-wrap:wrap;gap:.35rem;padding:0;font-size:.72rem;list-style:none;display:flex}.beats li{--b:clamp(0, calc((var(--p) - var(--from)) / .03), 1);border:1px solid color-mix(in srgb, var(--hero-line) calc(var(--b) * 100%), var(--hero-panel-border));border-radius:var(--radius);color:var(--hero-muted-ink);background:var(--hero-panel);padding:.25rem .55rem}.beats li:first-child{--from:0}.beats li:nth-child(2){--from:.12}.beats li:nth-child(3){--from:.2}.beats li:nth-child(4){--from:.32}.beats li:nth-child(5){--from:.4}.beats li:nth-child(6){--from:.66}.beats li:nth-child(7){--from:.85}.sources{color:var(--hero-muted-ink);margin:var(--space-2) 0 0;font-size:.75rem}.act-3 .media .now img{opacity:clamp(0, calc((var(--p) - .6) / .4), 1)}.blocks{margin:0 0 var(--space-2);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.6rem;padding:0;list-style:none;display:grid}.blk{--s:clamp(0, calc((var(--p) - var(--i) * .1 - .05) / .08), 1);opacity:var(--s);transform:translateY(calc((1 - var(--s)) * 16px));background:var(--hero-panel);border:1px solid var(--hero-panel-border);border-radius:var(--radius);gap:.15rem;padding:.55rem .65rem;font-size:.8rem;display:grid;position:relative}.blk:first-child{--i:0}.blk:nth-child(2){--i:1}.blk:nth-child(3){--i:2}.blk:nth-child(4){--i:3}.blk:nth-child(5){--i:4}.blk .k{color:var(--hero-line);font-weight:800}.blk .r,.blk .t,.blk .tag{color:var(--hero-muted-ink)}.blk .tag{font-weight:700}.blk code{font-family:var(--font-mono);word-break:break-all;color:var(--hero-ink);font-size:.66rem;line-height:1.3}.blk:before{content:"";background:var(--hero-line);width:.6rem;height:2px;transform:scaleX(var(--s));transform-origin:0;position:absolute;top:50%;left:-.6rem}.blk:first-child:before{display:none}.blk.bad{border-style:dashed;border-color:var(--hero-muted-ink)}.blk.bad .k{color:var(--hero-muted-ink)}.blk.bad:before{background:var(--hero-muted-ink)}.demo-ctl{margin:0 0 var(--space-2);flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.demo-ctl [role=status]{color:var(--hero-ink);font-weight:700}:root:not(.hero-js) .demo-ctl,:root.hero-js .needs-js{display:none}:root.hero-motion .act[data-pin]{--p:0;height:140svh}:root.hero-motion .act[data-pin] .stage{align-items:center;min-height:100svh;display:flex;position:sticky;top:0}@media (width<=899px){.map .lbl-xs,.map .lbl-sm,.map .cirion-box,.map .town-secondary{display:none}.map .town{font-size:24px}.map .pin .lbl{font-size:30px}:root.hero-motion .act[data-pin]{height:170svh}:root.hero-motion .act[data-pin] .stage{align-items:flex-start}}:root.hero-motion .act .media img{will-change:opacity, filter}.photo-credit{font-size:var(--text-sm);color:var(--color-muted);margin-block-start:var(--space-4)}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}:root.hero-motion .act[data-pin],.act[data-pin]{--p:1!important;height:auto!important}:root.hero-motion .act[data-pin] .stage,.act[data-pin] .stage{min-height:0!important;position:relative!important}.act-1 .media .then{display:none}}
