/* AppHalt project story — product-state morph from need to shipped macOS app. */
.ah-story{--ah-ink:#172246;--ah-blue:#3158f4;--ah-light:#eef2fb;--ah-dark:#121a3c;position:relative;overflow:clip;background:var(--ah-light);color:var(--ah-ink)}
.ah-story *{box-sizing:border-box}
.ah-story>.project-brief{position:relative;z-index:2}
.ah-brief-brand{display:inline-flex;align-items:center;gap:12px;text-align:left}
.ah-brief-brand>img{display:block;width:44px;height:44px;border-radius:0;box-shadow:none}
.ah-brief-brand>span{display:grid;gap:2px}
.ah-brief-brand small{font:500 12px/1.3 var(--sans,Arial,sans-serif);color:var(--story-end-muted,#526078)}
.ah-track{display:none;position:relative;background:var(--ah-dark)}
.ah-story[data-ah-ready] .ah-track{display:block}
.ah-stage{position:sticky;top:72px;height:calc(100svh - 72px);min-height:570px;overflow:hidden;isolation:isolate;background:var(--ah-dark);color:#f7f9ff}
.ah-stage:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(132deg,#111936 0%,#17234b 58%,#121a3c 100%);transition:background .35s ease}
.ah-story[data-ah-phase="1"] .ah-stage:before,.ah-story[data-ah-phase="2"] .ah-stage:before,.ah-story[data-ah-phase="3"] .ah-stage:before{background:linear-gradient(132deg,#f0f3fb 0%,#eaf0fa 58%,#f2f5fc 100%)}
.ah-story[data-ah-phase="1"] .ah-stage,.ah-story[data-ah-phase="2"] .ah-stage,.ah-story[data-ah-phase="3"] .ah-stage{color:#172246}
.ah-story[data-ah-phase="1"] .ah-stage-head,.ah-story[data-ah-phase="2"] .ah-stage-head,.ah-story[data-ah-phase="3"] .ah-stage-head{color:#506b80}
.ah-story[data-ah-phase="1"] .ah-stage-head:after,.ah-story[data-ah-phase="2"] .ah-stage-head:after,.ah-story[data-ah-phase="3"] .ah-stage-head:after{background:#7183a655}
.ah-stage-inner{position:relative;height:100%;display:grid;grid-template-columns:minmax(0,.84fr) minmax(0,1.16fr);align-items:center;gap:clamp(24px,4vw,64px);padding:76px clamp(24px,5vw,76px) 78px}
.ah-stage-head{position:absolute;left:clamp(24px,5vw,76px);right:clamp(24px,5vw,76px);top:22px;display:flex;align-items:center;gap:10px;color:#d8e1fb;font:600 10px/1.3 var(--sans,Arial,sans-serif);letter-spacing:.15em;text-transform:uppercase}
.ah-stage-head img{width:30px;height:30px;border-radius:0;box-shadow:none;background:transparent}
.ah-stage-head:after{content:"";height:1px;flex:1;margin-left:10px;background:#ffffff35}
.ah-narrative{position:relative;min-width:0;min-height:230px}
.ah-beat{position:absolute;inset:50% auto auto 0;width:100%;max-width:490px;visibility:hidden;opacity:0;transform:translate3d(0,calc(-50% + 14px),0);transition:none}
.ah-story[data-ah-phase="0"] .ah-beat--0,.ah-story[data-ah-phase="1"] .ah-beat--1,.ah-story[data-ah-phase="2"] .ah-beat--2,.ah-story[data-ah-phase="3"] .ah-beat--3,.ah-story[data-ah-phase="4"] .ah-beat--4{visibility:visible;opacity:1;transform:translate3d(0,-50%,0);animation:ah-beat-in .4s cubic-bezier(.2,.7,.2,1) both}
@keyframes ah-beat-in{from{opacity:0;transform:translate3d(0,calc(-50% + 14px),0)}to{opacity:1;transform:translate3d(0,-50%,0)}}
.ah-tag{display:block;margin-bottom:16px;color:#8fb7ff;font:700 10px/1.4 var(--sans,Arial,sans-serif);letter-spacing:.17em;text-transform:uppercase}
.ah-beat h3{max-width:15ch;margin:0 0 17px;color:#f7f9ff;font:400 clamp(38px,4.3vw,64px)/1.03 var(--serif,Georgia,serif);letter-spacing:-.055em}
.ah-beat h3 em{color:#b8ceff;font-weight:400}
.ah-beat p{max-width:43ch;margin:0;color:#d6def2;font:400 clamp(15px,1.35vw,18px)/1.62 var(--sans,Arial,sans-serif)}
.ah-beat>small{display:block;max-width:38ch;margin-top:17px;color:#b6c3e0;font:500 11px/1.5 var(--sans,Arial,sans-serif)}
.ah-story[data-ah-phase="1"] .ah-tag,.ah-story[data-ah-phase="2"] .ah-tag,.ah-story[data-ah-phase="3"] .ah-tag{color:#0755ae}
.ah-story[data-ah-phase="1"] .ah-beat h3,.ah-story[data-ah-phase="2"] .ah-beat h3,.ah-story[data-ah-phase="3"] .ah-beat h3{color:#172b56}
.ah-story[data-ah-phase="1"] .ah-beat h3 em,.ah-story[data-ah-phase="2"] .ah-beat h3 em,.ah-story[data-ah-phase="3"] .ah-beat h3 em{color:#3158f4}
.ah-story[data-ah-phase="1"] .ah-beat p,.ah-story[data-ah-phase="2"] .ah-beat p,.ah-story[data-ah-phase="3"] .ah-beat p{color:#465674}
.ah-story[data-ah-phase="1"] .ah-beat>small,.ah-story[data-ah-phase="2"] .ah-beat>small,.ah-story[data-ah-phase="3"] .ah-beat>small{color:#536582}
.ah-canvas{position:relative;display:grid;place-items:center;width:100%;height:min(68vh,500px);min-height:365px;overflow:visible}
.ah-art{position:relative;flex:none;transform-origin:top left;color:var(--ah-art-ink,#17304e);font-family:var(--sans,Arial,sans-serif);isolation:isolate}
.ah-art-head{position:absolute;left:0;right:0;top:-42px;display:flex;align-items:center;justify-content:space-between;color:var(--ah-art-muted,#587087);font:700 9px/1.3 var(--sans,Arial,sans-serif);letter-spacing:.15em;text-transform:uppercase}
.ah-art-head b{font-weight:700;color:var(--ah-art-head-ink,#17304e)}
.ah-wires{position:absolute;inset:0;width:100%;height:100%;overflow:visible;z-index:0;pointer-events:none}
.ah-wires path{fill:none;stroke:var(--ah-art-accent,#155fbd);stroke-width:2.7;stroke-linecap:round;stroke-dasharray:620;stroke-dashoffset:0;opacity:var(--ah-wire-opacity,.9)}
.ah-wires circle{fill:var(--ah-art-accent,#155fbd);stroke:var(--ah-art-paper,#fff);stroke-width:2.5}
.ah-art-caption{position:absolute;left:0;right:0;bottom:-27px;display:flex;justify-content:space-between;gap:12px;color:var(--ah-art-muted,#536582);font:700 9px/1.4 var(--sans,Arial,sans-serif);letter-spacing:.08em;text-transform:uppercase}
.ah-node{position:absolute;top:0;left:0;z-index:2;overflow:hidden;border:1px solid #cedce6;border-top:4px solid var(--ah-art-accent,#26aec2);border-radius:14px;background:#fff;box-shadow:0 15px 42px #061b3825;transform-origin:50% 50%;will-change:transform;transition:none}
.ah-node--b{border-top-color:#3158f4}
.ah-node--c{border-top-width:1px;border-color:#9dadd0;background:#edf3ff}
.ah-node--c .ah-content[data-scene="0"]{gap:6px;padding:clamp(12px,1.8vw,20px)}
.ah-node--c .ah-content[data-scene="1"]{gap:4px;padding:9px 14px}
.ah-node--c .ah-content[data-scene="1"]>small{font-size:8px}
.ah-node--c .ah-content[data-scene="1"]>strong{max-width:none;font-size:18px;line-height:1.12}
.ah-node--c .ah-content[data-scene="2"]{padding:10px 15px;text-align:center}
.ah-node--c .ah-content[data-scene="2"]>strong{max-width:none;font-size:18px;line-height:1.15;text-align:center}
.ah-content{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;gap:8px;padding:clamp(18px,2vw,24px);visibility:hidden;opacity:0;overflow:hidden;color:var(--ah-art-ink,#172246);font:500 13px/1.45 var(--sans,Arial,sans-serif);transition:none}
.ah-content>small{display:block;color:#1453ac;font:700 10px/1.4 var(--sans,Arial,sans-serif);letter-spacing:.12em;text-transform:uppercase}
.ah-content>strong{display:block;max-width:24ch;color:var(--ah-art-ink,#172246);font:700 20px/1.12 var(--sans,Arial,sans-serif);letter-spacing:-.035em}
.ah-content>p{margin:0;color:#455674;font:400 12px/1.45 var(--sans,Arial,sans-serif)}
.ah-content .ah-source{margin-top:auto;color:#536582;font:600 10px/1.35 var(--sans,Arial,sans-serif)}
.ah-content[data-scene="0"]{background:linear-gradient(145deg,#fff,#f5f8fc)}
.ah-content[data-scene="4"]{background:linear-gradient(145deg,#1c2e63,#131d43);color:#fff}
.ah-content[data-scene="4"]>small,.ah-content[data-scene="4"]>p{color:#d1dcf3}
.ah-content[data-scene="4"]>strong{color:#fff}
.ah-content[data-scene="4"] .ah-source{color:#9cb7ca}
.ah-content[data-scene="1"]{background:#fbfdfe}
.ah-wire-head{display:flex;justify-content:space-between;gap:8px;padding-bottom:8px;border-bottom:1px dashed #a9c4d0;color:#4c6a80;font:700 9px/1.3 var(--sans,Arial,sans-serif);letter-spacing:.1em;text-transform:uppercase}
.ah-wire-row{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:31px;padding:6px 9px;border:1px dashed #b3cbd6;border-radius:6px;color:#3d5b70;font-size:11px}
.ah-wire-row i{display:block;width:30px;height:4px;border-radius:4px;background:#b7cbd3}
.ah-wire-action{display:flex;align-items:center;justify-content:center;min-height:28px;border-radius:6px;background:#182653;color:#fff;font-size:10px;font-weight:700}
.ah-wire-state{display:flex;align-items:center;gap:8px;margin-top:3px;padding-top:8px;border-top:1px solid #dce4f3;color:#0755ae;font-size:10px;font-weight:700}
.ah-wire-state i{width:8px;height:8px;border-radius:50%;background:#3158f4;box-shadow:0 0 0 4px #dce6ff}
.ah-ui-image{display:block;width:100%;height:auto;flex:1 1 0;min-height:0;object-fit:contain;background:#f3f5f8;border-radius:4px}
.ah-content[data-scene="2"]{gap:6px;padding:12px}
.ah-ui-caption{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#4e5e79;font:600 10px/1.35 var(--sans,Arial,sans-serif)}
.ah-test-list{display:grid;gap:7px;margin:1px 0 0;padding:0;list-style:none}
.ah-test-list li{display:flex;align-items:center;gap:9px;font-size:11px;font-weight:600;color:#344361}
.ah-test-list i{display:grid;place-items:center;width:20px;height:20px;flex:none;border-radius:50%;background:#e5ebff;color:#174eaa;font:700 10px/1 var(--sans,Arial,sans-serif);font-style:normal}
.ah-release-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:2px}
.ah-release-grid span{padding:7px 8px;border:1px solid #ffffff35;border-radius:6px;color:#ecf6ff;font-size:9px;line-height:1.25}
.ah-version{display:inline-flex;align-items:center;gap:8px;margin-top:3px;padding:7px 10px;border:1px solid #97b7ff;border-radius:999px;color:#e3ebff;font-size:10px;font-weight:700}
.ah-version i{width:7px;height:7px;border-radius:50%;background:#8db2ff;box-shadow:0 0 0 3px #8db2ff30}
.ah-outro{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px clamp(22px,5vw,76px);background:var(--ah-light);color:var(--ah-ink)}
.ah-outro p{margin:0;color:#455674;font:500 13px/1.5 var(--sans,Arial,sans-serif)}
.ah-static{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 48px;padding-block:clamp(55px,7vw,100px)}
.ah-static article{min-width:0;padding-top:17px;border-top:1px solid #bfd1dc}
.ah-static article>span{display:block;margin-bottom:12px;color:#0755ae;font:700 10px/1.4 var(--sans,Arial,sans-serif);letter-spacing:.15em;text-transform:uppercase}
.ah-static h3{margin:0 0 11px;color:#172b56;font:400 clamp(25px,2.7vw,38px)/1.1 var(--serif,Georgia,serif);letter-spacing:-.035em}
.ah-static p{max-width:62ch;margin:0;color:#455674;font:400 14px/1.65 var(--sans,Arial,sans-serif)}
.ah-static p+p{margin-top:10px}
.ah-static figure{margin:15px 0 0}
.ah-static figure img,.ah-static figure video{display:block;width:100%;max-width:450px;max-height:490px;object-fit:contain;background:#121a3c;border:1px solid #c3cee2;border-radius:10px}
.ah-static figure video{aspect-ratio:568/680}
.ah-static figcaption{margin-top:7px;color:#536582;font:500 12px/1.5 var(--sans,Arial,sans-serif)}
.ah-static .ah-source-note{margin-top:14px;color:#536582;font-size:12px}
.ah-static .ah-source-note a{color:#174eaa;text-underline-offset:3px}
.ah-story[data-ah-ready] .ah-static{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:normal!important;border:0!important}
html.gn93-reading #apphalt-produit .ah-track,html.motion-reduced #apphalt-produit .ah-track{display:none!important}
html.gn93-reading #apphalt-produit .ah-static,html.motion-reduced #apphalt-produit .ah-static,.ah-story:not([data-ah-ready]) .ah-static{position:static!important;width:calc(100% - 44px)!important;height:auto!important;padding-block:55px!important;margin-inline:auto!important;overflow:visible!important;clip:auto!important;white-space:normal!important;border:0!important}
html.gn93-reading #apphalt-produit .ah-static{display:grid!important}
html.gn93-reading #apphalt-produit .ah-outro{display:none}
.ah-story .sober-next{position:relative;z-index:1}
.home-page #apphalt-produit .gn94-controls .gn94-skip{position:absolute;width:1px;height:1px;min-height:0;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.home-page #apphalt-produit .gn94-controls .gn94-skip:focus-visible{position:relative;width:auto;height:auto;min-height:40px;padding:0 8px;overflow:visible;clip:auto;outline:3px solid currentColor;outline-offset:2px}
@media(max-width:800px){
 .ah-stage{top:64px;height:calc(100svh - 64px);min-height:550px}
 .ah-stage-inner{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(155px,.37fr) minmax(0,.63fr);gap:8px;padding:58px 18px 78px}
 .ah-stage-head{left:18px;right:18px;top:14px;gap:8px;font-size:9px}
 .ah-stage-head img{width:27px;height:27px}
 .ah-narrative{min-height:0;height:100%}
 .ah-beat{top:50%;max-width:620px}
 .ah-tag{margin-bottom:9px;font-size:9px;letter-spacing:.13em}
 .ah-beat h3{max-width:17ch;margin-bottom:9px;font-size:clamp(34px,7.8vw,48px);line-height:1.02}
 .ah-beat p{max-width:56ch;font-size:13px;line-height:1.48}
 .ah-beat>small{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
 .ah-canvas{height:100%;min-height:0;align-self:stretch}
 .ah-art-head{top:-23px;font-size:8px}
 .ah-content{gap:6px;padding:14px}
 .ah-node--c .ah-content[data-scene="0"]{padding:12px 16px}
 .ah-node--c .ah-content[data-scene="1"]{padding:9px 12px}
 .ah-node--c .ah-content[data-scene="1"]>strong{font-size:16px}
 .ah-node--c .ah-content[data-scene="2"]{padding:9px 13px}
 .ah-node--c .ah-content[data-scene="2"]>strong{font-size:15px}
 .ah-content>small{font-size:10px}
 .ah-content>strong{font-size:16px}
 .ah-content>p{font-size:11px;line-height:1.35}
 .ah-content .ah-source{font-size:9px}
 .ah-content[data-scene="2"]{gap:4px;padding:8px}
 .ah-wire-head{font-size:8px;padding-bottom:5px}
 .ah-wire-row{min-height:25px;padding:4px 7px;font-size:10px}
 .ah-wire-action{min-height:24px;font-size:10px}
 .ah-node--b .ah-content[data-scene="1"]{gap:3px;padding:8px 12px}
 .ah-node--b .ah-content[data-scene="1"] .ah-wire-state{margin-top:0;padding-top:0;border-top:0;font-size:9px}
 .ah-node--b .ah-content[data-scene="1"] .ah-wire-action{min-height:20px;font-size:9px}
 .ah-test-list{gap:5px}
 .ah-test-list li{gap:6px;font-size:9px}
 .ah-test-list i{width:17px;height:17px;font-size:8px}
 .ah-release-grid{gap:4px}
 .ah-release-grid span{padding:5px 5px;font-size:9px}
 .ah-version{font-size:8px;padding:5px 8px}
 .ah-outro{align-items:flex-start;flex-direction:column;gap:11px;padding:20px 22px}
 .ah-static{grid-template-columns:1fr;gap:24px;padding-block:42px}
 .ah-static h3{font-size:29px}
 .ah-static p{font-size:14px}
}
@media(max-width:430px){
 .home-page #apphalt-produit .client-story-position .gn93-progress{font-size:10px!important}
}
@media(max-width:800px) and (max-height:700px){
 .sober-home #apphalt-produit .ah-source-links{display:none}
}
@media(max-width:380px){
 .ah-stage{min-height:540px}
 .ah-stage-inner{grid-template-rows:minmax(170px,.4fr) minmax(0,.6fr);padding-inline:14px}
 .ah-stage-head{left:14px;right:14px}
 .ah-beat h3{font-size:clamp(31px,8.5vw,39px)}
 .ah-beat p{font-size:12px}
 .ah-content{padding:11px}
 .ah-content>strong{font-size:15.5px}
 .ah-content>p{font-size:10.5px}
}
@media(max-height:650px) and (min-width:801px){.ah-stage{min-height:0}.ah-stage-inner{padding-block:62px}.ah-narrative{min-height:190px}.ah-beat h3{font-size:clamp(34px,4vw,52px)}.ah-canvas{height:65vh;min-height:310px}}
@media(prefers-reduced-motion:reduce){.ah-track{display:none!important}.ah-stage:before{transition:none}.ah-story .ah-beat{animation:none!important}}
@media print{.ah-track{display:none!important}.ah-static{position:static!important;width:auto!important;height:auto!important;padding-block:30px!important;margin:auto!important;overflow:visible!important;clip:auto!important;white-space:normal!important;border:0!important}}
.ah-source-links{display:flex;flex-wrap:wrap;gap:2px 14px;margin-top:7px;color:#a8c3d4;font:600 11px/1.4 var(--sans,Arial,sans-serif)}
.ah-source-links a{min-height:24px;text-decoration:underline;text-underline-offset:3px}
.ah-source-links a:focus-visible{outline:2px solid currentColor;outline-offset:3px;border-radius:2px}
@media(max-width:800px){
 .sober-home #apphalt-produit .ah-stage-inner{width:100%;max-width:none;margin-inline:0;height:calc(100% - 56px);grid-template-rows:minmax(150px,.36fr) minmax(0,.64fr);gap:6px;padding:52px 38px 66px 18px}
 .sober-home #apphalt-produit .ah-art-head,.sober-home #apphalt-produit .ah-art-caption{display:none}
 .ah-source-links{gap:0 12px;margin-top:4px;font-size:11px}
 .ah-content{gap:6px}
 .ah-content>small{font-size:9px}
 .ah-content>strong{font-size:16px}
 .ah-content>p{font-size:11px;line-height:1.35}
 .ah-content .ah-source{font-size:9px}
 .ah-test-list li{font-size:10px}
 .ah-release-grid span{font-size:9px}
 .ah-version{font-size:9px}
}
@media(max-width:380px){
 .sober-home #apphalt-produit .ah-stage-inner{grid-template-rows:minmax(148px,.38fr) minmax(0,.62fr);padding:48px 38px 60px 14px}
 .ah-content{padding:10px}
 .ah-content>strong{font-size:16px}
 .ah-content>p{font-size:10.5px}
 .ah-release-grid span{font-size:8.5px}
}
.ah-content.ah-download-card[data-scene="4"]{align-items:center;gap:5px;padding:14px;text-align:center;background:linear-gradient(145deg,#f2f5ff,#e5ebff);color:#172246}
.ah-content.ah-download-card[data-scene="4"]>small{color:#174eaa}
.ah-content.ah-download-card[data-scene="4"]>strong.ah-download-count{max-width:none;color:#172246;font-size:clamp(42px,7vw,60px);line-height:.95;letter-spacing:-.055em;font-variant-numeric:tabular-nums}
.ah-content.ah-download-card[data-scene="4"]>p{color:#455674;font-size:13px;line-height:1.3}
.ah-content.ah-download-card[data-scene="4"] .ah-source{margin-top:3px;color:#536582;font-size:10px}
