@font-face{font-family:Schibsted Grotesk;font-style:normal;font-weight:400 700;font-display:swap;src:url(/assets/fonts/schibsted-grotesk-latin.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Schibsted Grotesk;font-style:normal;font-weight:400 700;font-display:swap;src:url(/assets/fonts/schibsted-grotesk-latin-ext.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Instrument Sans;font-style:normal;font-weight:400 700;font-display:swap;src:url(/assets/fonts/instrument-sans-latin.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Instrument Sans;font-style:normal;font-weight:400 700;font-display:swap;src:url(/assets/fonts/instrument-sans-latin-ext.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:DM Sans;font-style:normal;font-weight:400 600;font-display:swap;src:url(/assets/fonts/dm-sans-latin.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:DM Sans;font-style:normal;font-weight:400 600;font-display:swap;src:url(/assets/fonts/dm-sans-latin-ext.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:400 700;font-display:swap;src:url(/assets/fonts/space-grotesk-latin.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:400 700;font-display:swap;src:url(/assets/fonts/space-grotesk-latin-ext.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }

*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:var(--font-sans),sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.visible{visibility:visible}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.top-0{top:0}.z-50{z-index:50}.mx-auto{margin-left:auto;margin-right:auto}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-10{margin-bottom:2.5rem}.mb-14{margin-bottom:3.5rem}.mb-2{margin-bottom:.5rem}.mb-2\.5{margin-bottom:.625rem}.mb-3{margin-bottom:.75rem}.mb-3\.5{margin-bottom:.875rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-7{margin-bottom:1.75rem}.mb-8{margin-bottom:2rem}.mb-9{margin-bottom:2.25rem}.ml-1{margin-left:.25rem}.mt-1{margin-top:.25rem}.mt-10{margin-top:2.5rem}.mt-12{margin-top:3rem}.mt-14{margin-top:3.5rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-9{margin-top:2.25rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-16{height:4rem}.h-20{height:5rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-auto{height:auto}.h-full{height:100%}.max-h-9{max-height:2.25rem}.min-h-\[65px\]{min-height:65px}.min-h-screen{min-height:100vh}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-20{width:5rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-auto{width:auto}.w-full{width:100%}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-7xl{max-width:80rem}.max-w-\[180px\]{max-width:180px}.max-w-sm{max-width:24rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.border-collapse{border-collapse:collapse}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-10{gap:2.5rem}.gap-12{gap:3rem}.gap-14{gap:3.5rem}.gap-16{gap:4rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-3\.5{gap:.875rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-9{gap:2.25rem}.gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.gap-y-1{row-gap:.25rem}.self-start{align-self:flex-start}.self-center{align-self:center}.truncate{overflow:hidden;text-overflow:ellipsis}.truncate,.whitespace-nowrap{white-space:nowrap}.whitespace-pre-line{white-space:pre-line}.text-wrap{text-wrap:wrap}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-l-2{border-left-width:2px}.border-l-4{border-left-width:4px}.border-t{border-top-width:1px}.border-border{--tw-border-opacity:1;border-color:hsl(var(--border)/var(--tw-border-opacity,1))}.border-primary{--tw-border-opacity:1;border-color:hsl(var(--primary)/var(--tw-border-opacity,1))}.border-primary-foreground{--tw-border-opacity:1;border-color:hsl(var(--primary-foreground)/var(--tw-border-opacity,1))}.border-primary-foreground\/40{border-color:hsl(var(--primary-foreground)/.4)}.border-white{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity,1))}.border-white\/10{border-color:hsla(0,0%,100%,.1)}.border-white\/15{border-color:hsla(0,0%,100%,.15)}.border-white\/60{border-color:hsla(0,0%,100%,.6)}.border-l-primary{--tw-border-opacity:1;border-left-color:hsl(var(--primary)/var(--tw-border-opacity,1))}.bg-\[\#1A3A5C\]{--tw-bg-opacity:1;background-color:rgb(26 58 92/var(--tw-bg-opacity,1))}.bg-background{--tw-bg-opacity:1;background-color:hsl(var(--background)/var(--tw-bg-opacity,1))}.bg-background\/95{background-color:hsl(var(--background)/.95)}.bg-card{--tw-bg-opacity:1;background-color:hsl(var(--card)/var(--tw-bg-opacity,1))}.bg-primary{--tw-bg-opacity:1;background-color:hsl(var(--primary)/var(--tw-bg-opacity,1))}.bg-primary-foreground{--tw-bg-opacity:1;background-color:hsl(var(--primary-foreground)/var(--tw-bg-opacity,1))}.bg-secondary{--tw-bg-opacity:1;background-color:hsl(var(--secondary)/var(--tw-bg-opacity,1))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-2{padding:.5rem}.p-6{padding:1.5rem}.p-7{padding:1.75rem}.p-8{padding:2rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-7{padding-left:1.75rem;padding-right:1.75rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0{padding-top:0;padding-bottom:0}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-14{padding-top:3.5rem;padding-bottom:3.5rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-20{padding-top:5rem;padding-bottom:5rem}.py-24{padding-top:6rem;padding-bottom:6rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-3\.5{padding-top:.875rem;padding-bottom:.875rem}.py-32{padding-top:8rem;padding-bottom:8rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-4{padding-bottom:1rem}.pl-3{padding-left:.75rem}.pl-3\.5{padding-left:.875rem}.pl-4{padding-left:1rem}.pl-5{padding-left:1.25rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-5{padding-top:1.25rem}.pt-6{padding-top:1.5rem}.text-left{text-align:left}.text-center{text-align:center}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-relaxed{line-height:1.625}.leading-tight{line-height:1.25}.tracking-normal{letter-spacing:0}.tracking-tight{letter-spacing:-.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.text-\[\#1A3A5C\]{--tw-text-opacity:1;color:rgb(26 58 92/var(--tw-text-opacity,1))}.text-\[\#D9BE96\]{--tw-text-opacity:1;color:rgb(217 190 150/var(--tw-text-opacity,1))}.text-\[\#D9BE96\]\/90{color:hsla(36,47%,72%,.9)}.text-foreground{--tw-text-opacity:1;color:hsl(var(--foreground)/var(--tw-text-opacity,1))}.text-muted-foreground{--tw-text-opacity:1;color:hsl(var(--muted-foreground)/var(--tw-text-opacity,1))}.text-primary{--tw-text-opacity:1;color:hsl(var(--primary)/var(--tw-text-opacity,1))}.text-primary-foreground{--tw-text-opacity:1;color:hsl(var(--primary-foreground)/var(--tw-text-opacity,1))}.text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.text-sky-200{--tw-text-opacity:1;color:rgb(186 230 253/var(--tw-text-opacity,1))}.text-sky-300{--tw-text-opacity:1;color:rgb(125 211 252/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.text-white\/80{color:hsla(0,0%,100%,.8)}.text-white\/85{color:hsla(0,0%,100%,.85)}.text-white\/90{color:hsla(0,0%,100%,.9)}.text-white\/95{color:hsla(0,0%,100%,.95)}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-40{opacity:.4}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-2xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.shadow-md,.shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.blur{--tw-blur:blur(8px)}.blur,.drop-shadow{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow{--tw-drop-shadow:drop-shadow(0 1px 2px rgba(0,0,0,.1)) drop-shadow(0 1px 1px rgba(0,0,0,.06))}.grayscale{--tw-grayscale:grayscale(100%)}.grayscale,.invert{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.invert{--tw-invert:invert(100%)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-md{--tw-backdrop-blur:blur(12px)}.backdrop-blur-md,.backdrop-filter{backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-shadow{transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.delay-0{transition-delay:0s}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.hover\:bg-muted:hover{--tw-bg-opacity:1;background-color:hsl(var(--muted)/var(--tw-bg-opacity,1))}.hover\:bg-primary-foreground\/10:hover{background-color:hsl(var(--primary-foreground)/.1)}.hover\:bg-white\/10:hover{background-color:hsla(0,0%,100%,.1)}.hover\:text-foreground:hover{--tw-text-opacity:1;color:hsl(var(--foreground)/var(--tw-text-opacity,1))}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.hover\:opacity-100:hover{opacity:1}.hover\:opacity-80:hover{opacity:.8}.hover\:opacity-90:hover{opacity:.9}.hover\:opacity-95:hover{opacity:.95}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-opacity:1;--tw-ring-color:hsl(var(--ring)/var(--tw-ring-opacity,1))}.active\:bg-muted:active{--tw-bg-opacity:1;background-color:hsl(var(--muted)/var(--tw-bg-opacity,1))}.active\:opacity-90:active{opacity:.9}.disabled\:opacity-50:disabled{opacity:.5}.dark\:inline:is(.dark *){display:inline}.dark\:hidden:is(.dark *){display:none}.dark\:text-red-400:is(.dark *){--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}@media (min-width:640px){.sm\:col-span-2{grid-column:span 2/span 2}.sm\:mb-10{margin-bottom:2.5rem}.sm\:mb-14{margin-bottom:3.5rem}.sm\:mb-3{margin-bottom:.75rem}.sm\:mb-4{margin-bottom:1rem}.sm\:mb-5{margin-bottom:1.25rem}.sm\:mb-6{margin-bottom:1.5rem}.sm\:mb-8{margin-bottom:2rem}.sm\:mb-9{margin-bottom:2.25rem}.sm\:mt-12{margin-top:3rem}.sm\:mt-14{margin-top:3.5rem}.sm\:w-auto{width:auto}.sm\:max-w-sm{max-width:24rem}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:gap-10{gap:2.5rem}.sm\:gap-3{gap:.75rem}.sm\:gap-4{gap:1rem}.sm\:gap-6{gap:1.5rem}.sm\:gap-8{gap:2rem}.sm\:p-10{padding:2.5rem}.sm\:p-7{padding:1.75rem}.sm\:p-8{padding:2rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-16{padding-top:4rem;padding-bottom:4rem}.sm\:py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.sm\:py-20{padding-top:5rem;padding-bottom:5rem}.sm\:py-24{padding-top:6rem;padding-bottom:6rem}.sm\:py-32{padding-top:8rem;padding-bottom:8rem}.sm\:py-5{padding-top:1.25rem;padding-bottom:1.25rem}.sm\:py-8{padding-top:2rem;padding-bottom:2rem}.sm\:pl-5{padding-left:1.25rem}.sm\:pt-6{padding-top:1.5rem}.sm\:text-2xl{font-size:1.5rem;line-height:2rem}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-4xl{font-size:2.25rem;line-height:2.5rem}.sm\:text-5xl{font-size:3rem;line-height:1}.sm\:text-base{font-size:1rem;line-height:1.5rem}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}.sm\:text-xl{font-size:1.25rem;line-height:1.75rem}.sm\:text-xs{font-size:.75rem;line-height:1rem}}@media (min-width:768px){.md\:col-span-1{grid-column:span 1/span 1}.md\:col-span-2{grid-column:span 2/span 2}.md\:flex{display:flex}.md\:hidden{display:none}.md\:max-h-10{max-height:2.5rem}.md\:auto-rows-fr{grid-auto-rows:minmax(0,1fr)}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:gap-10{gap:2.5rem}.md\:p-10{padding:2.5rem}}@media (min-width:1024px){.lg\:order-1{order:1}.lg\:order-2{order:2}.lg\:col-span-5{grid-column:span 5/span 5}.lg\:col-span-7{grid-column:span 7/span 7}.lg\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:items-center{align-items:center}.lg\:gap-12{gap:3rem}.lg\:gap-14{gap:3.5rem}.lg\:gap-16{gap:4rem}.lg\:gap-8{gap:2rem}.lg\:border-l{border-left-width:1px}.lg\:border-t-0{border-top-width:0}.lg\:border-border{--tw-border-opacity:1;border-color:hsl(var(--border)/var(--tw-border-opacity,1))}.lg\:p-12{padding:3rem}.lg\:py-24{padding-top:6rem;padding-bottom:6rem}.lg\:py-28{padding-top:7rem;padding-bottom:7rem}.lg\:py-32{padding-top:8rem;padding-bottom:8rem}.lg\:py-36{padding-top:9rem;padding-bottom:9rem}.lg\:py-44{padding-top:11rem;padding-bottom:11rem}.lg\:pl-10{padding-left:2.5rem}.lg\:pt-0{padding-top:0}.lg\:text-6xl{font-size:3.75rem;line-height:1}}


:root {

  --font-heading: 'Schibsted Grotesk', 'Space Grotesk', -apple-system, BlinkMacSystemFont, sans-serif;

  --font-sans: 'Instrument Sans', 'DM Sans', -apple-system, BlinkMacSystemFont, sans-serif;



  --background: 0 0% 100%;

  --foreground: 146 15% 14%;

  --primary: 200 47% 32%;

  --primary-foreground: 90 18% 96%;

  --secondary: 86 13% 86%;

  --secondary-foreground: 146 15% 20%;

  --muted: 86 13% 86%;

  --muted-foreground: 140 8% 32%;

  --card: 90 18% 95%;

  --border: 87 10% 77%;

  --accent: 200 47% 32%;

  --ring: 200 47% 32%;

}



html.dark {

  --background: 210 6% 10%;

  --foreground: 210 10% 92%;

  --card: 210 6% 13%;

  --primary: 200 45% 62%;

  --primary-foreground: 210 6% 10%;

  --secondary: 210 6% 16%;

  --secondary-foreground: 210 8% 84%;

  --muted: 210 6% 16%;

  --muted-foreground: 210 6% 68%;

  --border: 210 6% 24%;

  --accent: 200 45% 62%;

  --ring: 200 45% 62%;

}



*, *::before, *::after {

  box-sizing: border-box;

  border-color: hsl(var(--border));

}



html {

  margin: 0;

  padding: 0;

  width: 100%;

  max-width: 100%;

  overflow-x: hidden;

  font-size: 16px;

  -webkit-text-size-adjust: 100%;

  text-size-adjust: 100%;

  scroll-behavior: smooth;

}



body {

  margin: 0;

  padding: 0;

  width: 100%;

  max-width: 100%;

  overflow-x: hidden;

  background-color: hsl(var(--background));

  color: hsl(var(--foreground));

  font-family: var(--font-sans);

  font-size: 1rem;

  line-height: 1.65;

  -webkit-font-smoothing: antialiased;

  -moz-osx-font-smoothing: grayscale;

}



img, svg, video, canvas {

  max-width: 100%;

  height: auto;

  display: block;

}



/* Logo bien visible (dimensionné en rem pour s'adapter proportionnellement sur mobile et bureau) */

.brand-logo-header {

  height: 2.75rem !important;

  max-height: 2.75rem !important;

  width: auto !important;

  max-width: 15.5rem !important;

  object-fit: contain !important;

}



@media (max-width: 420px) {

  .brand-logo-header { height: 2.2rem !important; max-height: 2.2rem !important; max-width: calc(100vw - 8.5rem) !important; }

}

.brand-logo-drawer {

  height: 2.4rem !important;

  max-height: 2.4rem !important;

  width: auto !important;

  max-width: 13.5rem !important;

  object-fit: contain !important;

}



.brand-logo-footer {

  height: 2.75rem !important;

  max-height: 2.75rem !important;

  width: auto !important;

  max-width: 15.5rem !important;

  object-fit: contain !important;

}



/* Contrôle strict de l'affichage du menu Bureau vs Mobile (3 traits + menu latéral) */

.desktop-only-nav {

  display: flex;

}

.mobile-only-controls {

  display: none;

}



@media (max-width: 1023px) {

  .desktop-only-nav {

    display: none !important;

  }

  .mobile-only-controls {

    display: flex !important;

  }

}



html.handset-wide-viewport .desktop-only-nav {

  display: none !important;

}

html.handset-wide-viewport .mobile-only-controls {

  display: flex !important;

}



/* Typographie des titres principaux contrôlée pour éviter tout débordement sur téléphone */

.hero-main-title {

  font-size: 1.75rem !important;

  line-height: 1.2 !important;

}



.section-main-title {

  font-size: 1.55rem !important;

  line-height: 1.25 !important;

}



@media (min-width: 768px) {

  html:not(.handset-wide-viewport) .hero-main-title {

    font-size: 3.25rem !important;

    line-height: 1.12 !important;

  }

  html:not(.handset-wide-viewport) .section-main-title {

    font-size: 2.25rem !important;

    line-height: 1.2 !important;

  }

}



@media (min-width: 1024px) {

  html:not(.handset-wide-viewport) .hero-main-title {

    font-size: 3.75rem !important;

    line-height: 1.1 !important;

  }

}



/* Menu latéral mobile (tiroir coulissant à droite) */

.mobile-drawer-backdrop {

  position: fixed;

  inset: 0;

  background-color: rgba(8, 15, 28, 0.6);

  backdrop-filter: blur(3px);

  z-index: 90;

  animation: fadeBackdrop 0.2s ease-out forwards;

}



.mobile-drawer-panel {

  position: fixed;

  top: 0;

  right: 0;

  bottom: 0;

  width: min(82vw, 20rem);

  background-color: hsl(var(--background));

  color: hsl(var(--foreground));

  border-left: 1px solid hsl(var(--border));

  box-shadow: -10px 0 30px rgba(0, 0, 0, 0.25);

  z-index: 100;

  display: flex;

  flex-direction: column;

  justify-content: space-between;

  padding: 1.25rem;

  overflow-y: auto;

  animation: slideInRight 0.22s ease-out forwards;

}



@keyframes fadeBackdrop {

  from { opacity: 0; }

  to { opacity: 1; }

}



@keyframes slideInRight {

  from { transform: translateX(100%); }

  to { transform: translateX(0); }

}



.cookie-banner {

  position: fixed;

  left: 0;

  right: 0;

  bottom: 0;

  z-index: 85;

  background-color: hsl(var(--card));

  color: hsl(var(--foreground));

  border-top: 2px solid hsl(var(--primary));

  box-shadow: 0 -8px 30px rgba(0, 0, 0, 0.22);

}



a, button, input, select, textarea {

  -webkit-tap-highlight-color: transparent;

  touch-action: manipulation;

}



/* Sur téléphone (< 640px), garantir des polices lisibles sans zoom */

@media (max-width: 639px) {

  html {

    font-size: 17px;

  }

  body {

    font-size: 1rem;

    line-height: 1.65;

  }

  input, select, textarea {

    font-size: 16px !important;

  }

}



/* Si le téléphone affiche dans un viewport large (ex: iframe de redirection DNS ou mode bureau mobile) */

html.handset-wide-viewport {

  font-size: 34px !important;

}

html.handset-wide-viewport .md\:grid-cols-2,

html.handset-wide-viewport .lg\:grid-cols-12,

html.handset-wide-viewport .lg\:grid-cols-4,

html.handset-wide-viewport .lg\:grid-cols-2,

html.handset-wide-viewport .sm\:grid-cols-2,

html.handset-wide-viewport .md\:grid-cols-3 {

  grid-template-columns: 1fr !important;

}

html.handset-wide-viewport .max-w-7xl,

html.handset-wide-viewport .max-w-4xl,

html.handset-wide-viewport .max-w-3xl,

html.handset-wide-viewport .max-w-2xl {

  max-width: 100% !important;

}



h1, h2, h3, h4, h5, h6 {

  font-family: var(--font-heading);

  margin: 0;

  overflow-wrap: break-word;

}



p {

  margin: 0;

}



a {

  color: inherit;

  text-decoration: none;

}



/* Animations FadeUp */

@keyframes fadeUpIn {

  from {

    opacity: 0;

    transform: translateY(16px);

  }

  to {

    opacity: 1;

    transform: translateY(0);

  }

}



.fade-up {

  opacity: 0;

  animation: fadeUpIn 0.45s ease-out forwards;

}



.delay-0 { animation-delay: 0s; }

.delay-1 { animation-delay: 0.08s; }

.delay-2 { animation-delay: 0.16s; }

.delay-3 { animation-delay: 0.24s; }

.delay-4 { animation-delay: 0.36s; }


/* Page d'accueil « IA souveraine » — thème Cadastre (kalykso.ca)
   La souveraineté traitée comme un territoire : relevé topographique, courbes de niveau,
   et une seule couleur vive, le vert de borne, réservée à la limite de votre périmètre. */
.ks {
  --ks-courbe: #b98a55;
  --ks-lac: #2f6f8f;
  --ks-borne: #2e8b57;
  --ks-trait: hsl(var(--border));
  font-family: var(--font-sans);
  color: hsl(var(--foreground));
}
html.dark .ks { --ks-courbe: #a07a4c; --ks-lac: #5b9bb8; --ks-borne: #4cc38a; }
.ks h1, .ks h2, .ks h3 { font-family: var(--font-heading); font-weight: 700; letter-spacing: -0.015em; margin: 0; text-wrap: balance; }
.ks p { margin: 0; }
.ks-wrap { max-width: 80rem; margin: 0 auto; padding: 0 1.25rem; }
@media (min-width: 640px) { .ks-wrap { padding: 0 1.5rem; } }
.ks-sec { padding: 4.5rem 0; border-top: 1px solid var(--ks-trait); }
@media (min-width: 1024px) { .ks-sec { padding: 6.5rem 0; } }
.ks-h2 { font-size: clamp(1.7rem, 3.2vw, 2.5rem); line-height: 1.12; max-width: 40rem; }
.ks-lead { font-size: 1.075rem; line-height: 1.7; color: hsl(var(--muted-foreground)); max-width: 40rem; margin-top: 1rem !important; }
.ks-tete { display: grid; gap: 1rem; }
@media (min-width: 1024px) { .ks-tete { grid-template-columns: 1fr 1fr; align-items: end; gap: 3rem; } .ks-tete .ks-lead { margin-top: 0 !important; } }

/* Boutons : encre pleine, ou trait */
.ks-btn { display: inline-flex; align-items: center; padding: .8rem 1.3rem; border-radius: 4px; font-weight: 600; font-size: .975rem; text-decoration: none; border: 1.5px solid hsl(var(--foreground)); transition: background .15s, color .15s; }
.ks-btn-main { background: hsl(var(--foreground)); color: hsl(var(--background)); }
.ks-btn-main:hover { background: transparent; color: hsl(var(--foreground)); }
.ks-btn-ghost { color: hsl(var(--foreground)); }
.ks-btn-ghost:hover { background: hsl(var(--foreground) / .07); }
.ks-btn:focus-visible { outline: 2px solid var(--ks-lac); outline-offset: 3px; }
.ks-cta { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2rem; }

/* HERO : titre, promesse, puis la scène d'intervention */
.ks-hero { padding: 3.5rem 0 3rem; }
@media (min-width: 1024px) { .ks-hero { padding: 5rem 0 4.5rem; } }
.ks-hero-grille { display: grid; gap: 1.5rem; }
@media (min-width: 1024px) { .ks-hero-grille { grid-template-columns: 1.1fr 1fr; gap: 3.5rem; align-items: end; } .ks-hero .ks-lead { margin-top: 0 !important; } }
.ks-lieu { font-size: .9rem; color: hsl(var(--muted-foreground)); }
.ks-hero h1 { font-size: clamp(2.3rem, 5.4vw, 4.1rem); line-height: 1.02; margin: .9rem 0 0; }
.ks-hero .ks-lead { font-size: 1.1rem; }

/* Légende de carte (remplace la bande de chiffres) */
.ks-legende { margin-top: 3rem; border: 1.5px solid hsl(var(--foreground)); display: grid; grid-template-columns: 1fr; }
@media (min-width: 640px) { .ks-legende { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .ks-legende { grid-template-columns: auto repeat(5, 1fr); } }
.ks-legende-titre { padding: .9rem 1.25rem; font-family: var(--font-heading); font-weight: 700; border-bottom: 1px solid var(--ks-trait); }
@media (min-width: 640px) and (max-width: 1023px) { .ks-legende-titre { grid-column: 1 / -1; } }
@media (min-width: 1024px) { .ks-legende-titre { border-bottom: 0; border-right: 1px solid var(--ks-trait); writing-mode: vertical-rl; transform: rotate(180deg); padding: 1.25rem .9rem; text-align: center; } }
.ks-legende-item { padding: 1.1rem 1.25rem; display: grid; grid-template-columns: 2.25rem 1fr; gap: .2rem .75rem; align-items: start; border-bottom: 1px solid var(--ks-trait); }
.ks-legende-item:last-child { border-bottom: 0; }
@media (min-width: 1024px) { .ks-legende-item { border-bottom: 0; border-right: 1px solid var(--ks-trait); } .ks-legende-item:last-child { border-right: 0; } }
.ks-legende-item svg { width: 2.25rem; height: 1.25rem; margin-top: .3rem; grid-row: span 2; }
.ks-legende-item b { font-family: var(--font-heading); font-size: 1.45rem; line-height: 1.15; }
.ks-legende-item span { font-size: .9rem; color: hsl(var(--muted-foreground)); line-height: 1.45; }

/* Composants : trois colonnes séparées par des traits, pas des cartes */
.ks-cols { display: grid; margin-top: 3rem; border-top: 1.5px solid hsl(var(--foreground)); }
@media (min-width: 900px) { .ks-cols { grid-template-columns: repeat(3, 1fr); } }
.ks-col { padding: 1.75rem 0; border-bottom: 1px solid var(--ks-trait); }
.ks-col:last-child { border-bottom: 0; }
@media (min-width: 900px) { .ks-col { padding: 2rem 2rem 0 0; border-bottom: 0; } .ks-col + .ks-col { padding-left: 2rem; border-left: 1px solid var(--ks-trait); } }
.ks-ico { width: 2rem; height: 2rem; color: hsl(var(--foreground)); display: block; }
.ks-ico svg { width: 100%; height: 100%; }
.ks-col h3 { font-size: 1.25rem; margin: 1rem 0 .5rem; }
.ks-col p, .ks-col li { color: hsl(var(--muted-foreground)); line-height: 1.6; }
.ks-col ul { margin: 1rem 0 0; padding: 0; list-style: none; display: grid; gap: .5rem; }
.ks-col li { padding-left: 1.1rem; position: relative; }
.ks-col li::before { content: ""; position: absolute; left: 0; top: .78em; width: .55rem; border-top: 1.5px solid var(--ks-courbe); }

/* Comparaison : de part et d'autre de la limite */
.ks-cmp-wrap { overflow-x: auto; margin-top: 2.5rem; }
.ks-cmp { width: 100%; min-width: 30rem; border-collapse: collapse; font-size: 1rem; }
.ks-cmp th, .ks-cmp td { text-align: left; padding: 1rem 1.25rem; border-bottom: 1px solid var(--ks-trait); vertical-align: top; }
.ks-cmp th { font-family: var(--font-heading); font-weight: 700; font-size: 1rem; border-bottom: 1.5px solid hsl(var(--foreground)); }
.ks-cmp th:first-child, .ks-cmp td:first-child { padding-left: 0; color: hsl(var(--muted-foreground)); width: 28%; }
.ks-cmp .dehors { color: hsl(var(--muted-foreground)); }
.ks-cmp .dedans { font-weight: 600; border-left: 2px dashed var(--ks-borne); }

/* Niveaux d'autonomie */
.ks-niveaux { display: grid; gap: 2rem; margin-top: 3rem; }
@media (min-width: 900px) { .ks-niveaux { grid-template-columns: repeat(3, 1fr); gap: 2.5rem; } }
.ks-niveau { border-top: 1.5px solid hsl(var(--foreground)); padding-top: 1.25rem; }
.ks-niveau .type { font-size: .9rem; color: hsl(var(--muted-foreground)); }
.ks-niveau h3 { font-size: 1.3rem; margin: .4rem 0 .7rem; }
.ks-niveau p { color: hsl(var(--muted-foreground)); line-height: 1.6; }
.ks-jauge { display: flex; align-items: center; gap: .75rem; margin-top: 1.25rem; font-size: .9rem; font-weight: 600; }
.ks-jauge svg { width: 6.5rem; height: .75rem; flex: none; }
.ks-jauge .plein { fill: hsl(var(--foreground)); }
.ks-jauge .vide { fill: none; stroke: hsl(var(--foreground)); stroke-width: 1; opacity: .45; }

/* Étapes : une vraie séquence, donc numérotée, le long d'un tracé */
.ks-etapes { list-style: none; padding: 0; margin: 3rem 0 0; display: grid; gap: 1.75rem; counter-reset: e; position: relative; }
@media (min-width: 900px) { .ks-etapes { grid-template-columns: repeat(4, 1fr); gap: 2rem; } .ks-etapes::before { content: ""; position: absolute; left: 0; right: 0; top: 1.05rem; border-top: 1.5px dashed var(--ks-courbe); } }
.ks-etape { position: relative; counter-increment: e; }
.ks-etape::before { content: counter(e); display: grid; place-items: center; width: 2.1rem; height: 2.1rem; border-radius: 50%; border: 1.5px solid hsl(var(--foreground)); background: hsl(var(--background)); font-family: var(--font-heading); font-weight: 700; position: relative; }
.ks-etape h3 { font-size: 1.1rem; margin: 1rem 0 .4rem; }
.ks-etape p { color: hsl(var(--muted-foreground)); line-height: 1.55; }

/* Intégrations : un index de lieux */
.ks-index { margin: 2.5rem 0 0; columns: 1; column-gap: 2.5rem; padding: 0; list-style: none; }
@media (min-width: 640px) { .ks-index { columns: 2; } }
@media (min-width: 1024px) { .ks-index { columns: 3; } }
.ks-index li { break-inside: avoid; display: flex; justify-content: space-between; gap: 1rem; padding: .7rem 0; border-bottom: 1px dotted var(--ks-courbe); font-weight: 600; }
.ks-index li span { font-weight: 400; color: hsl(var(--muted-foreground)); }

/* Sécurité */
.ks-garanties { display: grid; gap: 1.75rem 2.5rem; margin-top: 3.5rem; }
@media (min-width: 640px) { .ks-garanties { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .ks-garanties { grid-template-columns: repeat(4, 1fr); } }
.ks-garantie h3 { font-size: 1.05rem; margin: .8rem 0 .35rem; }
.ks-garantie p { color: hsl(var(--muted-foreground)); line-height: 1.55; font-size: .975rem; }

/* Appel final, à l'encre */
.ks-final { background: #1A3A5C; color: #e9ece4; padding: 5rem 0; }
html.dark .ks-final { background: #131D34; }
.ks-final { border-bottom: 1px solid rgba(233, 236, 228, .14); }
.ks-final h2 { color: #e9ece4; font-size: clamp(1.8rem, 3.4vw, 2.6rem); line-height: 1.12; max-width: 36rem; }
.ks-final .ks-lead { color: #c9d6e3; }
.ks-final .ks-btn { border-color: #e9ece4; }
.ks-final .ks-btn-main { background: #e9ece4; color: #1f2a24; }
.ks-final .ks-btn-main:hover { background: transparent; color: #e9ece4; }
.ks-final .ks-btn:focus-visible { outline-color: #e9ece4; }

@media (prefers-reduced-motion: reduce) {
  .ks-carte .trace { animation: none; opacity: 0; }
  .ks-carte .pointille { animation: none; opacity: 1; }
  .ks-btn { transition: none; }
}

/* Thème Cadastre, reste du site : pas d'apparitions répétées au défilement */
.fade-up { animation: none !important; opacity: 1 !important; transform: none !important; }

/* Petit cycle animé (boucle) : découverte → audit → prévention/diagnostic → approbation → correction → documentation */
.ks-cycle { margin: 1.4rem 0 0; max-width: 23rem; }
.ks-cycle svg { width: 100%; height: auto; display: block; overflow: visible; }
.ks-cy-anneau { fill: none; stroke: var(--ks-trait); stroke-width: 1.5; stroke-dasharray: 3 4; }
.ks-cy-arc { fill: none; stroke: var(--ks-courbe); stroke-width: 2.4; stroke-linecap: round; }
.ks-cy-point { fill: var(--ks-courbe); }
.ks-cy-tourne { animation: ks-cy-glisse 6s linear infinite; }
@keyframes ks-cy-glisse { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
.ks-cy-n circle { fill: hsl(var(--background)); stroke: hsl(var(--foreground)); stroke-width: 1.5; }
.ks-cy-n text { font: 600 11.5px var(--font-body, inherit); fill: hsl(var(--foreground)); }
.ks-cy-n { animation: ks-cy-pulse 6s infinite both; }
@keyframes ks-cy-pulse { 0%, 16% { opacity: 1; } 19%, 97% { opacity: .42; } 100% { opacity: 1; } }
.ks-cy-centre { font: 700 11px var(--font-heading, inherit); fill: hsl(var(--foreground)); }
@media (prefers-reduced-motion: reduce) { .ks-cy-tourne, .ks-cy-n { animation: none; } .ks-cy-n { opacity: 1; } }

/* Cycle en 3D : orbite inclinée en perspective, étapes qui tournent autour de la Solution IA Kalykso */
.kc { margin: 1.2rem 0 0; width: min(100%, 24rem); }
.kc-scene { position: relative; height: 15rem; perspective: 900px; transform-style: preserve-3d; }
.kc-plan { position: absolute; left: 50%; top: 56%; width: 0; height: 0; transform-style: preserve-3d; transform: rotateX(66deg); }
.kc-anneau, .kc-comete { position: absolute; width: 17rem; height: 17rem; left: -8.5rem; top: -8.5rem; border-radius: 50%; }
.kc-anneau { border: 1.5px dashed hsl(var(--foreground) / .35); box-shadow: 0 0 0 .6rem hsl(var(--foreground) / .03); }
.kc-comete { border: 2.5px solid transparent; border-top-color: var(--ks-courbe); border-right-color: hsl(30 45% 52% / .35); animation: kc-tour 6s linear infinite; }
.kc-orbite { position: absolute; transform-style: preserve-3d; animation: kc-tour 30s linear infinite; }
.kc-n { position: absolute; transform-style: preserve-3d; transform: rotate(var(--a)) translateY(-8.5rem) rotate(calc(-1 * var(--a))); }
.kc-c { display: block; transform-style: preserve-3d; animation: kc-tour 30s linear infinite reverse; }
.kc-f { display: flex; flex-direction: column; align-items: center; gap: .15rem; transform: translate(-50%, -88%) rotateX(-66deg); transform-origin: 50% 100%; animation: kc-actif 6s infinite both; animation-delay: var(--d); }
.kc-f i { order: 2; width: .7rem; height: .7rem; border-radius: 50%; background: hsl(var(--background)); border: 2px solid var(--ks-courbe); }
.kc-f b { font: 600 .62rem/1.1 var(--font-body, inherit); white-space: nowrap; color: hsl(var(--foreground)); background: hsl(var(--background) / .85); padding: .1rem .35rem; border-radius: 3px; border: 1px solid hsl(var(--foreground) / .15); }
@keyframes kc-tour { to { transform: rotate(360deg); } }
@keyframes kc-actif { 0%, 16% { opacity: 1; } 0%, 14% { filter: none; } 19%, 97% { opacity: .45; } 100% { opacity: 1; } }
.kc-centre { position: absolute; left: 50%; top: 56%; transform: translate(-50%, -78%); display: flex; flex-direction: column; align-items: center; gap: .35rem; text-align: center; }
.kc-logo { width: 4.2rem; height: 4.2rem; border-radius: 50%; box-shadow: 0 10px 24px hsl(215 85% 8% / .35); animation: kc-flotte 4s ease-in-out infinite; }
.kc-logo svg { width: 100%; height: 100%; display: block; }
.kc-centre strong { font: 700 1.05rem/1.15 var(--font-heading, inherit); white-space: nowrap; }
@keyframes kc-flotte { 50% { transform: translateY(-5px); } }
@media (prefers-reduced-motion: reduce) { .kc-comete, .kc-orbite, .kc-c, .kc-f, .kc-logo { animation: none; } }
.kc-scene { perspective: 1700px; }
.kc-f b { font-size: .56rem; padding: .08rem .3rem; }

/* Cycle d'amélioration continue : frise de 6 étapes allumées tour à tour, puis retour au début */
.kr { --kr-d: 1.1s; --kr-t: 7.6s; margin: 1.6rem 0 0; max-width: 40rem; }
.kr figcaption { display: flex; align-items: center; gap: .7rem; margin-bottom: .9rem; }
.kr-logo { width: 2.6rem; height: 2.6rem; flex: none; }
.kr-logo svg { width: 100%; height: 100%; display: block; }
.kr figcaption b { display: block; font: 700 1.15rem/1.15 var(--font-heading, inherit); }
.kr figcaption small { display: block; font-size: .8rem; color: hsl(var(--muted-foreground)); }
.kr-rail { list-style: none; margin: 0; padding: 0; position: relative; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: .4rem; }
.kr-rail::before, .kr-rail::after { content: ""; position: absolute; left: 0; top: 1.05rem; height: 2px; border-radius: 2px; }
.kr-rail::before { right: 0; background: hsl(var(--foreground) / .12); }
.kr-rail::after { width: 0; background: var(--ks-courbe); animation: kr-progres var(--kr-t) linear infinite; }
.kr-rail li { position: relative; z-index: 1; display: flex; flex-direction: column; gap: .2rem; min-width: 0; }
.kr-num { width: 2.1rem; height: 2.1rem; display: grid; place-items: center; border-radius: 50%; font: 700 .75rem var(--font-heading, inherit); background: hsl(var(--background)); border: 2px solid hsl(var(--foreground) / .2); color: hsl(var(--muted-foreground)); margin-bottom: .25rem; animation: kr-num var(--kr-t) infinite both; animation-delay: calc(var(--k) * var(--kr-d)); }
.kr-rail b { font: 700 .82rem/1.2 var(--font-heading, inherit); overflow-wrap: anywhere; animation: kr-txt var(--kr-t) infinite both; animation-delay: calc(var(--k) * var(--kr-d)); }
.kr-rail small { font-size: .7rem; line-height: 1.3; color: hsl(var(--muted-foreground)); }
@keyframes kr-num { 0%, 13% { background: var(--ks-courbe); border-color: var(--ks-courbe); color: #fff; transform: scale(1.12); } 16%, 100% { background: hsl(var(--background)); border-color: var(--ks-courbe); color: hsl(var(--foreground)); transform: none; } }
@keyframes kr-txt { 0%, 13% { color: var(--ks-courbe); } 16%, 100% { color: hsl(var(--foreground)); } }
@keyframes kr-progres { 0% { width: 0; opacity: 1; } 80% { width: 100%; } 92% { width: 100%; opacity: 1; } 100% { width: 100%; opacity: 0; } }
.kr-retour { position: relative; margin-top: .3rem; }
.kr-retour svg { width: 100%; height: 2.1rem; display: block; overflow: visible; }
.kr-boucle { fill: none; stroke: hsl(var(--foreground) / .25); stroke-width: 1.5; stroke-dasharray: 5 5; vector-effect: non-scaling-stroke; animation: kr-retour var(--kr-t) linear infinite; }
.kr-fleche { fill: none; stroke: var(--ks-courbe); stroke-width: 2; vector-effect: non-scaling-stroke; stroke-linecap: round; stroke-linejoin: round; }
.kr-retour span { position: absolute; left: 50%; bottom: -.15rem; transform: translateX(-50%); font-size: .72rem; font-weight: 600; white-space: nowrap; color: var(--ks-courbe); background: hsl(var(--background)); padding: 0 .5rem; }
@keyframes kr-retour { 0%, 80% { stroke: hsl(var(--foreground) / .25); stroke-dashoffset: 0; } 81%, 100% { stroke: var(--ks-courbe); stroke-dashoffset: 40; } }
@media (max-width: 640px) {
  .kr-rail { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 1rem; }
  .kr-rail::before, .kr-rail::after { display: none; }
}
@media (prefers-reduced-motion: reduce) { .kr-rail::after, .kr-num, .kr-rail b, .kr-boucle { animation: none; } .kr-rail::after { width: 100%; } .kr-num { border-color: var(--ks-courbe); color: hsl(var(--foreground)); } }
/* Décalages négatifs : chaque étape s'allume à son tour, sans état « allumé » avant son départ */
.kr-num, .kr-rail b { animation-fill-mode: none; animation-delay: calc(var(--k) * var(--kr-d) - var(--kr-t)); }

/* Audit : premier écran court, blocs décideur, apparitions */
.ks-accroche { font-size: clamp(1.1rem, 1.6vw, 1.3rem); line-height: 1.5; margin-top: 1rem !important; max-width: 34rem; }
.ks-preuves { list-style: none; margin: 1.3rem 0 0; padding: 0; display: grid; gap: .55rem; max-width: 34rem; }
.ks-preuves li { display: flex; flex-wrap: wrap; gap: .15rem .5rem; padding-left: 1.4rem; position: relative; line-height: 1.4; }
.ks-preuves li::before { content: ""; position: absolute; left: 0; top: .3em; width: .8rem; height: .45rem; border-left: 2px solid var(--ks-borne); border-bottom: 2px solid var(--ks-borne); transform: rotate(-45deg); }
.ks-preuves b { font-weight: 700; }
.ks-preuves span { color: hsl(var(--muted-foreground)); }
.ks-hero .ks-cta { margin-top: 1.4rem; }
.ks-prix { list-style: none; margin: 2.2rem 0 0; padding: 0; display: grid; gap: 1rem; }
@media (min-width: 800px) { .ks-prix { grid-template-columns: repeat(2, 1fr); } }
.ks-prix-item { display: flex; gap: 1rem; padding: 1.3rem; border: 1px solid var(--ks-trait); border-radius: 6px; }
.ks-prix-n { flex: none; width: 2rem; height: 2rem; display: grid; place-items: center; border-radius: 50%; border: 1.5px solid var(--ks-courbe); font-weight: 700; }
.ks-prix-item h3 { font-size: 1.1rem; margin-bottom: .35rem !important; }
.ks-prix-item h3 em { font-style: normal; font-size: .75rem; font-weight: 600; padding: .1rem .45rem; border-radius: 999px; border: 1px solid hsl(var(--foreground) / .3); color: hsl(var(--muted-foreground)); vertical-align: middle; margin-left: .3rem; }
.ks-prix-item p { color: hsl(var(--muted-foreground)); line-height: 1.55; }
.ks-note { margin-top: 1.2rem !important; color: hsl(var(--muted-foreground)); font-size: .95rem; }
.ks-pilote { list-style: none; margin: 2rem 0 0; padding: 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); }
.ks-pilote li { border-top: 2px solid var(--ks-courbe); padding-top: .8rem; display: grid; gap: .25rem; }
.ks-pilote b { font-size: 1.1rem; } .ks-pilote span { color: hsl(var(--muted-foreground)); }
.ks-qui { display: grid; gap: 2rem; } @media (min-width: 900px) { .ks-qui { grid-template-columns: 3fr 2fr; align-items: start; } }
.ks-qui-faits { list-style: none; margin: 0; padding: 0; display: grid; gap: .9rem; }
.ks-qui-faits li { display: grid; gap: .15rem; padding-bottom: .8rem; border-bottom: 1px solid var(--ks-trait); }
.ks-qui-faits b { font-size: .8rem; text-transform: uppercase; letter-spacing: .06em; color: hsl(var(--muted-foreground)); }
.ks-faq { margin-top: 2rem; display: grid; max-width: 52rem; }
.ks-faq details { border-bottom: 1px solid var(--ks-trait); }
.ks-faq summary { cursor: pointer; padding: 1.1rem 0; font-weight: 600; font-size: 1.05rem; list-style-position: outside; }
.ks-faq details p { padding: 0 0 1.1rem; color: hsl(var(--muted-foreground)); line-height: 1.6; max-width: 46rem; }
.ks-rev { opacity: 0; transform: translateY(18px); transition: opacity .6s ease, transform .6s ease; }
.ks-rev.ks-vu { opacity: 1; transform: none; }
/* Audit : frise lisible à côté du premier écran (aucun mot coupé) */
@media (min-width: 1024px) { .ks-hero-grille { grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); align-items: center; } }
.kr { max-width: none; }
.kr-rail b { overflow-wrap: normal; word-break: normal; hyphens: manual; font-size: clamp(.72rem, .9vw, .82rem); }
.kr-rail small { font-size: .72rem; }
@media (min-width: 1024px) and (max-width: 1279px) { .kr-rail { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 1rem; } .kr-rail::before, .kr-rail::after { display: none; } }

.ks-prix-item p.ks-prix-est { margin-top: .6rem !important; color: hsl(var(--foreground)); font-weight: 600; font-size: .92rem; padding-top: .55rem; border-top: 1px dashed var(--ks-trait); }
/* Boutons : couleur unique du site (bleu --primary, comme « Prendre contact ») */
.ks-btn { border-color: hsl(var(--primary)); border-radius: 6px; }
.ks-btn-main, .ks-final .ks-btn-main { background: hsl(var(--primary)); color: hsl(var(--primary-foreground)); border-color: hsl(var(--primary)); }
.ks-btn-main:hover, .ks-final .ks-btn-main:hover { background: hsl(var(--primary)); color: hsl(var(--primary-foreground)); opacity: .9; }
.ks-btn-ghost { color: hsl(var(--primary)); border-color: hsl(var(--primary)); }
.ks-btn-ghost:hover { background: hsl(var(--primary) / .08); }
.ks-final .ks-btn-ghost { color: #e9ece4; border-color: #e9ece4; }
.ks-btn:focus-visible { outline-color: hsl(var(--primary)); }
.ks-preuves li::before { border-color: hsl(var(--primary)); }
.ks-prix-n { border-color: hsl(var(--primary)); color: hsl(var(--primary)); }
.ks-final .ks-btn-main, .ks-final .ks-btn-main:hover { background: #fff; color: #1A3A5C; border-color: #fff; }

/* Bandeau bleu du premier écran, comme les autres pages */
.ks-hero { background: #1A3A5C; color: #fff; --foreground: 0 0% 100%; --muted-foreground: 210 35% 86%; --background: 211 56% 23%; --border: 210 30% 40%; --ks-courbe: #D9BE96; }
html.dark .ks-hero { --ks-courbe: #D9BE96; }
.ks-hero h1, .ks-hero .ks-accroche, .ks-hero .ks-preuves b { color: #fff; }
.ks-surtitre { color: #D9BE96; font-weight: 600; font-size: .875rem; margin-bottom: .2rem !important; }
.ks-hero .ks-preuves li::before { border-color: #D9BE96; }
.ks-hero .ks-btn-main, .ks-hero .ks-btn-main:hover { background: #fff; color: #1A3A5C; border-color: #fff; }
.ks-hero .ks-btn-ghost { color: #fff; border-color: rgba(255,255,255,.7); }
.ks-hero .ks-btn-ghost:hover { background: rgba(255,255,255,.1); }
.kr-retour span { background: #1A3A5C; }
.ks-scene-sec { padding: 2.5rem 0 3rem; }
.ks-hero h1 .ks-sable { color: #D9BE96; }
.ks-preuves li { flex-direction: column; flex-wrap: nowrap; }
.ks-preuves span { font-size: .6em; }
.ks-preuves li { flex-direction: row; flex-wrap: wrap; align-items: baseline; gap: .1rem .5rem; }
.ks-preuves span { font-size: .72em; }
.ks-lead.ks-lead-desc { font-size: .86rem; }
@media (min-width: 1024px) { .ks-tete { align-items: center; } }

/* Mobile : tableau comparatif en cartes, légende compacte */
@media (max-width: 639px) {
  .ks-cmp { min-width: 0; }
  .ks-cmp thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .ks-cmp, .ks-cmp tbody, .ks-cmp tr, .ks-cmp td { display: block; width: auto !important; }
  .ks-cmp tr { padding: .9rem 0; border-bottom: 1px solid var(--ks-trait); display: grid; grid-template-columns: 1fr 1fr; gap: .35rem .9rem; }
  .ks-cmp td { padding: 0 !important; border: 0 !important; }
  .ks-cmp td:first-child { grid-column: 1 / -1; font-weight: 700; color: hsl(var(--foreground)); }
  .ks-cmp td[data-l]::before { content: attr(data-l); display: block; font-size: .72rem; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; color: hsl(var(--muted-foreground)); margin-bottom: .1rem; }
  .ks-cmp td.dedans { padding-left: .6rem !important; border-left: 2px solid hsl(var(--primary)) !important; }
  .ks-legende { grid-template-columns: 1fr 1fr; }
  .ks-legende-titre { grid-column: 1 / -1; padding: .6rem .9rem; }
  .ks-legende-item { padding: .75rem .8rem; grid-template-columns: 1fr; border-right: 1px solid var(--ks-trait); }
  .ks-legende-item:nth-child(odd) { border-right: 0; }
  .ks-legende-item svg { grid-row: auto; margin: 0; }
  .ks-legende-item b { font-size: 1.15rem; }
  .ks-legende-item span { font-size: .8rem; line-height: 1.35; }
  .ks-legende-item:last-child { grid-column: 1 / -1; border-right: 0; }
}

/* Scène « Intervention Kalykso » — thème Cadastre */
.kss { --ks-courbe: #b98a55; --ks-lac: #2f6f8f; --ks-borne: #2e8b57; --kss-ko: #9a5b22; margin-top: 2.75rem; }
html.dark .kss { --ks-courbe: #a07a4c; --ks-lac: #6aa9c4; --ks-borne: #4cc38a; --kss-ko: #d39a5c; }
.kss-cadre { position: relative; border: 1.5px solid hsl(var(--foreground)); background: hsl(var(--card)); aspect-ratio: 1100 / 640; overflow: hidden; }
@media (max-width: 719px) { .kss-cadre { aspect-ratio: 1 / 1; } }
.kss-svg { display: block; width: 100%; height: 100%; }
.kss-svg text { fill: hsl(var(--foreground)); font: 500 15px var(--font-sans); }

/* Apparitions pilotées par l'étape */
.kss [data-s], .kss-carte { opacity: 0; pointer-events: none; transition: opacity .6s ease; }
.kss [data-s].vis, .kss-carte.vis { opacity: 1; pointer-events: auto; }
.kss [data-s]:not(.vis), .kss-carte:not(.vis) { opacity: 0 !important; pointer-events: none !important; }
.kss-carte { transition-duration: .9s; }

/* Terrain */
.kss .courbe { fill: none; stroke: var(--ks-courbe); stroke-width: 1; opacity: .5; }
.kss .courbe.maitresse { stroke-width: 1.6; opacity: .75; }
.kss .lac { fill: var(--ks-lac); opacity: .16; }
.kss .borne { fill: none; stroke: var(--ks-borne); stroke-width: 2.2; stroke-dasharray: 9 6; pointer-events: stroke; cursor: help; transition: stroke-width .2s; }
.kss .borne:hover, .kss .borne:focus-visible { stroke-width: 4; outline: none; }
.kss .borne-txt { fill: var(--ks-borne); font-weight: 600; }
.kss .exterieur { stroke: hsl(var(--muted-foreground)); stroke-width: 1.2; stroke-dasharray: 2 4; }
.kss .bloque { stroke: var(--ks-borne); stroke-width: 2.4; }
.kss .exterieur-txt { fill: hsl(var(--muted-foreground)); }
.kss-ext { cursor: help; }

/* Sites, noyau, liens */
.kss .site { fill: hsl(var(--card)); stroke: hsl(var(--foreground)); stroke-width: 1.8; }
.kss .noyau { fill: hsl(var(--foreground)); }
.kss .noyau-txt { fill: hsl(var(--card)); font-family: var(--font-heading); font-weight: 700; font-size: 16px; }
.kss .anneau { fill: none; stroke: hsl(var(--foreground)); stroke-width: 1.2; opacity: .35; transform-box: fill-box; transform-origin: center; animation: kssPouls 2.6s ease-in-out infinite; }
.kss .onde { fill: none; stroke: var(--kss-ko); stroke-width: 2; transform-box: fill-box; transform-origin: center; animation: kssOnde 1.8s ease-out infinite; }
.kss .onde.o2 { animation-delay: .9s; }
.kss .bulle { fill: hsl(var(--foreground)); }
.kss .bulle-txt { fill: hsl(var(--card)); font-weight: 600; font-size: 14px; }
.kss-ticket .bulle { fill: var(--ks-lac); }
.kss .flux { stroke: hsl(var(--foreground)); stroke-width: 1.3; stroke-dasharray: 4 7; opacity: .7; }
.kss .flux.vis { animation: kssFlux 1s linear infinite; }
.kss[data-etape="5"] .flux.sonde { stroke: var(--ks-lac); stroke-width: 2.2; opacity: 1; }
.kss .flux.action { stroke: var(--ks-lac); stroke-width: 2.6; opacity: 1; }
.kss .lien { stroke: hsl(var(--foreground)); stroke-width: 1; stroke-dasharray: 2 4; opacity: .55; }
[data-tip] { cursor: pointer; }
.kss [data-tip]:focus { outline: none; }
.kss [data-tip]:focus-visible .site, .kss [data-tip]:focus-visible .noeud, .kss [data-tip]:focus-visible rect, .kss [data-tip]:focus-visible circle { stroke: var(--ks-lac); stroke-width: 3; }

/* Catalogue de scénarios */
.kss .panneau { fill: hsl(var(--card)); stroke: hsl(var(--foreground)); stroke-width: 1.3; }
.kss .panneau-titre { font-family: var(--font-heading); font-weight: 700; font-size: 15px; }
.kss-catalogue { transition: opacity .6s; }
.kss-catalogue.vis.pale { opacity: .45; }
.kss-ligne rect { fill: transparent; transition: fill .3s; }
.kss-ligne text { font-size: 14px; transition: fill .3s, opacity .3s; }
.kss[data-etape="1"] .kss-ligne rect { animation: kssScan .55s ease-in-out calc(var(--i) * .6s + .4s) 1; }
.kss-ligne.marque rect { fill: hsl(var(--foreground)); }
.kss-ligne.marque text { fill: hsl(var(--card)); font-weight: 600; }
.kss-ligne.pale text { opacity: .35; }

/* Outils scellés : ils partent du noyau et prennent leur place */
.kss-outil { transform: translate(var(--dx), var(--dy)) scale(.3); opacity: 0; transition: transform .8s cubic-bezier(.2, .7, .2, 1), opacity .5s; transition-delay: calc(var(--i) * .3s); }
.kss-outils.vis .kss-outil { transform: none; opacity: 1; }
.kss-outil rect { fill: hsl(var(--card)); stroke: hsl(var(--foreground)); stroke-width: 1.3; }
.kss-outil .outil-nom { font-size: 13.5px; font-weight: 600; }
.kss-outil .sceau { fill: var(--ks-lac); font-size: 12px; font-weight: 700; }

/* Carte de dépendances */
.kss .zone { fill: none; stroke: var(--ks-courbe); stroke-width: 1.2; stroke-dasharray: 5 4; }
.kss .arete { stroke: hsl(var(--foreground)); stroke-width: 1.3; stroke-dasharray: 260; stroke-dashoffset: 260; transition: stroke-dashoffset 1.4s ease .4s; }
.kss-deps.vis .arete { stroke-dashoffset: 0; }
.kss-dep[data-dep="ad"] { --o: 0; } .kss-dep[data-dep="sql"] { --o: 1; } .kss-dep[data-dep="sto"] { --o: 2; } .kss-dep[data-dep="pool"] { --o: 3; } .kss-dep[data-dep="app"] { --o: 4; }
.kss .noeud { fill: hsl(var(--card)); stroke: hsl(var(--foreground)); stroke-width: 1.8; transition: fill .4s, stroke .4s; }
.kss .test { fill: none; stroke: var(--ks-lac); stroke-width: 2; opacity: 0; transform-box: fill-box; transform-origin: center; }
.kss .etat { font-size: 13px; font-weight: 700; opacity: 0; transition: opacity .4s; }
.kss-dep.ok .noeud { fill: var(--ks-lac); stroke: var(--ks-lac); }
.kss-dep.ok .etat { fill: var(--ks-lac); opacity: 1; }
.kss-dep.ko .noeud { fill: var(--kss-ko); stroke: var(--kss-ko); }
.kss-dep.ko .etat { fill: var(--kss-ko); opacity: 1; }
.kss-dep.teste .noeud, .kss-dep.teste .etat { transition-delay: calc(var(--o) * 1.1s + .8s); }
.kss-dep.teste .test { animation: kssSonde 1s ease-out calc(var(--o) * 1.1s) 1; }

/* Approbation */
.kss-carte-appro text { font-size: 14px; }
.kss-carte-appro .panneau-titre { font-size: 15px; }
.kss-tampon rect { fill: hsl(var(--card)); stroke: var(--ks-lac); stroke-width: 2.6; }
.kss-tampon text { fill: var(--ks-lac); font-family: var(--font-heading); font-weight: 700; font-size: 19px; }
.kss-tampon > * { transform-box: fill-box; transform-origin: center; }
.kss-tampon.vis > * { animation: kssTampon .45s cubic-bezier(.3, 1.6, .5, 1) both; }

/* Orbite des composants */
.kss .orbite { fill: none; stroke: var(--ks-courbe); stroke-width: 1.2; opacity: .8; }
.kss .orbite-nom { font-family: var(--font-heading); font-weight: 700; font-size: 14px; fill: hsl(var(--muted-foreground)); }
.kss-fonction circle { fill: hsl(var(--card)); stroke: hsl(var(--foreground)); stroke-width: 1.8; transition: fill .2s; }
.kss-fonction text { font-size: 14px; }
.kss-fonction:hover circle, .kss-fonction:focus-visible circle { fill: hsl(var(--foreground)); }

/* Chronomètre */
.kss-chrono { position: absolute; top: .75rem; right: .75rem; background: hsl(var(--card)); border: 1.5px solid hsl(var(--foreground)); padding: .45rem .75rem; display: grid; text-align: right; transition: border-color .4s; }
.kss-chrono-lib { font-size: .75rem; color: hsl(var(--muted-foreground)); }
.kss-chrono b { font-family: var(--font-heading); font-size: 1.35rem; font-variant-numeric: tabular-nums; line-height: 1.15; }
.kss-chrono.fini { border-color: var(--ks-lac); }
.kss-chrono.fini b { color: var(--ks-lac); }
@media (max-width: 719px) { .kss-chrono { top: .5rem; right: .5rem; padding: .3rem .55rem; } .kss-chrono b { font-size: 1.05rem; } }

/* Fiche au survol */
.kss-tip { position: absolute; z-index: 5; max-width: 270px; background: hsl(var(--foreground)); color: hsl(var(--card)); padding: .7rem .9rem; border-radius: 4px; font-size: .875rem; line-height: 1.45; pointer-events: none; }
.kss-tip b { display: block; font-family: var(--font-heading); font-size: .95rem; margin-bottom: .2rem; }

/* Commandes, frise des étapes, récit */
.kss-commandes { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; margin-top: 1rem; }
.kss-modes { display: flex; flex-wrap: wrap; gap: .4rem; }
.kss button { font: 600 .9rem var(--font-sans); color: hsl(var(--foreground)); background: transparent; border: 1.5px solid hsl(var(--foreground)); border-radius: 4px; padding: .5rem .9rem; cursor: pointer; transition: background .15s, color .15s; }
.kss button:hover { background: hsl(var(--foreground) / .07); }
.kss button[aria-pressed="true"] { background: hsl(var(--foreground)); color: hsl(var(--card)); }
.kss button:focus-visible { outline: 2px solid var(--ks-lac); outline-offset: 2px; }
.kss-modes::before { content: "Niveau d'autonomie"; align-self: center; font-size: .85rem; color: hsl(var(--muted-foreground)); margin-right: .35rem; }
.kss-frise { list-style: none; padding: 0; margin: 1rem 0 0; display: flex; flex-wrap: wrap; gap: .35rem; }
.kss-frise button { font-size: .8rem; font-weight: 500; padding: .3rem .6rem; border-width: 1px; border-color: hsl(var(--border)); display: inline-flex; gap: .4rem; align-items: center; }
.kss-frise .n { font-family: var(--font-heading); font-weight: 700; }
.kss-frise li.fait button { color: hsl(var(--muted-foreground)); border-color: var(--ks-courbe); }
.kss-frise li.actif button { background: hsl(var(--foreground)); color: hsl(var(--card)); border-color: hsl(var(--foreground)); }
.kss-recit { margin-top: 1rem !important; max-width: 52rem; font-size: 1.05rem; line-height: 1.6; min-height: 3.4em; }
.kss-recit b { font-family: var(--font-heading); }
.kss-recit span { color: hsl(var(--muted-foreground)); }

@keyframes kssPouls { 0%, 100% { transform: scale(1); opacity: .35; } 50% { transform: scale(1.12); opacity: .1; } }
@keyframes kssOnde { from { transform: scale(1); opacity: .9; } to { transform: scale(3.6); opacity: 0; } }
@keyframes kssFlux { to { stroke-dashoffset: -22; } }
@keyframes kssScan { 50% { fill: color-mix(in srgb, var(--ks-courbe) 35%, transparent); } }
@keyframes kssSonde { 0% { opacity: .9; transform: scale(1); } 100% { opacity: 0; transform: scale(2.6); } }
@keyframes kssTampon { from { transform: scale(1.9); opacity: 0; } to { transform: scale(1); opacity: 1; } }

.kss.kss-instant .kss-outil, .kss.kss-instant .arete, .kss.kss-instant .noeud, .kss.kss-instant .etat { transition: none; }
@media (prefers-reduced-motion: reduce) {
  .kss *, .kss *::before { animation: none !important; transition: none !important; }
}

/* Scène 3D « Intervention Kalykso » — accueil (thème Cadastre). Palette fixe dans la scène,
   jetons du site pour les commandes autour (mode sombre). */
.k3d { --papier: #ffffff; --carte: #f4f6f1; --encre: #1f2a24; --gris: #55615a; --trait: #c3cabd; --courbe: #b98a55; --lac: #2f6f8f; --borne: #c8372d; --perim: #2e8b57; --ko: #9a5b22;
  --k-titre: var(--font-heading); --k-texte: var(--font-sans); margin-top: 2.5rem; font-family: var(--k-texte); }
.k3d .scene p, .k3d .panneaux p { margin: 0; }
.k3d .cadre { position: relative; }
.k3d .panneaux { position: absolute; inset: 0; z-index: 3; pointer-events: none; color: var(--encre); }
.k3d .panneaux > * { pointer-events: auto; }
.k3d .scene { color: var(--encre); }
.k3d .scene { position: relative; height: min(78vh, 720px); min-height: 460px; border: 1.5px solid var(--encre); background: var(--papier); overflow: hidden; touch-action: pan-y; }
.k3d .scene canvas { display: block; }
.k3d .etiquettes { position: absolute; inset: 0; pointer-events: none; }
.k3d .lbl { font: 600 12.5px/1.2 var(--k-texte); color: var(--encre); background: var(--carte); border: 1px solid var(--encre); padding: 3px 7px; border-radius: 3px; white-space: nowrap; opacity: 0; transition: opacity .5s, background .4s, color .4s, border-color .4s; pointer-events: none; cursor: help; }
.k3d .lbl.on { opacity: 1; pointer-events: auto; }
.k3d .scene::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(ellipse at 50% 45%, transparent 55%, rgba(31,42,36,.10) 100%); }
.k3d .lbl.noyau { background: var(--encre); color: var(--carte); font-family: var(--k-titre); font-size: 14px; }
.k3d .lbl.ok { border-color: var(--lac); color: var(--lac); }
.k3d .lbl.ko { border-color: var(--ko); color: var(--ko); }
.k3d .lbl.cause { background: var(--ko); border-color: var(--ko); color: #fff; }
.k3d .lbl.borne { color: var(--borne); border-color: var(--borne); }
.k3d .lbl.vert { background: #3e8e5a; border-color: #3e8e5a; color: #fff; }
.k3d .astuce { position: absolute; z-index: 3; top: .8rem; right: .8rem; margin: 0; background: var(--encre); color: var(--carte); font-size: .425rem; font-weight: 600; padding: .25rem .5rem; border-radius: 3px; white-space: nowrap; }
.k3d .lbl.choisi { background: var(--encre); color: var(--carte); }
.k3d .lbl.scan { border-color: var(--courbe); background: #efe4d3; }
.k3d .lbl.petit { font-size: 11.5px; font-weight: 500; }
.k3d .lbl.carte-appro { font-weight: 500; line-height: 1.45; padding: 8px 11px; white-space: normal; width: 230px; }
.k3d .lbl.carte-appro b { font-family: var(--k-titre); display: block; margin-bottom: 2px; }
.k3d .tampon { display: inline-block; margin-top: 6px; border: 2px solid var(--lac); color: var(--lac); font: 700 15px var(--k-titre); padding: 1px 8px; transform: rotate(-7deg) scale(1.8); opacity: 0; transition: transform .35s cubic-bezier(.3,1.6,.5,1), opacity .2s; }
.k3d .tampon.on { transform: rotate(-7deg) scale(1); opacity: 1; }

.k3d .chrono, .k3d .recit, .k3d .etiquettes, .k3d .actions { z-index: 3; }
.k3d .actions { position: absolute; bottom: .8rem; right: .8rem; width: min(26rem, calc(50% - 1.2rem)); background: rgba(244,246,241,.95); border: 1.5px solid var(--encre); padding: .6rem .85rem .7rem; }
.k3d .actions .qui { margin: 0 0 .35rem; font: 700 .7rem var(--k-titre); color: var(--gris); }
.k3d .actions ol { list-style: none; margin: 0; padding: 0; display: grid; gap: .3rem; }
.k3d .actions li { display: grid; grid-template-columns: .9rem 1fr; gap: .4rem; font-size: .76rem; line-height: 1.3; color: var(--gris); }
.k3d .actions li:nth-last-child(n+6) { display: none; }
.k3d .actions li::before { content: "✓"; color: var(--lac); font-weight: 700; }
.k3d .actions li.cours { color: var(--encre); font-weight: 600; }
.k3d .actions li.cours::before { content: ""; width: .65rem; height: .65rem; margin-top: .22rem; border: 2px solid var(--courbe); border-right-color: transparent; border-radius: 50%; animation: k3d-tourne .8s linear infinite; }
.k3d .actions li.ko::before { content: "!"; color: var(--ko); text-align: center; }
.k3d .actions li.ko { color: var(--ko); }
.k3d .actions li.x::before { content: "✕"; color: var(--borne); }
@keyframes k3d-tourne { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .k3d .actions li.cours::before { animation: none; } }
.k3d .chrono { position: absolute; top: .8rem; right: .8rem; background: var(--carte); border: 1.5px solid var(--encre); padding: .45rem .8rem; text-align: right; display: grid; }
.k3d .chrono span { font-size: .75rem; color: var(--gris); }
.k3d .chrono b { font: 700 1.45rem/1.1 var(--k-titre); font-variant-numeric: tabular-nums; }
.k3d .chrono.fini { border-color: var(--lac); } .k3d .chrono.fini b { color: var(--lac); }
.k3d .recit { position: absolute; left: .8rem; bottom: .8rem; max-width: min(30rem, calc(50% - 1.2rem)); background: var(--carte); border: 1.5px solid var(--encre); padding: .6rem .8rem; }
.k3d .recit b { font: 700 .9rem var(--k-titre); display: block; margin-bottom: .15rem; }
.k3d .recit span { color: var(--gris); line-height: 1.45; font-size: .8rem; }
.k3d .fiche { position: absolute; z-index: 5; max-width: 270px; background: var(--encre); color: var(--carte); padding: .7rem .9rem; border-radius: 4px; font-size: .875rem; line-height: 1.45; pointer-events: none; }
.k3d .fiche b { display: block; font-family: var(--k-titre); margin-bottom: .15rem; }
.k3d .repli { position: absolute; inset: 0; display: grid; place-items: center; padding: 2rem; text-align: center; color: var(--gris); }

.k3d .commandes { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .75rem; margin-top: 1rem; }
.k3d .modes { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; }
.k3d .modes > span { font-size: .85rem; color: var(--gris); margin-right: .3rem; }
.k3d button { font: 600 .9rem var(--k-texte); color: var(--encre); background: transparent; border: 1.5px solid var(--encre); border-radius: 4px; padding: .5rem .9rem; cursor: pointer; }
.k3d button:hover { background: rgba(31,42,36,.07); }
.k3d button[aria-pressed="true"] { background: var(--encre); color: var(--carte); }
.k3d button:focus-visible { outline: 2px solid var(--lac); outline-offset: 2px; }
.k3d .frise { list-style: none; padding: 0; margin: .9rem 0 0; display: flex; flex-wrap: wrap; gap: .35rem; }
.k3d .frise button { font-size: .8rem; font-weight: 500; padding: .3rem .6rem; border-width: 1px; border-color: var(--trait); }
.k3d .frise .n { font-family: var(--k-titre); font-weight: 700; margin-right: .35rem; }
.k3d .frise li.fait button { color: var(--gris); border-color: var(--courbe); }
.k3d .frise li.actif button { background: var(--encre); color: var(--carte); border-color: var(--encre); }
.k3d .note { font-size: .85rem; color: var(--gris); margin-top: 1rem; }
@media (max-width: 700px) { .k3d .recit { left: .5rem; right: .5rem; bottom: .5rem; max-width: none; padding: .6rem .75rem; } .k3d .recit b { font-size: .95rem; } .k3d .recit span { font-size: .85rem; } .k3d .scene { height: 72vh; } .k3d .chrono { top: .5rem; right: .5rem; padding: .3rem .6rem; } .k3d .chrono b { font-size: 1.1rem; } .k3d .lbl { font-size: 11px; } .k3d .lbl.carte-appro { width: 190px; }
  .k3d .actions { top: .5rem; left: .5rem; bottom: auto; right: auto; width: calc(100% - 7.6rem); padding: .45rem .55rem; } .k3d .actions .qui { font-size: .7rem; margin-bottom: .25rem; }
  .k3d .actions li { font-size: .75rem; } .k3d .astuce { top: auto; bottom: 7.5rem; font-size: .72rem; white-space: normal; width: max-content; max-width: calc(100% - 1rem); text-align: center; } .k3d .actions li:nth-last-child(n+3) { display: none; } }

.k3d .commandes button, .k3d .frise button { color: hsl(var(--foreground)); border-color: hsl(var(--foreground)); }
.k3d .frise button { border-color: hsl(var(--border)); }
.k3d .commandes button:hover, .k3d .frise button:hover { background: hsl(var(--foreground) / .07); }
.k3d .commandes button[aria-pressed="true"], .k3d .frise li.actif button { background: hsl(var(--foreground)); color: hsl(var(--background)); border-color: hsl(var(--foreground)); }
.k3d .modes > span, .k3d .note, .k3d .frise li.fait button { color: hsl(var(--muted-foreground)); }
.k3d .frise li.fait button { border-color: var(--courbe); }
.k3d .note { margin: 1rem 0 0; }

/* Mobile : les panneaux passent sous la scène pour ne rien cacher */
@media (max-width: 700px) {
  .k3d .scene { height: 62vh; min-height: 380px; }
  .k3d .panneaux { position: static; display: grid; grid-template-columns: 1fr auto; align-items: start; gap: .5rem; margin-top: .5rem; }
  .k3d .panneaux .chrono, .k3d .panneaux .actions, .k3d .panneaux .recit { position: static; width: auto; max-width: none; inset: auto; }
  .k3d .panneaux .actions { grid-column: 1; grid-row: 1; }
  .k3d .panneaux .chrono { grid-column: 2; grid-row: 1; }
  .k3d .panneaux .recit { grid-column: 1 / -1; }
  .k3d .actions li:nth-last-child(n+3) { display: grid; }
  .k3d .actions li:nth-last-child(n+4) { display: none; }
  .k3d .astuce { bottom: .5rem; }
  .k3d .lbl { font-size: 10px; padding: 2px 5px; } .k3d .lbl.noyau { font-size: 11px; }
}

.k3d .lbl.mini { font-size: 8px; font-weight: 600; padding: 1px 4px; border-radius: 2px; }

/* Logo « certifié conforme » à la place du mot « scellé » */
.k3d .lbl .cert { display: inline-block; width: 1.05em; height: 1.05em; vertical-align: -0.18em; margin-left: 3px; }

/* Focus sur l'action de l'IA : description tapée, puis résultat */
.k3d .focus { position: absolute; z-index: 4; top: .8rem; left: 50%; transform: translateX(-50%); width: min(38rem, calc(100% - 15rem)); background: var(--encre); color: var(--carte); padding: .75rem 1rem .85rem; border-radius: 4px; box-shadow: 0 8px 24px rgba(31,42,36,.25); pointer-events: none; }
.k3d .focus .qui { display: block; font: 700 .68rem var(--k-titre); letter-spacing: .08em; text-transform: uppercase; color: var(--courbe); margin-bottom: .25rem; }
.k3d .focus p { margin: 0; font-size: .95rem; line-height: 1.45; min-height: 2.9em; }
.k3d .focus.res { background: #3e8e5a; }
.k3d .focus.res .qui { color: #e3f1e7; }
.k3d .focus.res p { font: 700 1.1rem/1.3 var(--k-titre); min-height: 0; }
.k3d .focus.res p::before { content: "✓ "; }
.k3d .enpause { position: absolute; z-index: 4; left: 50%; bottom: .8rem; transform: translateX(-50%); margin: 0; background: rgba(31,42,36,.85); color: var(--carte); font-size: .75rem; font-weight: 600; padding: .3rem .7rem; border-radius: 999px; pointer-events: none; white-space: nowrap; }

/* Fin de l'animation : les panneaux s'effacent pour laisser voir les fonctionnalités */
.k3d.k3d-fin .panneaux .chrono, .k3d.k3d-fin .panneaux .actions, .k3d.k3d-fin .panneaux .recit { display: none; }

@media (max-width: 700px) {
  .k3d .focus { width: calc(100% - 1rem); top: .5rem; padding: .55rem .7rem .6rem; }
  .k3d .focus p { font-size: .8rem; }
  .k3d .focus.res p { font-size: .9rem; }
  .k3d .recit span { font-size: .76rem; } .k3d .recit b { font-size: .85rem; }
  .k3d .actions li { font-size: .7rem; }
}

/* Panneau de description des actions (remplace le récit) */
.k3d .recit.res { border-color: #3e8e5a; }
.k3d .recit.res b { color: #3e8e5a; }
.k3d .recit.res span { color: #3e8e5a; font: 700 1rem/1.3 var(--k-titre); }
.k3d .recit.res span::before { content: "✓ "; }

/* Chronomètre agrandi au centre à la clôture */
.k3d .chrono { transition: top .6s cubic-bezier(.3,1.2,.5,1), right .6s cubic-bezier(.3,1.2,.5,1), transform .6s cubic-bezier(.3,1.2,.5,1), border-color .4s; transform-origin: center; }
.k3d .chrono small { display: none; }
.k3d .chrono.grand { top: 50%; right: 50%; transform: translate(50%, -50%) scale(2); border-color: #3e8e5a; text-align: center; z-index: 6; }
.k3d .chrono.grand span, .k3d .chrono.grand b { color: #3e8e5a; }
.k3d .chrono.grand small { display: block; color: #3e8e5a; font: 600 .725rem/1.3 var(--k-texte); margin-top: .15rem; white-space: nowrap; }
@media (max-width: 700px) {
  .k3d .astuce { top: .5rem; bottom: auto; right: .5rem; left: auto; transform: none; width: auto; font-size: .36rem; }
  .k3d .chrono.grand { transform: none; top: auto; right: auto; }
}

/* Panneau de description des actions : coin supérieur gauche, couleurs de l'étiquette « Agent IA Kalykso », taille réduite de moitié */
.k3d .recit { top: .8rem; bottom: auto; left: .8rem; max-width: min(15rem, calc(50% - 1.2rem)); background: var(--encre); border-color: var(--encre); color: var(--carte); padding: .3rem .45rem; }
.k3d .recit b { font-size: .45rem; color: var(--courbe); margin-bottom: .1rem; letter-spacing: .02em; }
.k3d .recit span { font-size: .4rem; line-height: 1.4; color: var(--carte); }
.k3d .recit.res { border-color: var(--encre); }
.k3d .recit.res b { color: var(--courbe); }
.k3d .recit.res span { color: var(--carte); font: 700 .5rem/1.3 var(--k-titre); }

/* Panneau des actions : sur le terrain, au pied de l'agent */
.k3d .actions.sur-terrain { position: absolute; inset: auto; width: 12rem; padding: .3rem .45rem .35rem; background: rgba(244,246,241,.88); border: 1px solid var(--encre); border-radius: 3px; pointer-events: none; box-shadow: 0 4px 12px rgba(31,42,36,.15); }
.k3d .actions.sur-terrain .qui { display: flex; align-items: center; gap: .3rem; margin: 0 0 .2rem; font-size: .55rem; color: var(--encre); }
.k3d .actions.sur-terrain .neuro { display: inline-block; width: 1.4rem; height: .95rem; color: var(--courbe); flex: none; }
.k3d .actions.sur-terrain .neuro circle.n1 { animation: k3d-neuro 1.2s ease-in-out infinite; }
.k3d .actions.sur-terrain .neuro circle.n2 { animation: k3d-neuro 1.2s ease-in-out .4s infinite; }
.k3d .actions.sur-terrain .neuro circle.n3 { animation: k3d-neuro 1.2s ease-in-out .8s infinite; }
@keyframes k3d-neuro { 0%, 100% { fill: var(--courbe); } 50% { fill: var(--lac); } }
@media (prefers-reduced-motion: reduce) { .k3d .actions.sur-terrain .neuro circle { animation: none; } }
.k3d .actions.sur-terrain ol { gap: .12rem; }
.k3d .actions.sur-terrain li { font-size: .52rem; line-height: 1.3; grid-template-columns: .55rem 1fr; gap: .25rem; }
.k3d .actions.sur-terrain li.cours::before { width: .42rem; height: .42rem; margin-top: .1rem; border-width: 1.5px; }
.k3d .actions.sur-terrain li:nth-last-child(n+5) { display: none; }
.k3d.k3d-fin .actions.sur-terrain { visibility: hidden; }

/* Orbites : fonctionnalités à 50 % (les titres des 3 composants gardent leur taille) */
.k3d .lbl.petit.orb { font-size: 5.75px; padding: 1px 3px; }
.k3d .lbl.petit.orb.mini { font-size: 4px; padding: 0 2px; }

@media (max-width: 700px) {
  .k3d .recit { top: .5rem; left: .5rem; right: auto; bottom: auto; max-width: 11rem; }
  .k3d .actions.sur-terrain { width: 9.5rem; }
  .k3d .actions.sur-terrain li { font-size: .46rem; }
}
.k3d .recit { font-size: .4rem; line-height: 1.4; }
.k3d .recit span { display: block; }

/* Scénario retenu : description en petits caractères sous le nom */
.k3d .lbl .desc-scen { display: block; font-size: 7.5px; font-weight: 500; line-height: 1.3; margin-top: 2px; white-space: normal; width: 150px; opacity: .92; }

/* Détection (rouge) puis historique de l'incident (vert) sous la supervision */
.k3d .lbl.det { background: var(--borne); border-color: var(--borne); color: #fff; }
.k3d .lbl.det.fini { background: #3e8e5a; border-color: #3e8e5a; white-space: normal; width: 300px; font-size: 10px; padding: 5px 8px 6px; line-height: 1.3; }
.k3d .lbl.det.fini s { display: block; opacity: .7; font-weight: 500; }
.k3d .lbl.det.fini b { display: block; font: 700 11px var(--k-titre); margin: 3px 0 2px; }
.k3d .lbl.det.fini ol { list-style: none; margin: 0; padding: 0; display: grid; gap: 1px; }
.k3d .lbl.det.fini li { display: grid; grid-template-columns: auto 1fr; gap: 4px; font-weight: 500; animation: k3d-coche .35s ease-out; }
.k3d .lbl.det.fini li span { font-variant-numeric: tabular-nums; opacity: .8; }
.k3d .lbl.det.fini li::before { content: "✓"; position: absolute; margin-left: -10px; }
.k3d .lbl.det.fini ol { padding-left: 10px; }
@keyframes k3d-coche { from { opacity: 0; transform: translateX(-4px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .k3d .lbl.det.fini li { animation: none; } }
/* L'historique se décale à gauche pour ne pas passer sous le chronomètre agrandi */
.k3d .lbl.det.fini { translate: -62% 0; transition: translate .5s ease, background .4s, opacity .5s; }

/* Historique : titre −50 %, chronologie −40 % ; comparaison du chronomètre −70 % */
.k3d .lbl.det.fini b { font-size: 5.5px; }
.k3d .lbl.det.fini li { font-size: 6px; }
.k3d .chrono.grand small { font-size: .2175rem; }

/* Détection : texte réduit de 50 % */
.k3d .lbl.det { font-size: 6.25px; padding: 2px 4px; }
/* Introduction : « Votre entreprise » au-dessus du dôme */
.k3d .lbl.entreprise { background: var(--borne); border-color: var(--borne); color: #fff; font: 700 16px var(--k-titre); padding: 5px 12px; letter-spacing: .02em; }

/* Commandes sous l'animation : une seule ligne, réduites de 70 %, collées au cadre */
.k3d .barre { display: flex; flex-wrap: wrap; align-items: center; gap: .2rem .45rem; margin-top: .25rem; }
.k3d .barre .commandes { margin: 0; gap: .25rem; flex-wrap: nowrap; }
.k3d .barre .modes { gap: .15rem; flex-wrap: nowrap; }
.k3d .barre .modes > span { font-size: .3rem; margin-right: .1rem; white-space: nowrap; }
.k3d .barre .frise { margin: 0; gap: .12rem; }
.k3d .barre button { font-size: .3rem; padding: .12rem .25rem; border-width: 1px; border-radius: 2px; line-height: 1.2; }
.k3d .barre .frise .n { margin-right: .12rem; }

.k3d .lbl.vert-pipe { background: #3e8e5a; border-color: #3e8e5a; color: #fff; font-size: 7px; padding: 1px 4px; }

/* Commandes : remplissent toute la largeur de l'animation, quelle que soit la taille d'écran */
.k3d { container-type: inline-size; }
.k3d .barre { display: flex; flex-wrap: nowrap; align-items: stretch; gap: .5cqw; margin-top: .4rem; width: 100%; }
.k3d .barre .commandes, .k3d .barre .modes, .k3d .barre .frise { display: flex; flex-wrap: nowrap; gap: .4cqw; margin: 0; }
.k3d .barre .commandes { flex: 0 0 auto; }
.k3d .barre .frise { flex: 1 1 auto; }
.k3d .barre .frise li { flex: 1 1 auto; display: flex; }
.k3d .barre button { flex: 1 1 auto; font-size: clamp(6px, .82cqw, 13px); padding: .45cqw .5cqw; white-space: nowrap; border-width: 1px; border-radius: 3px; }
.k3d .barre .modes > span { font-size: clamp(6px, .78cqw, 12px); white-space: normal; max-width: 9cqw; line-height: 1.15; align-self: center; margin-right: .2cqw; }
.k3d .barre .frise .n { margin-right: .3cqw; }
@media (max-width: 700px) {
  .k3d .barre { flex-wrap: wrap; gap: .35rem; }
  .k3d .barre .commandes, .k3d .barre .frise { flex: 1 1 100%; flex-wrap: wrap; }
  .k3d .barre .frise li { flex: 1 1 18%; }
  .k3d .barre button { font-size: .62rem; padding: .3rem .35rem; }
  .k3d .barre .modes > span { font-size: .62rem; max-width: none; }
}

/* Composants : seuls les textes des orbites restent visibles */
.k3d.k3d-fin .lbl:not(.orb):not(.orbite-l) { opacity: 0 !important; visibility: hidden !important; transition: opacity .5s; }

/* Cas d'utilisation : sélecteur sous l'animation, sur toute la largeur */
.k3d .cas-choix { display: flex; align-items: stretch; gap: .5cqw; margin-top: .4rem; width: 100%; }
.k3d .cas-choix > span { font-size: clamp(7px, .9cqw, 13px); font-weight: 600; align-self: center; white-space: nowrap; margin-right: .3cqw; color: hsl(var(--muted-foreground)); }
.k3d .cas-choix button { flex: 1 1 0; font-size: clamp(7px, 1cqw, 14px); padding: .5cqw .6cqw; border-width: 1px; border-radius: 3px; color: hsl(var(--foreground)); border-color: hsl(var(--foreground)); }
.k3d .cas-choix button:hover { background: hsl(var(--foreground) / .07); }
.k3d .cas-choix button[aria-pressed="true"] { background: hsl(var(--foreground)); color: hsl(var(--background)); }
/* Fin : rejouer ou voir un autre cas (sous les orbites) */
.k3d .fin-cas { position: absolute; left: 50%; bottom: .8rem; transform: translateX(-50%); z-index: 6; max-width: calc(100% - 1.6rem); display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: .4rem .6rem; background: var(--encre); color: var(--carte); padding: .45rem .6rem; border-radius: 5px; box-shadow: 0 6px 18px rgba(31,42,36,.25); animation: k3d-fin-cas .4s ease-out; }
.k3d .fin-cas p { margin: 0; font: 700 .8rem var(--k-titre); white-space: nowrap; }
.k3d .fin-cas div { display: flex; flex-wrap: wrap; justify-content: center; gap: .35rem; }
.k3d .fin-cas button { background: var(--carte); color: var(--encre); border: 1px solid var(--carte); font-size: .72rem; padding: .3rem .6rem; }
.k3d .fin-cas button:hover { background: #fff; }
.k3d .fin-cas button:first-child { background: var(--courbe); border-color: var(--courbe); color: #fff; }
@keyframes k3d-fin-cas { from { opacity: 0; transform: translate(-50%, 8px); } to { opacity: 1; transform: translate(-50%, 0); } }
@media (prefers-reduced-motion: reduce) { .k3d .fin-cas { animation: none; } }
@media (max-width: 700px) {
  .k3d .cas-choix { flex-wrap: wrap; gap: .3rem; }
  .k3d .cas-choix > span { flex: 1 1 100%; font-size: .62rem; }
  .k3d .cas-choix button { font-size: .62rem; padding: .3rem .35rem; }
  .k3d .fin-cas button { font-size: .62rem; }
}
.k3d .fin-cas[hidden] { display: none; }

/* Vitesse de l'animation : petit curseur, coin inférieur droit */
.k3d .vitesse { position: absolute; right: .6rem; bottom: .6rem; z-index: 5; display: flex; align-items: center; gap: .3rem; background: rgba(244,246,241,.9); border: 1px solid var(--encre); border-radius: 3px; padding: .15rem .4rem; font: 600 .55rem var(--k-texte); color: var(--encre); }
.k3d .vitesse input { width: 4.5rem; height: .7rem; accent-color: var(--encre); margin: 0; cursor: pointer; }
.k3d .vitesse output { min-width: 1.8rem; text-align: right; font-variant-numeric: tabular-nums; }
/* Curseur de vitesse réduit */
.k3d .vitesse { right: .45rem; bottom: .45rem; gap: .2rem; padding: .05rem .25rem; font-size: .42rem; border-radius: 2px; }
.k3d .vitesse input { width: 2.8rem; height: .5rem; }
.k3d .vitesse output { min-width: 1.3rem; }

/* Annonce au-dessus de l'animation */
.k3d .k3d-annonce { margin: 0 0 .6rem; font-size: .9rem; line-height: 1.45; color: hsl(var(--muted-foreground)); }
.k3d .k3d-annonce b { color: hsl(var(--foreground)); font-family: var(--k-titre); }

/* Audit : périmètre en vert, étiquettes d'au moins 12 px, réglages derrière « Explorer d'autres cas » */
.k3d .lbl.borne { color: var(--perim); border-color: var(--perim); }
.k3d .lbl.entreprise { background: var(--perim); border-color: var(--perim); }
.k3d .lbl, .k3d .lbl.petit, .k3d .lbl.det, .k3d .lbl.petit.orb { font-size: 12px; }
.k3d .lbl.mini, .k3d .lbl.petit.orb.mini, .k3d .lbl.vert-pipe { font-size: 11px; }
.k3d .lbl .desc-scen { font-size: 11px; width: 200px; }
.k3d .lbl.det.fini { font-size: 12px; } .k3d .lbl.det.fini b, .k3d .lbl.det.fini li { font-size: 11px; }
.k3d .recit b { font-size: max(.45rem, 13px); } .k3d .recit span, .k3d .recit { font-size: max(.4rem, 12px); }
.k3d .actions.sur-terrain .qui { font-size: max(.55rem, 12px); } .k3d .actions.sur-terrain li { font-size: max(.52rem, 12px); }
.k3d-explorer { display: block; margin: .6rem 0 .2rem auto; font: 600 .9rem var(--font-sans, inherit); padding: .55rem 1rem; min-height: 44px; border: 1px solid hsl(var(--foreground) / .35); border-radius: 6px; background: transparent; color: hsl(var(--foreground)); cursor: pointer; }
.k3d-explorer:hover { background: hsl(var(--foreground) / .06); }
.k3d.k3d-guide .cas-choix, .k3d.k3d-guide .barre .modes, .k3d.k3d-guide .barre .frise, .k3d.k3d-guide .vitesse { display: none !important; }
@media (max-width: 700px) { .k3d .barre button, .k3d .cas-choix button { min-height: 40px; font-size: .8rem; } }
/* Boutons de l'animation : bleu --primary */
.k3d button, .k3d .commandes button, .k3d .frise button, .k3d .cas-choix button, .k3d-explorer { color: hsl(var(--primary)); border-color: hsl(var(--primary)); }
.k3d button:hover, .k3d .commandes button:hover, .k3d .frise button:hover, .k3d .cas-choix button:hover, .k3d-explorer:hover { background: hsl(var(--primary) / .08); }
.k3d button[aria-pressed="true"], .k3d .commandes button[aria-pressed="true"], .k3d .frise li.actif button, .k3d .cas-choix button[aria-pressed="true"], .k3d .fin-cas button:first-child { background: hsl(var(--primary)); color: hsl(var(--primary-foreground)); border-color: hsl(var(--primary)); }
.k3d .fin-cas button { color: hsl(var(--primary)); }

/* Note collée sous la scène, texte réduit de 50 % ; pause en bas à gauche de la scène */
.k3d .note { font-size: .425rem; margin: .15rem 0 0; line-height: 1.3; }
.k3d .k3d-pause, .k3d .scene button.k3d-pause { position: absolute; left: .6rem; bottom: .6rem; z-index: 5; font-size: .75rem; padding: .3rem .7rem; min-height: 0; background: rgba(244,246,241,.9); color: hsl(var(--primary)); border: 1px solid hsl(var(--primary)); border-radius: 4px; }
.k3d .scene button.k3d-pause[aria-pressed="true"] { background: rgba(244,246,241,.9); color: hsl(var(--primary)); }
/* Chronomètre aligné sur la taille du bouton Pause (bureau et mobile) */
.k3d .chrono:not(.grand) { display: flex; align-items: center; gap: .4rem; padding: .3rem .7rem; border-radius: 4px; line-height: 1.2; min-height: 0; }
.k3d .chrono:not(.grand) span { font-size: .75rem; }
.k3d .chrono:not(.grand) b { font-size: .75rem; font-weight: 700; letter-spacing: .02em; }
.k3d .chrono:not(.grand) small { display: none; }
@media (max-width: 700px) { .k3d .chrono:not(.grand) { top: .5rem; right: .5rem; padding: .25rem .55rem; } .k3d .chrono:not(.grand) span, .k3d .chrono:not(.grand) b, .k3d .scene button.k3d-pause { font-size: .7rem; } .k3d .scene button.k3d-pause { left: .5rem; bottom: .5rem; padding: .25rem .55rem; } }
.k3d .lbl.petit.scen { font-size: 8.4px; } .k3d .lbl.petit.scen .desc-scen { font-size: 7.7px; width: 140px; }
/* Panneau des actions de l'agent réduit de 30 % */
.k3d .actions.sur-terrain { width: 8.4rem; padding: .21rem .32rem .25rem; }
.k3d .actions.sur-terrain .qui { font-size: 8.4px; gap: .21rem; margin-bottom: .14rem; }
.k3d .actions.sur-terrain li { font-size: 8.4px; grid-template-columns: .39rem 1fr; gap: .18rem; }
.k3d .actions.sur-terrain .neuro { width: .98rem; height: .67rem; }
.k3d .actions.sur-terrain li.cours::before { width: .3rem; height: .3rem; }
@media (max-width: 700px) { .k3d .actions.sur-terrain { width: 6.65rem; } }
/* Panneau de description des étapes : -25 %, taille proportionnelle à l'animation (indépendante du zoom du navigateur) */
.k3d .recit { max-width: 14.6cqw; padding: .23cqw .37cqw; border-width: .1cqw; }
.k3d .recit b { font-size: .79cqw; margin-bottom: .08cqw; }
.k3d .recit span, .k3d .recit { font-size: .73cqw; }
.k3d .recit.res span { font-size: .8cqw; }
@media (max-width: 700px) { .k3d .recit { max-width: 9rem; padding: .25rem .35rem; } .k3d .recit b { font-size: 9.75px; } .k3d .recit span, .k3d .recit { font-size: 9px; } }
/* Panneau des étapes agrandi de 50 % */
.k3d .recit { max-width: 21.9cqw; padding: .35cqw .55cqw; border-width: .15cqw; }
.k3d .recit b { font-size: 1.19cqw; margin-bottom: .12cqw; }
.k3d .recit span, .k3d .recit { font-size: 1.1cqw; }
.k3d .recit.res span { font-size: 1.2cqw; }
@media (max-width: 700px) { .k3d .recit { max-width: 13.5rem; padding: .35rem .5rem; } .k3d .recit b { font-size: 14.6px; } .k3d .recit span, .k3d .recit { font-size: 13.5px; } }
/* « Et maintenant ? » : une seule ligne compacte tout en bas, sous les orbites */
.k3d .fin-cas { bottom: .35rem; flex-wrap: nowrap; gap: .4rem; padding: .25rem .45rem; max-width: calc(100% - 10rem); overflow-x: auto; background: rgba(31,42,36,.82); border-radius: 4px; }
.k3d .fin-cas p { font-size: .68rem; }
.k3d .fin-cas div { flex-wrap: nowrap; gap: .25rem; }
.k3d .fin-cas button { font-size: .64rem; padding: .18rem .45rem; white-space: nowrap; min-height: 0; }
@media (max-width: 700px) { .k3d .fin-cas { max-width: calc(100% - 1rem); bottom: 2.4rem; } .k3d .fin-cas p { display: none; } }
/* « Autre cas d'utilisation ? » : titre au-dessus, boutons sur une ligne à la largeur de l'animation */
.k3d .fin-cas { flex-direction: column; align-items: stretch; left: .6rem; right: .6rem; bottom: .45rem; transform: none; max-width: none; padding: .35rem .5rem .45rem; gap: .3rem; overflow: visible; background: var(--encre); animation-name: k3d-fin-cas2; }
@keyframes k3d-fin-cas2 { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.k3d .fin-cas p { font-size: .75rem; text-align: center; }
.k3d .fin-cas div { display: flex; flex-wrap: nowrap; gap: .3rem; }
.k3d .fin-cas button { flex: 1 1 0; min-width: 0; font-size: .7rem; padding: .3rem .4rem; white-space: normal; line-height: 1.2; }
.k3d.k3d-fin .k3d-pause { bottom: 4.2rem; }
@media (max-width: 700px) { .k3d .fin-cas { bottom: .45rem; } .k3d .fin-cas p { display: block; } .k3d .fin-cas div { flex-wrap: wrap; } .k3d .fin-cas button { flex: 1 1 40%; } }

/* Fin d'animation : trois cartes (composants) à la place des orbites */
.k3d .cartes-fin { position: absolute; z-index: 5; left: 50%; top: 46%; transform: translate(-50%, -50%); width: min(92%, 60rem); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.6cqw; pointer-events: none; }
.k3d .carte-fin { background: rgba(255,255,255,.96); border: 1px solid hsl(var(--primary) / .35); border-top: 3px solid hsl(var(--primary)); border-radius: 6px; padding: 1.2cqw 1.4cqw 1.3cqw; box-shadow: 0 8px 24px rgba(20,40,60,.12); opacity: 0; transform: translateY(14px); transition: opacity .5s ease, transform .5s ease; }
.k3d .carte-fin.on { opacity: 1; transform: none; }
.k3d .carte-fin .ico { display: inline-grid; place-items: center; width: 2.6cqw; height: 2.6cqw; min-width: 28px; min-height: 28px; border-radius: 50%; background: hsl(var(--primary) / .1); color: hsl(var(--primary)); }
.k3d .carte-fin .ico svg { width: 60%; height: 60%; }
.k3d .carte-fin h4 { margin: .6cqw 0 .5cqw; font: 700 max(1.35cqw, 13px)/1.2 var(--k-titre); color: var(--encre); }
.k3d .carte-fin ul { margin: 0; padding: 0; list-style: none; display: grid; gap: .35cqw; }
.k3d .carte-fin li { position: relative; padding-left: 1.1em; font-size: max(1.05cqw, 11px); line-height: 1.35; color: #3a4a44; }
.k3d .carte-fin li::before { content: "✓"; position: absolute; left: 0; color: hsl(var(--primary)); font-weight: 700; }
@media (max-width: 700px) { .k3d .cartes-fin { grid-template-columns: 1fr; top: 42%; gap: .4rem; width: calc(100% - 1rem); } .k3d .carte-fin { padding: .45rem .6rem; } .k3d .carte-fin ul { gap: .1rem; } .k3d .carte-fin .ico { display: none; } .k3d .carte-fin h4 { margin: 0 0 .2rem; } }
@media (prefers-reduced-motion: reduce) { .k3d .carte-fin { transition: none; } }

/* Correctifs mobiles (audit 375 px) */
@media (max-width: 700px) {
  .k3d .scene { height: min(68vh, 520px); min-height: 440px; }
  .k3d .panneaux { position: static; display: block; margin: 0; }
  .k3d .panneaux .chrono:not(.grand) { position: absolute; top: .5rem; right: .5rem; z-index: 6; }
  .k3d .panneaux .recit { position: absolute; top: .5rem; left: .5rem; right: auto; bottom: auto; width: calc(100% - 8.5rem); max-width: none; z-index: 6; white-space: normal; }
  .k3d .panneaux .recit b { font-size: 12px; } .k3d .panneaux .recit span, .k3d .panneaux .recit { font-size: 11.5px; line-height: 1.35; }
  .k3d .cadre { position: relative; }
  .k3d .note { font-size: 11px; margin-top: .3rem; }
  .k3d .lbl.petit.scen { font-size: 11px; } .k3d .lbl.petit.scen .desc-scen { font-size: 10px; }
  .k3d .actions.sur-terrain { width: 10.5rem; } .k3d .actions.sur-terrain .qui, .k3d .actions.sur-terrain li { font-size: 11px; }
  .k3d .scene button.k3d-pause { min-height: 40px; min-width: 64px; font-size: .8rem; }
  .k3d .cartes-fin { top: 4.2rem; transform: translateX(-50%); gap: .35rem; }
  .k3d .carte-fin { padding: .4rem .6rem; }
  .k3d .carte-fin h4 { font-size: 13px; margin: 0; }
  .k3d .carte-fin li { font-size: 11px; } .k3d .carte-fin li:not(:first-child) { display: none; }
  .k3d .fin-cas { bottom: .45rem; }
  .k3d .fin-cas button { min-height: 38px; font-size: .72rem; }
}
@media (max-width: 700px) {
  .k3d .scene { height: 400px; min-height: 0; }
  .k3d .actions.sur-terrain { width: 9rem; } .k3d .actions.sur-terrain .qui, .k3d .actions.sur-terrain li { font-size: 10.5px; }
  .k3d .actions.sur-terrain li:nth-last-child(n+3) { display: none; }
}
@media (max-width: 700px) { .k3d .lbl:not(.carte-appro):not(.det.fini) { white-space: normal; max-width: 9.5rem; text-align: center; } }
@media (max-width: 700px) { .k3d .cartes-fin { top: .5rem; } }

/* Plein écran de l'animation */
.k3d .k3d-plein { position: absolute; right: .6rem; bottom: .6rem; z-index: 7; width: 34px; height: 34px; padding: 6px; display: grid; place-items: center; background: rgba(255,255,255,.92); color: hsl(var(--primary)); border: 1px solid hsl(var(--primary)); border-radius: 4px; cursor: pointer; }
.k3d .k3d-plein svg { width: 100%; height: 100%; } .k3d .k3d-plein .f { display: none; }
.k3d.k3d-plein-on .k3d-plein .o { display: none; } .k3d.k3d-plein-on .k3d-plein .f { display: inline; }
.k3d .vitesse { right: 3.2rem; }
.k3d.k3d-plein-on .cadre { position: fixed; inset: 0; z-index: 1000; background: #fff; margin: 0; padding: env(safe-area-inset-top, 0px) env(safe-area-inset-right, 0px) env(safe-area-inset-bottom, 0px) env(safe-area-inset-left, 0px); }
.k3d .cadre:fullscreen { background: #fff; width: 100%; height: 100%; }
.k3d.k3d-plein-on .scene { height: 100% !important; min-height: 0 !important; border: 0; }
html.k3d-plein-page, html.k3d-plein-page body { overflow: hidden; }
@media (max-width: 700px) { .k3d .k3d-plein { width: 40px; height: 40px; right: .5rem; bottom: .5rem; } }

/* Plein écran mobile en paysage : affichage pivoté quand le téléphone ne peut pas être verrouillé (iPhone) */
.k3d.k3d-plein-on.k3d-pivote .cadre { inset: auto; top: 0; left: 100vw; width: 100vh; width: 100dvh; height: 100vw; transform-origin: top left; transform: rotate(90deg); padding: 0; }
@media (orientation: landscape) { .k3d.k3d-plein-on.k3d-pivote .cadre { left: 0; width: 100vw; height: 100vh; transform: none; } }

/* Pause et Chrono : taille proportionnelle à la scène (cqw), compacte sur mobile */
.k3d .scene button.k3d-pause, .k3d .chrono:not(.grand) span, .k3d .chrono:not(.grand) b { font-size: .85cqw; }
.k3d .scene button.k3d-pause { padding: .4em .9em; min-height: 0; min-width: 0; line-height: 1.2; }
.k3d .chrono:not(.grand) { padding: .4em .9em; gap: .5em; font-size: .85cqw; }
@media (max-width: 700px) {
  .k3d .scene button.k3d-pause, .k3d .chrono:not(.grand) span, .k3d .chrono:not(.grand) b, .k3d .chrono:not(.grand) { font-size: 2.7cqw; }
  .k3d .scene button.k3d-pause { min-height: 0; min-width: 0; }
}

/* « Agent IA Kalykso - en exécution » : −20 % */
.k3d .actions .qui span { font-size: .8em; }