.shell{height:100dvh;padding:var(--gutter);gap:var(--sp-4);--rail-track:clamp(22rem, 48vw, 40rem);--rail-inset:clamp(0px, (100vw - 1100px) * .5, 128px);--rail-w:calc(var(--rail-track) - var(--rail-inset));grid-template-rows:auto minmax(0,1fr) auto;display:grid}@media (width>=1400px){.shell{--rail-w:calc((var(--rail-track) - var(--rail-inset)) * 1.05)}}.topbar{align-items:start;gap:var(--sp-4);grid-template-columns:auto 1fr;display:grid}.topbar__brand img{width:auto;height:clamp(4.5rem,6.4vw,7rem)}.bottombar{align-items:end;gap:var(--sp-4);grid-template-columns:1fr auto;display:grid}.rail{width:var(--rail-w);justify-self:end;align-items:flex-start;gap:var(--sp-3);flex-direction:column;display:flex}.stage{min-height:0;padding-bottom:calc(var(--sp-6) - 20px);align-items:end;display:grid}.rail--controls{align-items:center;gap:var(--sp-5);flex-direction:row}.lang{align-self:flex-end;gap:var(--sp-2);display:flex}.lang__item{min-width:2.75rem;min-height:2.25rem;padding:0 var(--sp-2);border:1px solid var(--hairline-strong);border-radius:var(--radius-sm);background:var(--ghost-fill);font-family:var(--font-display);font-size:var(--step--1);letter-spacing:.1em;text-transform:uppercase;transition:border-color var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out);justify-content:center;align-items:center;font-weight:700;text-decoration:none;display:inline-flex}.lang__item:hover{border-color:var(--c-gold)}.lang__item[aria-current=true]{background:var(--c-gold);border-color:var(--c-gold);color:var(--c-ink)}.rail__top{justify-content:space-between;align-self:stretch;align-items:center;gap:var(--sp-3);display:flex}.spec-link{padding-inline:var(--sp-3);text-decoration:none}.apla{border:1px solid var(--glass-stroke);background:var(--glass-fill);width:100%;backdrop-filter:blur(var(--glass-blur)) saturate(1.15);box-shadow:var(--glass-sheen), var(--shadow-card);animation:apla-in var(--dur-slow) var(--ease-out) both;border-radius:16px;align-self:stretch;padding:clamp(1.5rem,2.6vw,2.5rem) clamp(1.5rem,3vw,3rem);animation-delay:.12s;display:grid;position:relative}@keyframes apla-in{0%{opacity:0;translate:16px}to{opacity:1;translate:0}}.slide{transition:opacity var(--dur-base) var(--ease-out);grid-area:1/1}.slide:not([data-active]){opacity:0;pointer-events:none}.slide__head{grid-template-columns:var(--slide-icon-frame) 1fr;gap:var(--sp-4);align-items:center;display:grid}.slide{--slide-icon-size:calc(var(--step-2) * .9 * 1.08 * 2);--slide-icon-frame:calc(var(--slide-icon-size) + 6px);--slide-icon-stroke:1.5px}.slide__icon{box-sizing:border-box;width:var(--slide-icon-frame);height:var(--slide-icon-frame);color:var(--c-gold);place-items:center;display:grid}.slide__icon:has(svg){padding:var(--slide-icon-stroke);box-shadow:inset 0 0 0 var(--slide-icon-stroke) var(--c-gold);border-radius:calc(var(--slide-icon-frame) * var(--icon-frame-round))}.slide__icon svg{width:75%;height:75%;stroke-width:var(--slide-icon-stroke)}.slide__icon svg *{vector-effect:non-scaling-stroke}.slide__title{font-family:var(--font-display);font-size:calc(var(--step-2) * .9);white-space:pre-line;letter-spacing:.01em;text-wrap:balance;margin-top:0;font-style:italic;font-weight:700;line-height:1.08}.slide__body{margin-top:var(--sp-4);max-width:62ch;color:color-mix(in srgb, var(--c-bone) 94%, transparent);text-wrap:pretty;font-size:clamp(.9375rem,.9rem + .08vw,.9875rem);line-height:1.7}.slide__list{margin-top:var(--sp-3);gap:var(--sp-2);color:color-mix(in srgb, var(--c-bone) 94%, transparent);font-size:clamp(.9375rem,.9rem + .08vw,.9875rem);line-height:1.5;display:grid}.slide__list li{padding-left:1.1em;position:relative}.slide__list li:before{content:"";background:var(--c-gold);border-radius:50%;width:.38em;height:.38em;position:absolute;top:.62em;left:0}.slide__note{margin-top:var(--sp-3);color:color-mix(in srgb, var(--c-bone) 72%, transparent);font-size:var(--step--1);line-height:1.5}.slide-nav{align-items:center;gap:var(--sp-2);flex:1;display:flex}.progress{height:2px;margin-left:var(--sp-3);background:color-mix(in srgb, var(--c-bone) 22%, transparent);flex:1}.progress__fill{background:var(--c-bone);height:100%;transform:scaleX(var(--slide-progress,.34));transform-origin:0;transition:transform var(--dur-base) var(--ease-out);display:block}.contactbar{align-items:center;gap:var(--sp-3);display:flex;position:relative}.contactbar--phone{justify-content:flex-end;justify-self:end}.contactbar--phone .contactbar__link{font-size:calc(var(--step-2) * .8);order:-1;font-style:italic}.contactbar--email{justify-self:start}.contactbar__link{font-family:var(--font-display);font-size:var(--step-1);letter-spacing:.04em;white-space:nowrap;transition:color var(--dur-fast) var(--ease-out);font-weight:700;text-decoration:none}.contactbar__link:hover{color:var(--c-gold)}@media (width>=800px) and (hover:hover) and (pointer:fine){.contactbar--email .contactbar__link{opacity:0;max-width:0;transition:max-width var(--dur-base) var(--ease-out), opacity var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);overflow:hidden}.contactbar--email:hover .contactbar__link,.contactbar--email:focus-within .contactbar__link{opacity:1;max-width:16rem}}.contactbar__toast{z-index:20;height:2.5rem;padding:0 var(--sp-3);border:1px solid var(--c-gold);border-radius:var(--radius-sm);background:var(--c-ink);color:var(--c-gold);font-size:var(--step--1);letter-spacing:.02em;white-space:nowrap;opacity:0;visibility:hidden;transition:opacity var(--dur-fast) var(--ease-out), translate var(--dur-fast) var(--ease-out), visibility 0s linear var(--dur-fast);align-items:center;font-weight:700;display:flex;position:absolute}.contactbar--phone .contactbar__toast{margin-right:var(--sp-2);translate:var(--sp-2) -50%;top:50%;right:100%}.contactbar--email .contactbar__toast{margin-bottom:var(--sp-2);translate:0 var(--sp-2);bottom:100%;left:0}.contactbar__toast[data-visible]{opacity:1;visibility:visible;transition-delay:0s}.contactbar--phone .contactbar__toast[data-visible]{translate:0 -50%}.contactbar--email .contactbar__toast[data-visible]{translate:0}.contactbar__toast[data-tone=error]{border-color:var(--c-red);color:var(--c-red)}.icon-btn{--icon-btn-size:2.6rem;width:var(--icon-btn-size);height:var(--icon-btn-size);border:1px solid var(--hairline-strong);border-radius:calc(var(--icon-btn-size) * var(--icon-frame-round));background:var(--ghost-fill);color:var(--fg);cursor:pointer;transition:color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);justify-content:center;align-items:center;padding:0;display:inline-flex}.icon-btn:hover{color:var(--c-gold);border-color:var(--c-gold)}.icon-btn:active{transform:scale(.94)}.icon-btn svg{width:1.15rem;height:1.15rem}.icon-btn--swap{place-items:center;display:grid}.icon-btn__face{transition:opacity var(--dur-fast) var(--ease-out);grid-area:1/1;display:flex}.icon-btn__face--alt{opacity:0}@media (hover:hover){.icon-btn--swap:hover .icon-btn__face{opacity:0}.icon-btn--swap:hover .icon-btn__face--alt{opacity:1}}.icon-btn--swap:focus-visible .icon-btn__face{opacity:0}.icon-btn--swap:focus-visible .icon-btn__face--alt{opacity:1}.hero-bg{z-index:-1;--hero-zoom:114%;--hero-lift:14%;--hero-fade:.8s;position:fixed;inset:0;overflow:hidden}@media (width>=800px){.hero-bg{--hero-zoom:129%;--hero-lift:14%}}@media (prefers-reduced-motion:reduce){.hero-bg{--hero-fade:1ms}}.hero-bg__layer{top:calc(var(--hero-lift) * -1);width:100%;height:var(--hero-zoom);object-fit:cover;object-position:center;transform-origin:50%;will-change:scale;opacity:0;z-index:0;pointer-events:none;user-select:none;position:absolute;left:0}.hero-bg__layer[data-prev]{opacity:1;z-index:1}.hero-bg__layer[data-active]{opacity:1;z-index:2;transition:opacity var(--hero-fade) linear}.hero-bg__scrim{z-index:3;background-color:color-mix(in srgb, var(--c-ink) 26%, transparent);background-image:linear-gradient(180deg, color-mix(in srgb, var(--c-ink) 47%, transparent) 0%, color-mix(in srgb, var(--c-ink) 8%, transparent) 30%, color-mix(in srgb, var(--c-ink) 8%, transparent) 65%, color-mix(in srgb, var(--c-ink) 53%, transparent) 100%);position:absolute;inset:0}.hero-bg__grain{z-index:4;pointer-events:none;opacity:.055;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23g)'/%3E%3C/svg%3E");position:absolute;inset:0}.btn{justify-content:center;align-items:center;gap:var(--sp-2);min-height:2.75rem;padding:var(--sp-2) var(--sp-6);background:var(--accent);border:1px solid var(--accent);color:var(--c-bone);font-family:var(--font-display);font-size:var(--step-1);letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);border-radius:999px;font-weight:700;text-decoration:none;display:inline-flex}.btn:hover{background:var(--accent-warm);border-color:var(--accent-warm)}.btn:active{transform:scale(.97)}.btn--ghost{background:var(--ghost-fill);border-color:var(--hairline-strong);border-radius:var(--radius-sm);color:var(--fg);font-size:var(--step-0)}.btn--ghost:hover{background:var(--ghost-fill);border-color:var(--c-gold);color:var(--c-gold)}@media (width<=799px){.shell{gap:var(--sp-5);height:auto;min-height:100dvh;padding-bottom:calc(3.25rem + 20px + env(safe-area-inset-bottom));--rail-w:100%;grid-template-rows:auto 1fr auto}.topbar{grid-template-columns:auto 1fr;align-items:center}.contactbar--phone .contactbar__link{font-size:calc(var(--step-1) * .8)}.stage{padding-block:var(--sp-6) 0}.bottombar{align-items:stretch;row-gap:var(--sp-5);grid-template-columns:1fr}.contactbar--email .contactbar__link{font-size:var(--step-0);white-space:normal;overflow-wrap:anywhere}.rail--controls{row-gap:var(--sp-4);flex-wrap:wrap}.rail--controls .slide-nav{flex:100%}.rail--controls [data-cases-open]{inset-inline:var(--gutter);z-index:10;width:auto;min-height:3.25rem;padding:var(--sp-3) var(--gutter) max(var(--sp-3), env(safe-area-inset-bottom));border:1px solid var(--hairline-strong);border-radius:var(--radius-sm);font-size:var(--step--1);letter-spacing:.08em;margin:0;position:fixed;bottom:10px}}.cases{z-index:60;max-height:56dvh;padding:var(--sp-4) var(--gutter) var(--sp-5);background:linear-gradient(to top, var(--c-ink) 68%, color-mix(in srgb, var(--c-ink) 0%, transparent));visibility:hidden;transition:translate var(--dur-base) var(--ease-out), visibility 0s linear var(--dur-base);position:fixed;bottom:0;left:0;right:0;overflow-y:auto;translate:0 100%}.cases[data-open]{visibility:visible;transition-delay:0s;translate:0}.cases:before{content:"";background:linear-gradient(to top, var(--c-ink), transparent);pointer-events:none;height:6rem;position:absolute;bottom:100%;left:0;right:0}.cases__head{justify-content:space-between;align-items:baseline;gap:var(--sp-4);max-width:68rem;margin:0 auto var(--sp-4);display:flex}.cases__title{font-family:var(--font-display);font-size:calc(var(--step-1) * .9);letter-spacing:.14em;font-weight:700}.cases__actions{align-items:center;gap:var(--sp-2);display:flex}@media (width>=800px){.cases__head{justify-content:flex-start}.cases__title{display:none}}.cases__step{flex:none}.cases__close{min-height:2.25rem;padding-inline:var(--sp-4);font-size:var(--step--1);letter-spacing:.08em;white-space:nowrap;flex:none}.cases__close svg{width:1rem;height:1rem}.cases__list{gap:var(--sp-4);max-width:68rem;padding:var(--sp-1);overscroll-behavior-inline:contain;scroll-behavior:smooth;scroll-snap-type:inline mandatory;scrollbar-color:var(--hairline-strong) transparent;scrollbar-width:thin;-webkit-overflow-scrolling:touch;margin-inline:auto;display:flex;overflow-x:auto}.cases__list>li{scroll-snap-align:start;flex:0 0 clamp(17rem,30vw,21rem)}.card{aspect-ratio:16/9;background:var(--bg-raised);border:1px solid var(--hairline);border-radius:var(--radius-md);color:inherit;text-align:left;box-shadow:var(--shadow-card);transition:box-shadow var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);text-decoration:none;display:block;position:relative;overflow:hidden}.card:after{content:"";z-index:1;pointer-events:none;background:linear-gradient(#0000 28%,#08090c7a 62%,#08090ceb 100%),#08090c29;position:absolute;inset:0}.card__media{background:var(--c-ink);position:absolute;inset:0}.card__media img{object-fit:cover;width:100%;height:100%}.card__body{z-index:2;padding:var(--sp-5) var(--sp-4) var(--sp-4);position:absolute;bottom:0;left:0;right:0}.card__title{font-family:var(--font-display);font-size:calc(var(--step-1) * .9);letter-spacing:.02em;text-shadow:0 2px 16px #000000b8;margin-top:0;font-weight:700;line-height:1.18}@media (width<=799px){.cases{-webkit-overflow-scrolling:touch;max-height:88dvh}.cases__list{scroll-snap-type:none;flex-direction:column;max-width:none;margin-inline:0;overflow-x:visible}.cases__list>li{flex:none;width:100%}.cases__step{display:none}}dialog.panel{background:var(--bg-raised);width:100%;max-width:none;height:100dvh;max-height:100dvh;color:var(--fg);border:0;padding:0;overflow:hidden}dialog.panel::backdrop{backdrop-filter:blur(3px);background:#000000b8}dialog.panel[open]{animation:panel-in var(--dur-slow) var(--ease-out);flex-direction:column;display:flex}dialog.panel[open]::backdrop{animation:backdrop-in var(--dur-base) ease-out}dialog.panel[data-no-anim][open],dialog.panel[data-no-anim][open]::backdrop{animation:none}@keyframes panel-in{0%{opacity:0;translate:0 20px}to{opacity:1;translate:0}}@keyframes backdrop-in{0%{opacity:0}to{opacity:1}}.panel__scroll{padding:var(--sp-6) var(--gutter);-webkit-overflow-scrolling:touch;flex:1;overflow-y:auto}.panel__inner{max-width:68rem;margin-inline:auto;position:relative}.panel__layout{gap:var(--sp-6);display:grid}.panel__content{min-width:0}.panel__close{top:var(--sp-3);right:var(--sp-3);z-index:2;background:var(--bg-raised);position:absolute}.panel__kicker{color:var(--c-gold);font-family:var(--font-display);font-size:var(--step--1);letter-spacing:.16em;text-transform:uppercase;font-weight:700}.panel__title{margin-top:var(--sp-2);font-family:var(--font-display);font-size:calc(var(--step-2) * .9);font-weight:800;line-height:1.05}.case-gallery{min-width:0}.case-gallery__viewport{border-radius:var(--radius-md);background:var(--c-ink);touch-action:pan-y;overflow:hidden}.case-gallery__track{transition:transform var(--dur-base) var(--ease-out);will-change:transform;display:flex}.panel__cover{aspect-ratio:3/4;flex:0 0 100%;margin:0;overflow:hidden}.panel__cover img{object-fit:contain;width:100%;height:100%}.case-gallery__controls{justify-content:center;align-items:center;gap:var(--sp-4);margin-top:var(--sp-3);display:flex}.case-gallery__button{background:0 0}.case-gallery__dots{justify-content:center;align-items:center;gap:.425rem;min-width:3.825rem;display:flex}.case-gallery__dot{border:1.7px solid var(--fg);opacity:.7;width:.4675rem;height:.4675rem;transition:width var(--dur-fast) var(--ease-out), height var(--dur-fast) var(--ease-out), opacity var(--dur-fast) var(--ease-out);border-radius:50%;flex:none}.case-gallery__dot[data-active]{opacity:1;width:.7225rem;height:.7225rem}.section{margin-top:var(--sp-5)}.section__heading{font-family:var(--font-display);font-size:calc(var(--step-1) * .9);letter-spacing:.06em;font-weight:700}.section__body{margin-top:var(--sp-2);color:var(--fg-muted)}.section__list{margin-top:var(--sp-3);gap:var(--sp-2);display:grid}.section__list li{padding-left:var(--sp-5);color:var(--fg-muted);position:relative}.section__list li:before{content:"";background:var(--accent);width:.75rem;height:2px;position:absolute;top:.65em;left:0}.section__meta{gap:var(--sp-2) var(--sp-5);padding:var(--sp-3) 0;border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline);flex-wrap:wrap;display:flex}.section__meta dt{color:var(--c-concrete);font-size:var(--step--1);letter-spacing:.08em;text-transform:uppercase}.section__meta dd{margin:0;font-weight:600}.spec-gallery{margin-top:var(--sp-5)}.spec-gallery .panel__cover{aspect-ratio:1672/941}.spec-gallery .case-gallery__viewport{background:#fff}.spec-table{width:100%;margin-top:var(--sp-6);border-collapse:collapse}.spec-table caption{margin-bottom:var(--sp-3);text-align:left}.spec-table th,.spec-table td{padding:var(--sp-3) 0;border-bottom:1px solid var(--hairline);vertical-align:baseline}.spec-table tr:first-child th,.spec-table tr:first-child td{border-top:1px solid var(--hairline)}.spec-table th{padding-right:var(--sp-4);color:var(--fg-muted);text-align:left;font-weight:400}.spec-table td{text-align:right;white-space:nowrap;font-weight:700}.panel__nav{justify-content:space-between;gap:var(--sp-3);padding:0 var(--gutter) var(--sp-4);display:flex}.panel__step{flex:none}.contactpanel__lead{margin-top:var(--sp-3);color:var(--fg-muted)}.contactpanel__rows{gap:var(--sp-3);margin-top:var(--sp-5);display:grid}.contactpanel__row{align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:var(--bg);border:1px solid var(--hairline);border-radius:var(--radius-sm);display:flex}.contactpanel__row a{font-family:var(--font-display);font-size:var(--step-1);letter-spacing:.04em;flex:1;font-weight:700;text-decoration:none}.contactpanel__slot{margin-top:var(--sp-5);padding:var(--sp-4);border:1px dashed var(--hairline-strong);border-radius:var(--radius-sm);color:var(--c-concrete);font-size:var(--step--1)}@media (width>=800px){dialog.panel{border-radius:var(--radius-lg);width:min(52rem,100vw - 6rem);height:auto;max-height:88dvh;margin:auto}dialog.panel[data-case]{width:min(54.4rem,100vw - 12rem);overflow:visible}.panel__scroll{border-radius:var(--radius-lg)}dialog.panel[data-case] .panel__scroll{background:var(--bg-raised);padding:clamp(1.5rem,3vw,2.75rem)}.panel__layout{grid-template-columns:22.8rem minmax(0,1fr);align-items:start;gap:clamp(2rem,4vw,4rem)}.panel__content{padding:var(--sp-3) var(--sp-4) var(--sp-3) 0}.panel__nav{z-index:3;pointer-events:none;margin:0;padding:0;position:absolute;top:50%;left:0;right:0}.panel__step{--icon-btn-size:clamp(3.5rem, 5vw, 4.75rem);pointer-events:auto;position:absolute;top:0;transform:translateY(-50%)}.panel__step:active{transform:translateY(-50%)scale(.94)}.panel__step svg{width:1.5rem;height:1.5rem}.panel__step--prev{right:calc(100% + 20px)}.panel__step--next{left:calc(100% + 20px)}}@media (width>=800px) and (width<=1040px){dialog.panel[data-case]{width:min(54.4rem,100vw - 10rem)}.panel__layout{gap:var(--sp-6);grid-template-columns:19.2rem minmax(0,1fr)}.panel__content{padding-right:0}}
