:root{--motion-fast:160ms;--motion-ui:240ms;--motion-scene:480ms;--motion-modal:280ms;--motion-ease:cubic-bezier(.22,.68,.2,1)}
[data-section-nav] a[aria-current=location]{text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:2px;color:inherit}
[data-section-nav] a{transition:color var(--motion-fast) var(--motion-ease)}
[data-pointer-area] img{transition:translate var(--motion-ui) var(--motion-ease)}
.cx-scene{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(260px,.7fr);gap:6%;position:relative;margin:40px 0;color:inherit;align-items:start}
.cx-scene *{box-sizing:border-box;min-width:0}
.cx-scene-sticky{position:sticky;top:175px;align-self:start;width:100%;justify-self:center}
.cx-scene figure{margin:0!important;max-width:none}
.cx-scene-viewport{position:relative;overflow:hidden;aspect-ratio:1586/992;background:#f4f5f3}
.cx-scene-viewport img{display:block;width:100%;height:100%;object-fit:contain;transform:none!important}
.cx-scene-focus{position:absolute;pointer-events:none;border:1px solid #2366a6;border-radius:2px;opacity:0;transition:top var(--motion-scene) var(--motion-ease),left var(--motion-scene) var(--motion-ease),width var(--motion-scene) var(--motion-ease),height var(--motion-scene) var(--motion-ease),opacity var(--motion-ui);box-shadow:0 0 0 100vmax #ffffff12}
.cx-scene figcaption{font-size:14px!important;line-height:1.6!important;color:#5a665f!important;margin-top:14px!important;padding-right:110px}
.cx-scene-steps{display:grid;align-content:start;padding-block:var(--scene-before,0) var(--scene-after,0)}
.cx-scene[data-static=true] .cx-scene-sticky{position:static!important}
.cx-scene[data-static=true] .cx-scene-steps{padding-block:0}
.cx-scene-step{display:flex;flex-direction:column;justify-content:center;min-height:180px;padding:28px 0 28px 22px;border:0;border-left:2px solid #b9c1bc;background:none;color:inherit;text-align:left;font:inherit;cursor:pointer;transition:border-color var(--motion-ui),color var(--motion-ui)}
.cx-scene-step>span{font-size:clamp(22px,2.2vw,32px);line-height:1.28;letter-spacing:-.035em;word-break:keep-all}
.cx-scene-step>p{font-size:17px;line-height:1.65;color:#536057;margin:16px 0 0!important;word-break:keep-all;overflow-wrap:break-word}
.cx-scene-step[aria-pressed=true]{border-left-color:#1e313f}.cx-scene-step[aria-pressed=true]>span{text-decoration:underline;text-underline-offset:8px;text-decoration-thickness:1px}
.cx-scene-step:focus-visible{outline:2px solid currentColor;outline-offset:4px}
.cx-enlargeable{position:relative}.cx-enlarge{position:absolute;right:0;bottom:0;min-height:48px;padding:10px 20px;border:1px solid #9aa59e;background:#f4f5f1;color:#18221c;font:400 14px/1.4 inherit;cursor:pointer}
.cx-enlarge:focus-visible,.cx-rail-controls button:focus-visible{outline:2px solid currentColor;outline-offset:3px}
.cx-intro-media.cx-enlargeable figcaption{text-align:left}
.cx-rail-controls{display:flex;align-items:center;justify-content:flex-end;gap:12px;min-height:60px;padding-top:16px;color:inherit;font-size:14px;line-height:1.5}
.cx-rail-controls>span:first-child{margin-right:auto}.cx-rail-count{font-variant-numeric:tabular-nums}
.cx-rail-controls button{min-height:44px;min-width:44px;padding:10px 14px;border:1px solid #99a49c;border-radius:2px;background:none;color:inherit;cursor:pointer;font:inherit}.cx-rail-controls button:disabled{opacity:.3;cursor:default}
.cx-rail-controls[hidden],.cx-rail-controls button[hidden]{display:none}
.cx-media-dialog{max-width:none;width:calc(100vw - 48px);height:calc(100dvh - 48px);max-height:none;padding:0;border:1px solid #64706a;background:#f4f5f1;color:#18221c;overflow:hidden;box-sizing:border-box}
.cx-media-dialog[open]{display:flex;flex-direction:column;animation:cx-dialog-enter var(--motion-modal) var(--motion-ease)}
.cx-media-dialog::backdrop{background:#050806de}.cx-media-toolbar{display:flex;align-items:center;gap:16px;padding:12px 20px;border-bottom:1px solid #bac2bc;flex:none}.cx-media-toolbar p{font-size:15px;line-height:1.5;margin:0 auto 0 0;max-width:65ch;word-break:keep-all}.cx-media-toolbar button{min-height:48px;padding:10px 16px;background:transparent;border:1px solid #89958d;color:inherit;font:inherit;white-space:nowrap;cursor:pointer}.cx-media-toolbar button:focus-visible,.cx-media-viewport:focus-visible{outline:2px solid currentColor;outline-offset:-3px}
.cx-media-viewport{min-height:0;flex:1;overflow:auto;overscroll-behavior:contain;display:grid;place-items:center;padding:20px}.cx-media-viewport img{display:block;object-fit:contain;max-width:100%;max-height:100%;width:auto;height:auto}.cx-media-viewport[data-full=true]{display:block}.cx-media-viewport[data-full=true] img{max-width:none;max-height:none;width:var(--media-natural-width,1586px);height:auto}
@keyframes cx-dialog-enter{from{opacity:.6;transform:scale(.98)}to{opacity:1;transform:none}}
@media(max-width:900px){.cx-scene{grid-template-columns:1fr;gap:24px;margin:28px 0}.cx-scene-sticky{position:static}.cx-scene-steps{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.cx-scene-step{min-height:140px;padding:16px 0 16px 14px;justify-content:flex-start}.cx-scene-step>span{font-size:23px}.cx-scene-step>p{font-size:16px;line-height:1.6}.cx-scene figcaption{padding-right:0;padding-bottom:48px}.cx-media-dialog{width:calc(100vw - 16px);height:calc(100dvh - 16px)}.cx-media-toolbar{flex-wrap:wrap;padding:12px;gap:8px}.cx-media-toolbar p{width:100%;max-width:none;font-size:14px}.cx-media-toolbar button{font-size:14px}.cx-media-viewport{padding:8px}.cx-rail-controls{gap:8px;font-size:13px}.cx-rail-controls button{padding-inline:10px}}
@media(max-width:360px){.cx-scene-steps{grid-template-columns:1fr}.cx-scene-step{min-height:110px}.cx-rail-controls>span:first-child{max-width:7em}}
@media(prefers-reduced-motion:reduce){[data-pointer-area] img,.cx-scene-focus,.cx-scene-step,[data-section-nav] a{transition:none!important}.cx-scene-sticky{position:static}.cx-scene-step{min-height:130px}.cx-media-dialog[open]{animation:none}.cx-scene{align-items:start}}
.cx-enlarge{font-family:inherit;font-size:14px;line-height:1.4}.cx-media-fallback{position:absolute;top:35%;left:8%;right:8%;text-align:center;font-size:16px;line-height:1.6;color:#26322c;background:#f4f5f1;padding:20px}.cx-enlargeable[data-media-unavailable=true] img{opacity:0}.cx-enlarge:disabled{opacity:.5;cursor:default}
/* Reserve gallery controls before enhancement, including direct anchor entry. */
#calamophyton-hero-gif-mockup .home-technical-index{margin-bottom:0}.cx-rail-controls{box-sizing:border-box;height:auto;margin-top:0;flex-wrap:wrap}
/* A zero-minimum grid track constrains intrinsic image size in the flex dialog. */
.cx-media-viewport{grid-template:minmax(0,1fr)/minmax(0,1fr)}.cx-media-viewport img{width:100%;height:100%;object-fit:contain}
figure.cx-enlargeable figcaption{box-sizing:border-box;min-height:48px;padding-right:120px}
@media(max-width:900px){figure.cx-enlargeable figcaption{padding-right:0;padding-bottom:60px}}

/* One compact language control on the canonical home and integrated routes. */
:is(.language-picker,#calamophyton-hero-gif-mockup .language-picker){position:relative;display:block;flex:none;width:44px;height:44px;color:#f4f2ed}
:is(.language-picker,#calamophyton-hero-gif-mockup .language-picker) button{box-sizing:border-box;font-family:inherit;letter-spacing:0;cursor:pointer;box-shadow:none}
:is(.language-picker,#calamophyton-hero-gif-mockup .language-picker) .language-picker-trigger{display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:0;background:transparent;color:inherit;transition:opacity var(--motion-fast) ease}
.language-picker-trigger svg{display:block;flex:none}
:is(.language-picker,#calamophyton-hero-gif-mockup .language-picker) .language-picker-trigger:hover{opacity:.72}
:is(.language-picker,#calamophyton-hero-gif-mockup .language-picker) .language-picker-trigger:focus-visible{outline:2px solid currentColor;outline-offset:2px}
:is(.language-picker,#calamophyton-hero-gif-mockup .language-picker) .language-picker-options{position:absolute;z-index:10;top:calc(100% + 8px);right:0;box-sizing:border-box;width:148px;max-width:calc(100vw - 24px);padding:6px;border:1px solid #c5ccc7;border-radius:6px;background:#e4e7e5;color:#202628;box-shadow:0 6px 18px #0002;animation:language-open var(--motion-fast) ease-out}
:is(.language-picker,#calamophyton-hero-gif-mockup .language-picker) .language-picker-options[hidden]{display:none}
:is(.language-picker,#calamophyton-hero-gif-mockup .language-picker) .language-picker-options button{display:flex;align-items:center;justify-content:flex-start;width:100%;min-height:44px;padding:10px 12px;border:0;border-radius:2px;background:transparent;color:#5e6662;text-align:left;font-size:16px;font-weight:400;line-height:1.4;white-space:nowrap}
:is(.language-picker,#calamophyton-hero-gif-mockup .language-picker) .language-picker-options button[aria-pressed=true]{color:#151c18;font-weight:600}
:is(.language-picker,#calamophyton-hero-gif-mockup .language-picker) .language-picker-options button:hover{background:#cdd4cf;color:#151c18}
:is(.language-picker,#calamophyton-hero-gif-mockup .language-picker) .language-picker-options button:focus-visible{outline:2px solid #202628;outline-offset:-3px}
:is(.language-picker,#calamophyton-hero-gif-mockup .language-picker) button::after{content:none}
#calamophyton-hero-gif-mockup[data-header-scrolled="true"][data-drawer-open="false"] .calamophyton-hero-tools{transform:none}
@keyframes language-open{from{opacity:0;translate:0 -4px}to{opacity:1;translate:0 0}}
@media(max-width:374px){#calamophyton-hero-gif-mockup .calamophyton-hero-bar{padding-inline:16px;gap:8px}#calamophyton-hero-gif-mockup .calamophyton-hero-logo{width:120px}#calamophyton-hero-gif-mockup .calamophyton-hero-tools{gap:4px}}
@media(max-width:600px){.cx-rail-controls>span:first-child{flex-basis:100%;max-width:none}}
@media(prefers-reduced-motion:reduce){:is(.language-picker,#calamophyton-hero-gif-mockup .language-picker) .language-picker-options{animation:none}:is(.language-picker,#calamophyton-hero-gif-mockup .language-picker) .language-picker-trigger{transition:none}}

/* Captionless structure figures keep their enlargement control below the image. */
figure.cx-enlargeable:not(:has(figcaption)){display:flow-root}
figure.cx-enlargeable:not(:has(figcaption))>.cx-enlarge{position:static;display:block;width:fit-content;margin:12px 0 0 auto}
.cx-diagram-legend { margin: 20px 0; color: inherit; font-size: 15px; line-height: 1.6; }
.cx-diagram-legend summary { cursor: pointer; width: fit-content; padding: 8px 0; }
.cx-diagram-legend summary:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
.cx-diagram-legend dl { margin: 12px 0; }
.cx-diagram-legend dl > div { display: flex; flex-wrap: wrap; gap: 4px 24px; padding: 6px 0; }
.cx-diagram-legend dt { flex: 0 1 26em; overflow-wrap: anywhere; }
.cx-diagram-legend dd { margin: 0; }
