/* Shared SEIYASHA styles: content, tokens, components and accessibility. */

/* Shared base rules. Historical source imports were folded into this file. */

:root{--ink:#111318;--muted:#686c74;--line:#dfe1e5;--paper:#f7f8fa;--night:#101217;--max:1240px;--pad:clamp(24px,5vw,72px);--pointer-x:72%;--pointer-y:28%;--ui-radius:16px}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,"Helvetica Neue",Arial,sans-serif;-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none}
a{color:inherit;text-decoration:none}button{font:inherit}.container{width:min(100%,calc(var(--max) + var(--pad)*2));margin:auto;padding-inline:var(--pad)}
.sr-only,.skip-link{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.site-header{position:fixed;z-index:50;top:0;width:100%;border-bottom:1px solid rgba(255,255,255,.16);color:#fff}
.nav-shell{height:76px;padding-inline:var(--pad);display:flex;align-items:center;justify-content:space-between;max-width:1440px;margin:auto}.wordmark{display:flex;align-items:center;gap:11px;font-size:12px;font-weight:700;letter-spacing:.14em}.mark{display:grid;place-items:center;width:24px;height:24px;border:1px solid currentColor;border-radius:50%;position:relative}.mark i{width:3px;height:3px;background:currentColor;border-radius:50%;box-shadow:6px -6px 0 currentColor,-5px 4px 0 currentColor}.main-nav{display:flex;gap:clamp(18px,2.6vw,42px)}.main-nav a{font-size:12px;letter-spacing:.05em;opacity:.72}.language{display:flex;gap:7px;align-items:center;font-size:10px;letter-spacing:.05em}.language button{border:0;background:none;color:inherit;padding:4px 0;opacity:.45;cursor:pointer}.language button.active{opacity:1}.language span{opacity:.25}.menu-toggle{display:none;border:0;background:none;color:inherit;padding:8px}.menu-toggle i{display:block;width:22px;height:1px;background:currentColor;margin:5px}
.hero{min-height:100svh;color:#fff;position:relative;overflow:hidden;display:flex;align-items:center}.hero::after{content:"";position:absolute;inset:0}#starfield,.hero-glow{position:absolute;inset:0;width:100%;height:100%}.hero-glow{left:62%;top:18%;width:1px;height:1px;box-shadow:0 0 180px 90px rgba(135,184,226,.2)}.hero-content{position:relative;z-index:2;padding-top:80px}.eyebrow,.section-label{font-size:10px;font-weight:600;letter-spacing:.2em;text-transform:uppercase}.eyebrow{opacity:.62;margin:0 0 34px}.hero h1{line-height:.76;letter-spacing:-.075em;margin:0}.hero-bottom{display:flex;justify-content:space-between;align-items:flex-end;margin:clamp(45px,8vh,100px) 0 0 24%}.slogan{font-family:Georgia,serif;font-style:italic;font-size:clamp(18px,2vw,29px);margin:0}.hero-copy{width:330px;line-height:1.7;font-size:13px;color:rgba(255,255,255,.62);margin:0}.scroll-cue{position:absolute;z-index:3;bottom:32px;left:var(--pad);display:flex;gap:14px;align-items:center;font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.55);white-space:nowrap}.scroll-cue i{width:52px;height:1px;flex:0 0 52px;background:currentColor}.section-label{display:flex;align-items:center;gap:14px;margin:0 0 40px;color:var(--muted)}.section-label span:first-child{font-variant-numeric:tabular-nums;color:#a5a8ae}.section-title{font-size:clamp(42px,5vw,72px);line-height:1.02;letter-spacing:-.055em;font-weight:400;margin:0}.section-head{display:flex;justify-content:space-between;align-items:start}.section-head .section-label{min-width:35%}.section-head .section-title{width:65%}.service-list{border-top:1px solid var(--line)}.service{display:grid;grid-template-columns:8% 36% 1fr;align-items:center;padding:31px 0;border-bottom:1px solid var(--line)}.service>span{font-size:10px;color:#a4a7ad}.service h3{font-size:clamp(19px,2vw,27px);font-weight:450;margin:0;letter-spacing:-.02em}.service p{margin:0;color:var(--muted);font-size:13px;line-height:1.65}.section-label.light{color:#aeb3bd}.brand-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.brand-card{min-height:350px;padding:34px;border:1px solid #30333a;background:linear-gradient(140deg,#191c23,#121419);display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.brand-card::after{content:"";position:absolute;border-radius:50%;right:-100px;top:-120px;background:var(--brand-glow,#596a79)}.brand-card small{font-size:9px;letter-spacing:.18em;color:#8e929a}.brand-card h3{font-family:Georgia,serif;font-size:clamp(42px,5vw,67px);font-weight:400;letter-spacing:.08em;margin:auto;position:relative;z-index:1}.brand-card p{font-size:12px;color:#999ea7;margin:0}
.tech-grid{display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:center}.tech-copy{max-width:530px;margin-top:36px;color:var(--muted);font-size:15px;line-height:1.8}.data-visual{border:1px solid var(--line);background:#fff;padding:27px;box-shadow:0 30px 80px rgba(30,43,60,.07)}.visual-top{display:flex;justify-content:space-between;font-size:9px;letter-spacing:.15em}.live{color:#4c8c70}.live::before{content:"";display:inline-block;width:5px;height:5px;border-radius:50%;background:#68b28d;margin-right:7px}.chart{height:230px;margin:30px 0;position:relative;background:repeating-linear-gradient(to bottom,transparent 0,transparent 45px,#eceef1 46px)}.chart svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.chart path{fill:none;stroke:#627e98;stroke-width:2;vector-effect:non-scaling-stroke}.metric-row{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);padding-top:20px;gap:10px}.metric-row small{display:block;font-size:8px;color:#a2a5aa;letter-spacing:.15em;margin-bottom:8px}.metric-row strong{font-size:10px;letter-spacing:.06em}footer{display:flex;align-items:center;justify-content:space-between;margin-top:140px;padding-top:24px;border-top:1px solid #2c2f35;font-size:8px;letter-spacing:.12em;color:#777d87}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* SEIYASHA identity and story */
.hero h1{font-weight:300;font-size:clamp(58px,9vw,138px);max-width:980px}.hero-ko{display:block;font-family:"Helvetica Neue",Helvetica,Arial,"PingFang SC","Noto Sans CJK SC",sans-serif;font-size:clamp(23px,2.35vw,35px);font-weight:300;line-height:1.15;letter-spacing:.14em;margin:0 0 28px 5px}.hero-copy span:first-child{color:#fff;font-size:15px}
.story-intro{max-width:620px;margin:0 0 90px 35%;font-size:clamp(18px,2vw,26px);line-height:1.6;color:var(--muted)}.timeline{border-top:1px solid var(--line)}.timeline-item{display:grid;grid-template-columns:35% 1fr;padding:55px 0 70px;border-bottom:1px solid var(--line);position:relative}.timeline-item::before{content:"";position:absolute;top:-4px;left:35%;width:7px;height:7px;border-radius:50%;background:var(--ink)}.timeline-item .year{font-weight:300}.timeline-item small{font-size:9px;letter-spacing:.18em;color:#92969d}.timeline-item h3{font-size:clamp(24px,3vw,38px);font-weight:400;letter-spacing:-.03em;margin:25px 0 14px}.timeline-item p{max-width:560px;color:var(--muted);font-size:14px;line-height:1.75}
.brand-grid.five{grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:1fr;gap:12px}.brand-grid.five .brand-card{grid-column:span 2;min-width:0;min-height:390px;height:100%;padding:24px}.brand-grid.five .brand-card:nth-child(4){grid-column:2/span 2}.brand-grid.five .brand-card:nth-child(5){grid-column:4/span 2}.brand-grid.five .brand-card::after{background:hsl(calc(205 + var(--brand-index)*18) 24% 50%)}.brand-grid.five .brand-card h3{font-size:clamp(27px,3.2vw,48px)}.brand-grid.five .brand-card p{font-size:9px;letter-spacing:.14em}.brand-note{margin:28px 0 0;color:#777c85;font-size:11px}
.brand-card-head{display:flex;align-items:center;justify-content:space-between;position:relative;z-index:2}.brand-card-foot{position:relative;z-index:2}.brand-card-foot p{max-width:320px;line-height:1.7;letter-spacing:.04em!important}.brand-apps{font-size:8px;letter-spacing:.16em;color:#b8bcc5;border-bottom:1px solid #474b54;padding-bottom:6px}.brand-site{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-top:22px;padding-top:17px;border-top:1px solid #343842;color:#d9dce2;text-decoration:none}.brand-site span{font-size:8px;letter-spacing:.13em;color:#8f949e}.brand-site strong{font-size:11px;font-weight:500;letter-spacing:.04em;white-space:nowrap}.brand-succubus{background:linear-gradient(145deg,#21171d,#111419 72%)}.timeline-platforms{display:flex;gap:8px;margin-top:22px}.timeline-platforms span{padding:7px 10px;border:1px solid #d7d9dd;font-size:8px;letter-spacing:.12em;color:#6f747c}
.brand-site.is-pending{color:#777c85}.brand-site.is-pending strong{font-weight:400;color:#777c85}
.brand-logo{width:min(72%,220px);aspect-ratio:1;margin:auto;position:relative;z-index:1;overflow:hidden;border-radius:2px;background:#f7f5f5}.brand-logo img{display:block;width:100%;height:100%;object-fit:cover}.brand-card.has-logo{color:#fff;border-color:#30333a;background:linear-gradient(145deg,#1b1e25,#111318 72%)}.brand-card.has-logo::after{opacity:.16}.brand-card.has-logo p{color:#9da1aa}.brand-card.has-logo .brand-card-head small{color:#8e929a}.brand-card.has-logo .brand-apps{color:#b8bcc5;border-color:#474b54}.brand-card.has-logo .brand-site{border-color:#343842;color:#d9dce2}.brand-card.has-logo .brand-site span{color:#8f949e}.brand-succubus{--brand-glow:#775665}.brand-succubus .brand-logo{filter:sepia(.15) saturate(.72)}.brand-viora{--brand-glow:#756371}.brand-slion{--brand-glow:#76689a}.brand-lemoa{background:linear-gradient(145deg,#1c1d22,#111318 72%);--brand-glow:#725f62}.brand-midori{background:linear-gradient(145deg,#191d1c,#111318 72%);--brand-glow:#5f756b}.brand-lemoa h3,.brand-midori h3{text-shadow:0 10px 45px rgba(0,0,0,.24)}.trading-grid{display:grid}.trading-copy ul{list-style:none;border-top:1px solid #343840}.trading-copy li{border-bottom:1px solid #343840}.trading-company small{display:block;font-size:9px;letter-spacing:.15em;text-transform:uppercase;color:#7f858e;margin-bottom:11px}.trading-company p{font-size:14px;line-height:1.7}.trading-company span{color:#888e98}

/* Company masthead and corporate footer */
.company{background:#fff;padding-bottom:36px}
.footer-bank strong{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.copy-account-button{appearance:none;display:grid;place-items:center;padding:0;cursor:pointer}.copy-account-button svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.copy-account-button .check-icon{display:none}.copy-account-button.is-copied .copy-icon{display:none}.copy-account-button.is-copied .check-icon{display:block}
.trade-registration{display:grid;gap:18px}.trade-registration>span{font-size:12px}.trade-registration small{margin-bottom:8px}.trade-registration a{grid-column:1/-1;width:max-content;border-bottom:1px solid #747b85;padding-bottom:5px;color:#c7cbd1;font-size:11px}
.company-footer{display:block;padding-top:0;color:var(--ink);font-size:inherit;letter-spacing:normal}.footer-nav{display:flex;align-items:stretch;justify-content:space-between}.footer-nav nav{display:flex;align-items:center;gap:clamp(18px,3vw,48px)}.footer-nav nav a{font-size:11px;font-weight:600}.footer-info{display:grid}.footer-info small{display:block;font-size:9px;letter-spacing:.13em;text-transform:uppercase;color:#9398a0}.footer-info p{margin:0;line-height:1.7;color:#44484e}.footer-identity>p{color:var(--muted);font-size:10px}.footer-bottom{justify-content:space-between;font-size:8px;letter-spacing:.11em;color:#92969d}.footer-bottom p{margin:0}
.footer-bank{display:grid;grid-template-columns:1.05fr .6fr 1.25fr 1fr;gap:28px;align-items:center;padding:24px 0;border-top:1px solid var(--line)}.footer-bank small,.footer-bank i{font-size:8px;font-style:normal;font-weight:400;letter-spacing:.12em;text-transform:uppercase;color:#969ba3}.footer-bank span,.footer-bank strong{font-size:11px}.footer-bank i{margin-right:10px}.footer-bank strong{letter-spacing:.06em}
.footer-contact{align-items:center;padding:28px 0;border-top:1px solid var(--line)}.footer-contact span{display:flex;gap:9px;align-items:center;font-size:12px}.footer-contact small{font-size:8px;font-weight:400;letter-spacing:.1em;text-transform:uppercase;color:#969ba3}.footer-contact a{border-bottom:1px solid transparent}.footer-mail-order a{display:inline-flex;font-size:8px;line-height:1;letter-spacing:.06em;color:#555b63}

/* Refined editorial footer */.footer-nav{min-height:66px}.footer-nav nav{padding:0}.footer-nav nav a{display:flex;align-items:center;min-height:66px}.footer-info{border-left:1px solid var(--line)}.footer-info>div{border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.footer-info p{font-size:12px}.footer-identity .wordmark{margin-bottom:12px}.footer-utility{display:grid;border-left:1px solid var(--line)}.footer-bank,.footer-contact{display:grid;gap:18px 24px;align-content:center;border-right:1px solid var(--line)}.footer-bank>small,.footer-contact>strong{align-self:start;margin:0;font-size:10px;letter-spacing:.1em;text-transform:uppercase}.bank-meta{display:flex;gap:24px;align-items:center}.bank-meta span{font-size:11px}.bank-meta i{margin-right:8px}.footer-bank>strong{font-size:18px;letter-spacing:.02em}.footer-contact{border-right:1px solid var(--line)}.footer-contact>strong{text-transform:none}.contact-lines{align-items:center;grid-row:1/3}.contact-lines small{margin-bottom:8px}.footer-bottom{padding:22px 0}

/* Borderless minimal footer */
.company-footer{margin-top:90px;border-top:1px solid var(--line)}.footer-nav{border-bottom:1px solid var(--line)}.footer-info{padding:52px 0;border:0}.footer-info>div{min-height:0;padding:0;border:0}.footer-info small{margin-bottom:16px}.footer-utility{grid-template-columns:1fr 1fr;gap:clamp(60px,9vw,150px);padding:40px 0;border:0;border-bottom:1px solid var(--line)}.footer-bank,.footer-contact{grid-template-columns:130px 1fr;min-height:0;padding:0;border:0}.footer-bank>small,.footer-contact>strong{grid-row:1/3}.footer-contact{border:0}.footer-mail-order a{padding:0 0 2px;border:0;border-bottom:1px solid currentColor;background:none}.copy-account-button{width:24px;height:24px;border-radius:0;opacity:.5}.footer-bottom{border-top:0}

/* Public ERP portal */
.portal-link{display:inline-flex;align-items:center;gap:9px;margin-left:18px;padding:10px 0 9px;border-bottom:1px solid currentColor;font-size:11px;font-weight:600;letter-spacing:.08em;white-space:nowrap}.portal-link .external-arrow{width:14px;height:14px;flex:0 0 14px}.portal-external{display:inline-flex;align-items:center;justify-content:center}.portal-external svg{display:block;width:100%;height:100%;overflow:visible;fill:none;stroke:currentColor;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round}

/* Contact details read vertically, not as a single line */
.footer-bank{align-content:start}.footer-contact{display:grid;grid-template-columns:130px 1fr;gap:0;align-content:start}.footer-contact>strong{display:block;margin:0;font-size:10px;font-weight:400;line-height:1.4;letter-spacing:.1em;color:var(--muted)}.contact-lines{display:grid;grid-template-columns:1fr;gap:12px}.contact-lines span{display:grid;grid-template-columns:58px 1fr;align-items:baseline}.contact-lines small{display:inline-block;margin:0;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}

/* Temporary platform links; replace href values with SEIYASHA HQ accounts later */
.footer-bottom{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:clamp(24px,4vw,64px)}.footer-social{display:flex;align-items:center;gap:14px}.footer-social a{display:grid;place-items:center;width:20px;height:20px;color:var(--ink);opacity:.82}
.footer-social img{display:block;width:19px;height:19px;object-fit:contain}.footer-social .kakaotalk-icon{border-radius:5px}

.footer-mail-order .lookup-icon{display:inline-grid;place-items:center;width:20px;height:20px;padding:0;border:0;color:var(--muted);opacity:.75}.lookup-icon svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round}

/* Keep published contact details intact at every viewport width. */
.contact-lines a,.contact-lines .contact-value{white-space:nowrap}

/* Clean contact actions */
.footer-info{border-bottom:1px solid var(--line)}.footer-contact a{border:0;text-decoration:none}

.tooltip-control{position:relative}.tooltip-control::after{content:attr(data-tooltip);position:absolute;z-index:10;left:50%;bottom:calc(100% + 8px);transform:translate(-50%,3px);padding:6px 8px;border-radius:3px;background:#111318;color:#fff;font-size:9px;font-weight:500;line-height:1;letter-spacing:.04em;white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none}

/* Balanced legal-information columns */
.footer-info{gap:clamp(20px,2.4vw,46px)}.footer-identity .wordmark{margin:0}

.footer-mail-order p{display:inline-flex;align-items:center;gap:4px;max-width:100%;white-space:nowrap!important;flex-wrap:nowrap!important}.footer-mail-order p>span{white-space:nowrap}.footer-mail-order .lookup-icon{margin:0;flex:0 0 20px}

/* Back-to-top does not consume a company-information column */
.footer-info{position:relative;grid-template-columns:1.1fr .7fr .9fr 1.3fr 1.5fr;padding-right:0}

.footer-nav-actions{display:flex;align-items:center;gap:34px}

/* Official platform marks in the company timeline */
.platform-logos{display:flex;align-items:center;gap:22px;min-height:28px}.platform-logos span{display:inline-flex;align-items:center;gap:8px;font-size:10px;font-weight:650;letter-spacing:.06em;color:#545860}.platform-logos img{display:block;width:24px;height:24px;object-fit:contain}.platform-logos.piccoma img{width:auto;height:24px;max-width:116px}.timeline-item:has(.platform-logos) h3{margin-top:24px}
.platform-logos .platform-wordmark img{width:110px;height:24px}

/* Cinematic polish — restrained light, depth and motion */
body::before{content:"";position:fixed;z-index:-1;inset:0;pointer-events:none;background:radial-gradient(circle at var(--pointer-x) var(--pointer-y),rgba(120,164,198,.075),transparent 28%)}
.hero{isolation:isolate;background:radial-gradient(circle at var(--pointer-x) var(--pointer-y),rgba(67,91,116,.72) 0,rgba(27,35,45,.72) 20%,transparent 46%),linear-gradient(135deg,#11151b 0%,#090b0f 54%,#121821 100%)}
.hero::after{z-index:1;background:linear-gradient(90deg,rgba(0,0,0,.18),transparent 55%),linear-gradient(0deg,rgba(0,0,0,.34),transparent 45%),radial-gradient(circle at center,transparent 48%,rgba(0,0,0,.18) 100%)}
.hero h1{color:transparent;background:linear-gradient(112deg,#fff 12%,#dfe9f1 42%,#fff 61%,#aebdca 100%);background-size:180% 100%;-webkit-background-clip:text;background-clip:text;filter:drop-shadow(0 18px 45px rgba(0,0,0,.22))}
.hero-ko{color:rgba(255,255,255,.7);text-shadow:0 0 30px rgba(170,207,235,.24)}
.main-nav a{position:relative}.main-nav a::after{content:"";position:absolute;left:0;right:100%;bottom:-8px;height:1px;background:currentColor}
.section{position:relative}.section-title{text-wrap:balance}.section-head{position:relative}
.story,.technology,.company{contain:paint}
.story::before,.technology::before,.company::before{content:"";position:absolute;width:min(42vw,620px);aspect-ratio:1;border-radius:50%;pointer-events:none;filter:blur(20px);opacity:.42;background:radial-gradient(circle,rgba(119,163,197,.10),transparent 67%)}
.story::before{top:16%;right:-20%}.technology::before{left:-24%;top:4%}.company::before{right:-20%;bottom:12%}
.timeline{position:relative}.timeline-item::after{content:"";position:absolute;left:35%;top:-1px;height:1px;background:linear-gradient(90deg,#617d96,transparent)}
.service{position:relative;isolation:isolate}.service::before{content:"";position:absolute;z-index:-1;inset:0;transform:translateX(-104%);background:linear-gradient(100deg,rgba(120,164,198,.07),rgba(120,164,198,.015))}.brand-card::before{content:"";position:absolute;inset:0;padding:1px;background:linear-gradient(130deg,rgba(255,255,255,.28),transparent 35% 68%,rgba(130,177,213,.24));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.35;pointer-events:none}
.data-visual{position:relative;overflow:hidden}.data-visual::before{content:"";position:absolute;inset:-100% -30%;background:linear-gradient(115deg,transparent 42%,rgba(255,255,255,.75) 50%,transparent 58%);transform:translateX(-55%)}.live::before{box-shadow:0 0 0 0 rgba(104,178,141,.42)}
@media(prefers-reduced-motion:reduce){.chart path{stroke-dashoffset:0}}

/* Image Studio release panel: factual product context on the left and two
   compact download channels on the right. The public page
   never exposes internal release infrastructure. */
.product-studio-promo{grid-column:1/-1;display:grid;grid-template-columns:minmax(320px,.92fr) minmax(0,1.08fr);gap:clamp(34px,6vw,92px);align-items:start;padding:clamp(30px,4.5vw,58px);border:1px solid rgba(225,235,243,.16);background:linear-gradient(120deg,rgba(255,255,255,.055),rgba(101,139,168,.075));box-shadow:0 22px 70px rgba(0,0,0,.16)}
.product-studio-copy{min-width:0}.product-studio-brand{display:flex;align-items:center;gap:16px;margin:0 0 25px}.product-studio-brand img{display:block;width:72px;height:72px;object-fit:contain;border-radius:17px;box-shadow:0 10px 28px rgba(0,0,0,.24)}.studio-overline{margin:0;color:#dce7ef;font-size:11px;font-weight:600;letter-spacing:.16em;line-height:1.35;text-transform:none}.studio-category{margin:6px 0 0;color:#8da3b3;font-size:10px;letter-spacing:.08em;line-height:1.4}.product-studio-copy h3{max-width:520px;margin:0 0 15px;color:#f4f7fa;font-size:clamp(27px,3vw,45px);font-weight:400;line-height:1.08;letter-spacing:-.045em}.product-studio-copy>p{max-width:520px;margin:0;color:#aebbc6;font-size:13px;line-height:1.8}.studio-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:31px 0 0;padding-top:20px;border-top:1px solid rgba(225,235,243,.14)}.studio-facts div{min-width:0}.studio-facts dt{margin:0 0 8px;color:#8398a8;font-size:8px;letter-spacing:.12em;line-height:1.45;text-transform:uppercase}.studio-facts dd{margin:0;color:#e8eef2;font-size:11px;line-height:1.55;overflow-wrap:anywhere}.product-studio-actions{display:grid;gap:0;align-self:stretch}.studio-actions-heading{margin:0 0 12px;color:#8da3b3;font-size:9px;letter-spacing:.16em;line-height:1.4;text-transform:uppercase}.studio-download-link{display:grid;align-items:center;gap:15px;min-height:91px;padding:16px 0;border-top:1px solid rgba(225,235,243,.18);color:#f3f7fa;transition:background-color .24s ease,border-color .24s ease,transform .24s ease}.studio-download-link:last-of-type{border-bottom:1px solid rgba(225,235,243,.18)}.studio-download-link:hover,.studio-download-link:focus-visible{background:rgba(120,164,198,.1);border-color:rgba(188,218,239,.62);transform:translateX(4px)}.studio-channel-icon{display:grid;width:34px;height:34px;place-items:center;border:1px solid rgba(188,218,239,.34);border-radius:10px;color:#c9e2f2}.studio-channel-icon svg{display:block;width:19px;height:19px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.35}.studio-store-badge{display:block;width:74px;max-width:100%;line-height:0}.studio-store-badge img{display:block;width:100%;height:auto;border-radius:7px}.studio-card-copy{display:grid;align-content:center;gap:6px;min-width:0}.studio-channel{color:#9eb6c8!important;font-size:9px!important;font-weight:600;letter-spacing:.12em!important;line-height:1.4!important;text-transform:uppercase}.studio-download-link strong{font-size:14px;font-weight:550;line-height:1.35;letter-spacing:.01em}.studio-download-link .studio-meta{color:#91a5b4;font-size:9px;letter-spacing:.04em;line-height:1.45}.studio-download-link>i{display:grid;width:28px;height:28px;place-items:center;margin-left:auto;border:1px solid rgba(222,236,247,.34);border-radius:50%;color:#c5d9e7;font-size:15px;font-style:normal;line-height:1;flex:0 0 28px}.product-studio-note{margin:17px 0 0;color:#7f919f;font-size:10px;line-height:1.65;letter-spacing:.02em}
.studio-app-store-link{border-bottom:1px solid rgba(225,235,243,.18)}.studio-app-store-link:hover{background:rgba(255,255,255,.02);border-color:rgba(225,235,243,.18);transform:none}.studio-app-store-link>i{width:auto;height:auto;margin:0;border:0;border-radius:0;color:#8da3b3;font-size:8px;letter-spacing:.12em;text-transform:uppercase}
/* Keep the two download channels compact without restoring the old card grid. */
.studio-download-link{grid-template-columns:74px minmax(0,1fr) 28px}
.studio-channel-state{white-space:nowrap}
.studio-download-link.is-unavailable{cursor:default;opacity:.72;pointer-events:none}
.studio-download-link.is-unavailable:hover,.studio-download-link.is-unavailable:focus-visible{background:transparent;border-color:rgba(225,235,243,.18);transform:none}
@media(max-width:1100px){.product-studio-promo{grid-template-columns:1fr;gap:34px}.product-studio-actions{max-width:640px}}
@media(prefers-reduced-motion:reduce){.studio-download-link{transition:none}.studio-download-link:hover,.studio-download-link:focus-visible{transform:none}}

/* Compact timeline dates */
.timeline-item .year{font-size:clamp(22px,3vw,41px);letter-spacing:-.045em}

/* Authenticated internal-system launcher */
.portal-auth{position:relative;margin-left:18px}.portal-auth .portal-link{margin-left:0}.portal-menu-button,.portal-menu{display:none}.portal-auth.is-authenticated .portal-link{display:none}.portal-auth.is-authenticated .portal-menu-button{display:flex}.portal-menu-button{appearance:none;width:34px;height:34px;padding:7px 5px;border:0;background:transparent;color:inherit;flex-direction:column;align-items:stretch;justify-content:center;gap:5px;cursor:pointer}.portal-menu-button i{display:block;height:1px;background:currentColor}.portal-auth.menu-open .portal-menu-button i:first-child{transform:translateY(6px) rotate(45deg)}.portal-auth.menu-open .portal-menu-button i:nth-child(2){opacity:0}.portal-auth.menu-open .portal-menu-button i:last-child{transform:translateY(-6px) rotate(-45deg)}
.portal-menu{position:absolute;z-index:120;top:calc(100% + 20px);right:0;width:min(390px,calc(100vw - 28px));padding:0;overflow:hidden;background:radial-gradient(circle at 78% 0,rgba(74,105,133,.34),transparent 43%),rgba(9,14,21,.97);border:1px solid rgba(166,195,220,.18);box-shadow:0 32px 90px rgba(0,0,0,.46);color:#edf3f7;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);opacity:0;visibility:hidden;transform:translateY(-8px)}.portal-auth.is-authenticated .portal-menu{display:block}.portal-auth.menu-open .portal-menu{opacity:1;visibility:visible;transform:none}.portal-account{display:grid;grid-template-columns:46px minmax(0,1fr) auto;gap:13px;align-items:center;padding:21px;border-bottom:1px solid rgba(167,194,217,.14)}.portal-avatar{display:grid;place-items:center;width:46px;height:46px;overflow:hidden;border:1px solid rgba(255,255,255,.2);border-radius:50%;background:linear-gradient(145deg,#547ea2,#263d55);color:#fff;box-shadow:0 8px 28px rgba(0,0,0,.3);font-size:18px;font-weight:600}.portal-avatar img{display:block;width:100%;height:100%;object-fit:cover}.portal-account strong,.portal-account small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portal-account strong{font-size:13px;font-weight:600}.portal-account small{margin-top:5px;color:#91a1b0;font-size:10px}.portal-account>a{padding:7px 0;border-bottom:1px solid #63778a;color:#aab9c6;font-size:9px;white-space:nowrap}.portal-systems{display:grid;padding:9px}.portal-systems:empty::before{content:'';display:block;height:34px}.portal-systems>a{display:flex;align-items:center;justify-content:space-between;min-height:78px;padding:16px 14px;color:#edf3f7}.portal-systems strong,.portal-systems small{display:block}.portal-systems strong{font-size:15px;font-weight:600}.portal-systems small{margin-top:6px;color:#8496a6;font-size:9px;letter-spacing:.06em}.portal-systems i{color:#9ebbd1;font-style:normal;font-size:16px}
.portal-auth-notice{position:fixed;z-index:200;top:84px;right:20px;display:grid;gap:14px;max-width:min(460px,calc(100vw - 32px));padding:16px 18px;border:1px solid rgba(173,201,224,.18);background:rgba(9,14,21,.96);box-shadow:0 18px 55px rgba(0,0,0,.3);color:#eaf1f6;font-size:11px;line-height:1.7;opacity:0;transform:translateY(-8px);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.portal-auth-notice.visible{opacity:1;transform:none}.portal-auth-notice-actions{display:flex;align-items:center;justify-content:space-between;gap:18px}.portal-auth-notice-actions>a{padding-bottom:2px;border-bottom:1px solid rgba(220,233,242,.6);color:#dce9f2;font-weight:600}.portal-auth-notice-actions>button{appearance:none;width:28px;height:28px;padding:0;border:0;background:transparent;color:#8fa0ae;cursor:pointer;font:300 22px/1 sans-serif}

/* Replayable layered entrances */.family-name{display:flex;flex-direction:column}.family-name-copy{display:contents}.family-logo{display:none}.family-localized{display:block;margin-top:4px;font-size:9px;font-weight:400;line-height:1;letter-spacing:.12em;color:var(--muted)}.family-localized:empty{display:none}
@media(prefers-reduced-motion:reduce){.section-head .section-label,.section-head .section-title,.timeline-item .year,.timeline-item>div:last-child,.service>span,.service h3,.service p,.brand-card>small,.brand-card h3,.brand-card p{opacity:1!important;transform:none!important}}

/* Platform and store marks */
.platform-logos.commerce-platform img{width:112px;height:auto;max-height:28px}.timeline-platforms.store-badges{align-items:center;gap:8px}.timeline-platforms.store-badges img{display:block;width:auto;height:32px;border-radius:0;box-shadow:none}.brand-apps{display:flex;align-items:center;gap:5px;border:0;padding:0}.brand-apps.store-badges img{display:block;width:auto;height:18px;border-radius:0}
.trademark{display:inline-block;margin-left:.05em;font-size:.34em;font-weight:500;line-height:1;vertical-align:super;transform:translateY(-.08em)}

/* Lively micro-interactions: movement stays away from long-form copy */.revenue-points circle{transform-box:fill-box;transform-origin:center;opacity:0}.revenue-points text{opacity:0}

/* Translucent navigation with playful, restrained hover feedback */.main-nav a,.footer-bilingual-nav a{opacity:.58;transform:translateY(0)}.footer-nav{position:relative;background:rgba(255,255,255,.58);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.footer-bilingual-nav a{position:relative}.footer-bilingual-nav a::after{content:"";position:absolute;left:0;bottom:13px;width:0;height:1px;background:currentColor;opacity:.72}.family-site-picker{opacity:.72}

/* Related-site names: localized name first, quiet Latin brand second */
.family-dropdown .family-localized,.family-options .family-localized{order:1;margin:0 0 6px;color:var(--ink);font-size:11px;font-weight:400;line-height:1.15;letter-spacing:.03em}.family-dropdown .family-brand,.family-options .family-brand{order:2;color:var(--muted);font-size:9px;font-weight:400;line-height:1;letter-spacing:.12em}.family-name>.family-localized:only-child{margin-bottom:0}

/* Extensible related-site selector */
.family-site-picker{position:relative;display:grid;grid-template-columns:auto minmax(150px,210px);align-items:center;gap:clamp(18px,2.4vw,38px);min-width:330px}.family-picker-label{font-size:9px;letter-spacing:.14em;text-transform:uppercase}.family-dropdown{position:relative}.family-dropdown summary{display:flex;align-items:center;justify-content:space-between;gap:22px;min-height:66px;padding:0 2px;border-bottom:1px solid transparent;list-style:none;cursor:pointer;font-size:11px;font-weight:650}.family-dropdown summary::-webkit-details-marker{display:none}.family-chevron{width:7px;height:7px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:translateY(-2px) rotate(45deg)}.family-dropdown[open] summary{border-color:var(--ink)}.family-dropdown[open] .family-chevron{transform:translateY(2px) rotate(225deg)}.family-options{position:absolute;z-index:80;right:0}.family-options a{display:flex;align-items:center;justify-content:space-between;border-left:2px solid transparent}.family-options a>i{font-style:normal;color:var(--muted)}.family-dropdown .family-name{line-height:1.1}.family-dropdown .family-localized{margin-top:5px}.family-options a[aria-current=true] .family-name{flex:1}

/* Related-site menu: quiet extension of the footer, without a floating-card feel */
.family-options{top:calc(100% + 1px);bottom:auto;width:100%;min-width:210px;padding:0;background:rgba(255,255,255,.94);border-top:1px solid var(--line);border-bottom:1px solid var(--line);box-shadow:none;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transform-origin:top}
.family-options a{min-height:54px;padding:8px 2px;border:0;gap:14px}
.family-options a>i{font-size:11px}
.family-options a[aria-current=true]::after{content:'01';order:-1;display:block;margin-right:2px;line-height:1;letter-spacing:.12em;color:#a0a5ac}
.family-options a{font-size:11px;font-weight:650;letter-spacing:0}.family-options .family-localized{font-size:9px;font-weight:400;letter-spacing:.12em}.family-options a[aria-current=true]::after{font-size:8px;font-weight:400}

/* Footer identity sits above every legal-information field */
.footer-info{padding-top:32px}.footer-identity>p{margin-bottom:0}
.footer-nav-brand{display:inline-flex;align-items:center;flex:0 0 auto;gap:10px;margin-right:clamp(24px,3vw,52px);font-size:11px;font-weight:700;letter-spacing:.14em}.footer-nav-brand .mark{width:25px;height:25px}.footer-nav>nav{margin-right:auto}

/* The constellation mark forms once on first entry */
.footer-nav-brand:not(.visible) .mark,.footer-nav-brand:not(.visible) .mark i{opacity:0}
@media(prefers-reduced-motion:reduce){.site-header .mark,.site-header .mark i,.footer-nav-brand .mark,.footer-nav-brand .mark i{opacity:1}}

/* Fixed English / Korean footer navigation */
.footer-nav .footer-bilingual-nav a{flex-direction:column;align-items:flex-start;justify-content:center;gap:5px;line-height:1}.footer-bilingual-nav a>span{font-size:10px;font-weight:650;letter-spacing:.08em}.footer-bilingual-nav a>small{font-size:8px;font-weight:450;letter-spacing:.06em;color:var(--muted)}

/* Replay the constellation mark whenever a pointer enters either logo */

/* Clickable wandering star in the hero */
.wandering-star{position:absolute;left:var(--star-x);top:var(--star-y);display:grid;place-items:center;width:42px;height:42px;padding:0;border:0;border-radius:50%;background:transparent;color:#f4f8ff;cursor:pointer;opacity:0;transform:translate(-50%,-50%) scale(.3) rotate(-25deg);filter:drop-shadow(0 0 7px rgba(202,228,255,.8))}.wandering-star::before{content:"";position:absolute;width:58px;height:58px;border:1px solid rgba(211,231,248,.2);border-radius:50%}.wandering-star>span{display:block;width:17px;height:17px;background:currentColor;clip-path:polygon(50% 0,61% 38%,100% 50%,61% 62%,50% 100%,39% 62%,0 50%,39% 38%)}.wandering-star.is-visible{opacity:.92;transform:translate(-50%,-50%) scale(1) rotate(0)}.wandering-star.is-bursting{pointer-events:none}.wandering-star i{position:absolute;width:4px;height:4px;border-radius:50%;background:#e8f4ff;box-shadow:0 0 8px rgba(190,225,255,.95)}.wandering-star.is-bursting::after{content:"";position:absolute;width:12px;height:12px;border-radius:50%;background:#fff;box-shadow:0 0 18px 9px rgba(190,224,255,.72)}
@media(prefers-reduced-motion:reduce){.wandering-star{display:none}}

/* Slower, more legible burst and chart drawing */

/* Local-only collected-star counter */
.star-counter{position:absolute;z-index:4;right:max(var(--pad),62px);bottom:30px;display:grid;grid-template-columns:15px auto auto;align-items:center;gap:9px;min-width:142px;padding:10px 13px;border:1px solid rgba(222,235,247,.16);border-radius:2px;color:rgba(239,247,255,.88)}.star-counter>span{width:12px;height:12px;background:currentColor;clip-path:polygon(50% 0,61% 38%,100% 50%,61% 62%,50% 100%,39% 62%,0 50%,39% 38%);filter:drop-shadow(0 0 5px rgba(202,229,255,.72))}.star-counter small{font-size:8px;font-weight:500;letter-spacing:.12em;color:rgba(222,234,245,.55);white-space:nowrap}.star-counter strong{justify-self:end;font-size:12px;font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:.08em}
@media(prefers-reduced-motion:reduce){.star-counter{display:none}}

/* Vertical-only page navigation: no horizontal page pan or rubber-banding */
html,body{max-width:100%;overflow-x:hidden;overscroll-behavior-x:none}body{touch-action:pan-y pinch-zoom}.footer-nav nav{max-width:100%}

/* Reliable replay for the black footer constellation mark */

/* Shared mouse-reactive layer for both lower sections */
.brands,.trading{position:relative;isolation:isolate;overflow:hidden}.brands>.container,.trading>.container{position:relative;z-index:1}
.trade-registration{column-gap:clamp(28px,4vw,70px);row-gap:34px}.trade-registration>span{min-width:0}.trade-mail-order>span{display:inline-flex;align-items:center;gap:4px;max-width:100%;white-space:nowrap}.trade-registration .lookup-icon{display:inline-grid;grid-column:auto;place-items:center;width:20px;height:20px;padding:0;border:0;color:#8f96a1;opacity:.8;flex:0 0 20px}.trade-registration .lookup-icon svg{width:14px;height:14px}.trade-site{grid-column:1/-1}.trade-site a{display:inline-block;grid-column:auto;padding-bottom:3px;white-space:nowrap}

/* Trading editorial layout */
.trading-grid{grid-template-columns:minmax(270px,.78fr) minmax(0,1.42fr);gap:clamp(70px,9vw,160px);align-items:start}
.trading-grid>div:first-of-type{position:sticky;top:clamp(110px,15vh,170px)}
.trading .section-title{max-width:7.5em;font-size:clamp(48px,5.3vw,78px);line-height:1.04;letter-spacing:-.055em;text-wrap:balance}
html[lang="ko"] .trading .section-title{max-width:10em;font-size:clamp(42px,4vw,62px);line-height:1.12}
.trading-copy{padding-top:38px}
.trading-copy>p{max-width:860px;margin:0 0 clamp(54px,6vw,82px);font-size:clamp(17px,1.45vw,22px);line-height:1.95;letter-spacing:-.022em;color:#b9bec7;text-wrap:pretty}
.trading-copy ul{counter-reset:trade-service;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;border:0;margin:0;padding:0}
.trading-copy li{counter-increment:trade-service;display:grid;grid-template-columns:30px 1fr;align-items:center;min-height:76px;padding:17px 20px;border:1px solid var(--trade-line);border-radius:2px;background:linear-gradient(125deg,var(--trade-soft),rgba(255,255,255,.015));font-size:12px;line-height:1.45;letter-spacing:.035em}
.trading-copy li::before{content:"0" counter(trade-service);font-size:8px;letter-spacing:.14em;color:#69717c}
.trading-company{margin-top:clamp(70px,8vw,110px);padding:clamp(28px,4vw,48px);border:1px solid var(--trade-line)}
.trading-company>small{margin-bottom:18px}
.trading-company>p{max-width:760px;margin:0;font-size:13px;line-height:1.9}
.trading-company [data-i18n="tradingLegalName"]{display:inline-block;margin-bottom:5px;font-size:17px;letter-spacing:.015em}
.trade-registration{margin-top:30px;padding-top:28px;border-top:1px solid var(--trade-line)}
.trade-bank{margin-top:34px;padding-top:28px;border-top:1px solid var(--trade-line)}
.trade-bank>small{display:block;margin-bottom:14px;color:#7f858e;font-size:9px;letter-spacing:.15em;text-transform:uppercase}
.trade-bank-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(18px,3vw,42px);margin-bottom:14px;font-size:12px;color:#c4c8cf}
.trade-bank-meta>span,.bank-meta>span{display:grid;grid-template-rows:auto auto;gap:8px;align-items:start}.trade-bank-meta i,.bank-meta i{margin:0;font-style:normal;font-size:9px;letter-spacing:.1em;color:#686f79}.trade-bank-meta .account-holder-name{color:#8c929c}
.trade-bank strong{display:flex;align-items:center;gap:10px;font-size:clamp(20px,2vw,27px);font-weight:500;letter-spacing:.02em;color:#fff}
.revenue-chart{display:grid;grid-template-columns:42px minmax(0,1fr);height:260px;margin:28px 0 8px;background:none}
.revenue-chart .y-axis{position:relative;padding:0;color:#969ba3;font-size:8px;line-height:1;letter-spacing:.04em;text-align:right}
.revenue-chart .y-axis span{position:absolute;right:8px;transform:translateY(-50%);white-space:nowrap}
.revenue-chart .y-axis span:nth-child(1){top:calc(9.09% - 2.27px)}
.revenue-chart .y-axis span:nth-child(2){top:calc(34.09% - 8.52px)}
.revenue-chart .y-axis span:nth-child(3){top:calc(59.09% - 14.77px)}
.revenue-chart .y-axis span:nth-child(4){top:calc(84.09% - 21.02px)}
.revenue-plot{position:relative;min-width:0;height:100%}.revenue-plot svg{inset:0 0 25px;width:100%;height:calc(100% - 25px)}
.revenue-grid path{stroke:#e8ebee!important;stroke-width:1!important;stroke-dasharray:none!important;stroke-dashoffset:0!important}
.revenue-axes{fill:none;stroke:#bfc5cc!important;stroke-width:1.25!important;stroke-dasharray:none!important;stroke-dashoffset:0!important}
.revenue-line{fill:none;stroke:#627e98!important;stroke-width:2.2!important;stroke-linecap:round;stroke-linejoin:round}
.revenue-points circle{fill:#fff;stroke:#627e98;stroke-width:2;vector-effect:non-scaling-stroke}
.revenue-points text{fill:#626b76;font-size:11px;text-anchor:middle}
.x-axis{position:absolute;inset:0;color:#858b94;font-size:8px;letter-spacing:.08em}.x-axis span{position:absolute;top:calc(84.09% - 11px);transform:translateX(-50%);white-space:nowrap}.x-axis span:nth-child(1){left:1.67%}.x-axis span:nth-child(2){left:31.67%}.x-axis span:nth-child(3){left:61.67%}.x-axis span:nth-child(4){left:91.67%}
.chart-note{margin:0 0 20px;color:#969ba3;font-size:8px;letter-spacing:.08em;text-align:right}

/* Counter outline appears only as click feedback */
.star-counter{border-color:transparent;background:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}.star-counter.is-counting{background:rgba(11,16,22,.24)}

/* A collected star lands in the counter with a compact burst. */
.star-counter{overflow:visible}.star-counter>span,.star-counter small,.star-counter strong{transform-origin:center}.star-counter.is-counting::before,.star-counter.is-counting::after{content:"";position:absolute;left:18px;top:50%;width:4px;height:4px;border-radius:50%;background:#eaf6ff;pointer-events:none;box-shadow:11px -13px 0 -1px rgba(220,240,255,.8),18px 1px 0 -1px rgba(220,240,255,.7),8px 14px 0 -1px rgba(220,240,255,.62),-8px 10px 0 -1px rgba(220,240,255,.72),-11px -8px 0 -1px rgba(220,240,255,.58)}.star-counter.is-counting::after{transform:rotate(35deg) scale(.72)}

/* The story resolves into a timeline as it enters the viewport. */
.story-intro{margin-bottom:28px}.story-bridge{position:relative;height:118px;margin:0 0 2px;overflow:hidden}.story-bridge .bridge-line{position:absolute;left:35%;top:8px;width:2px;height:calc(100% - 28px);background:repeating-linear-gradient(to bottom,rgba(111,148,180,.46) 0 2px,transparent 2px 9px);transform:scaleY(0);transform-origin:top;filter:drop-shadow(0 0 4px rgba(119,163,197,.25))}.story-bridge .bridge-star{position:absolute;z-index:2;left:calc(35% - 5px);top:0;clip-path:polygon(50% 0,61% 38%,100% 50%,61% 62%,50% 100%,39% 62%,0 50%,39% 38%);filter:drop-shadow(0 0 8px rgba(102,143,179,.65))}.story-bridge i{position:absolute;left:35%;bottom:8px;width:clamp(70px,12vw,175px);height:1px;background:linear-gradient(90deg,rgba(111,148,180,.38),transparent);opacity:0;transform:scaleX(.1);transform-origin:left}.story-bridge i:nth-of-type(2){bottom:14px;width:clamp(42px,8vw,110px)}.story-bridge i:nth-of-type(3){bottom:20px;width:clamp(20px,4vw,58px)}
@media(prefers-reduced-motion:reduce){.story-bridge{height:60px}.story-bridge .bridge-line{transform:none}.story-bridge .bridge-star,.story-bridge i{display:none}}

/* Keep chart labels naturally proportioned and reveal each point only after its line arrives. */
.revenue-points text{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:500;font-stretch:normal;letter-spacing:.035em;transform-box:fill-box;transform-origin:center}

/* Scroll-driven timeline cadence: node, rule, date, then content. */
.timeline-item::after{width:0;max-width:none;opacity:0}
@media(prefers-reduced-motion:reduce){.timeline-item::after{width:65%;opacity:.32}}

/* Platform wordmarks move as one mark — icon and lettering stay together. */
.platform-logos>span{transform-origin:center}

/* Keep the dotted story guide quietly moving after its entrance. */.story-bridge .bridge-line{opacity:.52}

/* Business rows get a faster, younger hover gesture. */
.service{overflow:hidden}.service::after{content:"";position:absolute;z-index:2;left:-24px;top:50%;width:9px;height:9px;background:#6888a2;clip-path:polygon(50% 0,61% 38%,100% 50%,61% 62%,50% 100%,39% 62%,0 50%,39% 38%);opacity:0;filter:drop-shadow(-14px 0 6px rgba(105,145,177,.48));pointer-events:none}

/* Lighter glass navigation over scrolled content. */
.site-header.scrolled .main-nav a{opacity:.82}.site-header.scrolled .language button{opacity:.64}.site-header.scrolled .language button.active{opacity:1}

/* Keep the story guide star travelling down the timeline. */

/* Brand reveal: staggered exhibition cards with a focusing logo and light pass. */

/* Brand-site links are frameless; motion carries the interaction. */
.brand-site,.brand-card.has-logo .brand-site{border-top:0!important;border-bottom:0!important;text-decoration:none!important}.brand-site[href]{position:relative;isolation:isolate;overflow:hidden;padding:12px 4px 8px}.brand-site[href]::before{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(100deg,transparent,rgba(164,205,237,.13),transparent);opacity:0;transform:translateX(-105%)}.brand-site[href]::after{content:"";position:absolute;right:8px;top:50%;width:5px;height:5px;background:#dbeaf6;clip-path:polygon(50% 0,61% 38%,100% 50%,61% 62%,50% 100%,39% 62%,0 50%,39% 38%);opacity:0;filter:drop-shadow(0 0 7px rgba(188,221,247,.8))}

/* Timeline entries respond to scroll direction and replay on every return. */
.timeline-item:not(.future)::before{width:10px;height:10px;top:-5px;left:calc(35% - 1px);border-radius:0;background:#6d8ca5;clip-path:polygon(50% 0,61% 38%,100% 50%,61% 62%,50% 100%,39% 62%,0 50%,39% 38%);filter:drop-shadow(0 0 7px rgba(100,141,176,.42))}.timeline-item:not(.future)::after{height:2px;background:linear-gradient(90deg,rgba(101,137,168,.72),rgba(137,181,215,.2),transparent)}
@media(prefers-reduced-motion:reduce){.timeline-item:not(.future).visible::before,.timeline-item:not(.future).visible::after,.timeline-item:not(.future).enter-from-below .year,.timeline-item:not(.future).enter-from-below>div:last-child,.timeline-item:not(.future).enter-from-above .year,.timeline-item:not(.future).enter-from-above>div:last-child{opacity:1;filter:none;transform:none}}

/* Brand cards enter in formation and respond with layered depth. */
.brand-card{transform-origin:center}.brand-logo::after{content:"";position:absolute;z-index:2;inset:-45%;background:linear-gradient(112deg,transparent 38%,rgba(255,255,255,.58) 49%,rgba(255,255,255,.16) 54%,transparent 64%);opacity:0;transform:translateX(-75%) rotate(5deg);pointer-events:none}

/* Keep the revenue curve geometrically complete at every viewport ratio. */
.revenue-line{transform-box:fill-box;transform-origin:center bottom}

/* Brand links use motion, not underlines, as their interaction cue. */
.brand-site,.brand-site strong{border-bottom:0!important;text-decoration:none!important;box-shadow:none!important}

/* Copy feedback stays frameless on dark and light surfaces. */
.copy-account-button{border:0!important;outline:0!important;background:transparent!important;box-shadow:none!important;color:inherit}

/* Company details now live exclusively in the legal footer */
.company>.container{padding-top:0}

/* Distinct dark environments: gallery light for brands, flowing networks for trade. */.brands::before,.brands::after,.trading::before,.trading::after{content:"";position:absolute;pointer-events:none}.brands::before{z-index:-2;filter:blur(34px)}.brands::after{z-index:-1;inset:0;background-size:72px 72px;mask-image:linear-gradient(to bottom,transparent,rgba(0,0,0,.8) 24%,rgba(0,0,0,.5) 78%,transparent);opacity:.58}.trading::before{z-index:-2;inset:-25% -18%;transform:rotate(-7deg) scale(1.08);opacity:.72}.trading::after{z-index:-1;inset:-30% -20%;mask-image:linear-gradient(90deg,transparent 8%,#000 42%,#000 86%,transparent);opacity:.62}

/* Final section rhythm: 01 white / 02 black / 03 white / 04 black / 05 white. */
.story{background:#f7f9fb;color:var(--ink)}
.story .timeline-item.future{background:#fff}
.business{background:#10141a;color:#f4f7fa}.business .section-label,.business .service>span{color:#8d9aa6}.business .service{border-color:rgba(225,235,243,.14)}.business .service p{color:#aeb7c1}.business .service-list{border-color:rgba(225,235,243,.14)}.business .service:nth-child(odd){background:#f5f7fa;color:#10141a;border-color:rgba(32,45,56,.16)}.business .service:nth-child(odd)>span{color:#647486}.business .service:nth-child(odd) p{color:#687582}.business .service:nth-child(even){background:#10141a;color:#f4f7fa}
.brands{background:#f5f7fa;color:var(--ink);background-image:linear-gradient(145deg,#fff,#f1f5f8 52%,#f7f3f8)}.brands::before{background:radial-gradient(ellipse at 20% 24%,rgba(179,143,181,.2),transparent 31%),radial-gradient(ellipse at 76% 28%,rgba(119,163,194,.2),transparent 29%),radial-gradient(ellipse at 48% 86%,rgba(163,140,181,.16),transparent 34%)}.brands::after{background-image:linear-gradient(rgba(88,111,130,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(88,111,130,.045) 1px,transparent 1px)}.brands .section-label.light,.brands .brand-note{color:#747c86}
.technology{background:#10141a;color:#f4f7fa}.technology::before{opacity:.2}.technology .section-label,.technology .tech-copy{color:#aeb7c1}.technology .data-visual{color:var(--ink);background:#fff}
.trading{--trade-line:rgba(32,45,56,.14);--trade-soft:rgba(32,45,56,.045);background:#f5f7fa;color:var(--ink);background-image:radial-gradient(ellipse at var(--pointer-x,70%) var(--pointer-y,35%),rgba(100,145,180,.16),transparent 35%),linear-gradient(126deg,#fff,#edf3f7 62%,#f7f5fa)}.trading::before{background:repeating-radial-gradient(ellipse at 108% 48%,transparent 0 86px,rgba(94,139,174,.13) 87px,rgba(94,139,174,.13) 88px,transparent 90px,transparent 144px)}.trading::after{background:repeating-linear-gradient(112deg,transparent 0 72px,rgba(83,126,159,.055) 73px,transparent 75px 145px)}.trading .section-label.light,.trading-copy>p,.trading-company span{color:#66717c}.trading-copy ul{border-color:var(--trade-line)}.trading-copy li{border-color:var(--trade-line)}.trading-company{background:rgba(255,255,255,.48);border-color:var(--trade-line);backdrop-filter:blur(4px)}.trading-company [data-i18n="tradingLegalName"]{color:var(--ink)!important}.trade-bank-meta,.trade-bank strong{color:var(--ink)}.trade-bank-meta span:last-child{color:#65707b}

/* Explicit reading rail: visible track, fill and travelling head. */.reading-progress{--reading-progress:0;pointer-events:none}.reading-progress span{position:absolute;inset:0;transform:scaleX(var(--reading-progress));transform-origin:left center}.reading-progress i{position:absolute}.site-header.scrolled .reading-progress{background:rgba(31,48,61,.2)}.site-header.scrolled .reading-progress span{background:linear-gradient(90deg,#7197b2,#42677f 76%,#142b3b);box-shadow:0 0 9px rgba(50,91,121,.55)}.site-header.scrolled .reading-progress i{border-color:#eef7fd;background:#18384e}

/* Transparent navigation glass that preserves the content underneath. */

/* One unmistakable guide-star pass every three seconds. */

/* Business rows enter as full-width shutters, without perspective flips. */

/* Revenue geometry completes before its endpoint appears. */

/* Both SUCCUBUS website links are frameless and animated. */
.trade-site a{position:relative;overflow:hidden;border:0!important;border-bottom:0!important;outline:0;text-decoration:none!important;box-shadow:none!important;padding:5px 3px;color:inherit}.trade-site a::before{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent,rgba(92,143,180,.18),transparent);opacity:0;transform:translateX(-110%)}

/* Final interaction corrections: visible reading, clear glass and exact motion. */

/* Clear navigation: no full-width painted or blended rectangle. */.site-header.scrolled{color:#fff!important}.site-header.scrolled .nav-shell{background:transparent!important;mix-blend-mode:normal!important}.site-header.scrolled .wordmark,.site-header.scrolled .main-nav,.site-header.scrolled .language,.site-header.scrolled .portal-link{text-shadow:none!important}

/* Interactive stars stay behind all hero copy as a final visual safeguard. */

/* Do not blend or paint the fixed navigation as a rectangular layer. */
.site-header.scrolled .wordmark,.site-header.scrolled .main-nav,.site-header.scrolled .language,.site-header.scrolled .portal-link{mix-blend-mode:normal!important;color:#fff!important;filter:drop-shadow(0 1px 3px rgba(0,0,0,.8))}
.site-header.over-light .wordmark,.site-header.over-light .main-nav,.site-header.over-light .language,.site-header.over-light .portal-link,.site-header.over-light .menu-toggle,.site-header.over-light .portal-menu-button{color:#111318!important;filter:drop-shadow(0 1px 3px rgba(255,255,255,.9))}
/* Source: css/refinements.css *//* Authoritative fixes — keep these last to neutralize legacy iterations above. */
.site-header .nav-shell,.site-header.scrolled .nav-shell{background:transparent!important;opacity:1!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;mix-blend-mode:normal!important}
.story-bridge .bridge-star{display:block!important;width:14px!important;height:14px!important;margin:0!important;background:#6389a7!important;box-shadow:0 0 0 7px rgba(105,151,187,.12),0 0 22px rgba(78,130,171,.78)!important;opacity:0}
.trade-site a,.trade-site a:link,.trade-site a:visited{border:0!important;border-top:0!important;border-bottom:0!important;text-decoration:none!important;text-decoration-line:none!important;box-shadow:none!important;background-image:none!important}.trade-site a::after{display:none!important;content:none!important}.trade-site a::before{border:0!important}

/* Reading progress sits on the navigation baseline as a small meteor. */
.reading-progress{position:absolute!important;z-index:120!important;left:0!important;right:0!important;top:auto!important;bottom:-1px!important;height:1px!important;background:rgba(170,188,203,.18)!important;box-shadow:none!important;overflow:visible}.reading-progress span{height:1px!important;background:linear-gradient(90deg,rgba(107,145,174,.35),rgba(180,215,239,.82))!important;box-shadow:none!important}.reading-progress i{left:calc(var(--reading-progress)*100%)!important;top:50%!important;border:0!important;border-radius:0!important;background:#dceefa!important;clip-path:polygon(50% 0,61% 38%,100% 50%,61% 62%,50% 100%,39% 62%,0 50%,39% 38%)!important;box-shadow:none!important;transform:translate(-50%,-50%) rotate(12deg)!important}.reading-progress i::before{content:"";position:absolute;top:calc(50% - .5px);height:1px;clip-path:none}.site-header.over-light .reading-progress{background:rgba(65,88,105,.13)!important}.site-header.over-light .reading-progress span{background:linear-gradient(90deg,rgba(80,116,143,.32),rgba(66,105,135,.76))!important}.site-header.over-light .reading-progress i{background:#4f7897!important;filter:drop-shadow(0 0 3px rgba(68,112,145,.5))}

/* Balanced navigation glass: translucent without becoming a solid panel. */
.site-header.scrolled{border-color:rgba(219,232,242,.14)!important}.site-header.scrolled.over-light{border-color:rgba(35,48,58,.1)!important}

/* Final visibility and interaction safeguards. Text must never depend on an
   IntersectionObserver callback to remain readable. */

/* The stars stay below copy, but above non-interactive hero decoration. */
.wandering-star{z-index:4!important;pointer-events:auto!important;touch-action:manipulation}
.hero-content,.scroll-cue,.star-counter{z-index:5}
.hero-content{pointer-events:none}

/* Slightly larger reading meteor, while keeping the progress rail hairline. */
.reading-progress i{
  width:9px!important;
  height:9px!important;
  filter:drop-shadow(0 0 6px rgba(170,215,246,.95))!important;
}
.reading-progress i::before{
  right:7px!important;
  width:28px!important;
  background:linear-gradient(90deg,transparent,rgba(166,207,236,.82))!important;
}

/* Timeline: replay on every viewport entry, with a coordinated hover pass. */

/* Tighter chapter rhythm: retain breathing room without oversized gaps. */
.section{padding:clamp(72px,9vw,120px) 0}
.section-head{margin-bottom:clamp(48px,5vw,64px)}
.section.company{padding-bottom:36px}

/* Prevent the Story → Business boundary from accumulating two full gutters. */

/* Business motion is additive, never a prerequisite for readable content. */

/* Low-memory rendering: avoid permanent compositor layers and costly filters. */
.timeline-item,.timeline-item .year,.timeline-item>div:last-child{backface-visibility:hidden}

/* Section 03: retain motion, remove expensive full-panel blur/compositing. */
.brands::before,.brands::after{filter:none!important}
.brands::before{inset:0!important;opacity:.4!important}
.brand-card{
  clip-path:none!important;
  box-shadow:none!important;
}
.brand-card::before{display:none!important}
.brand-card::after{width:180px!important;height:180px!important;filter:none!important;opacity:.07!important;transform:none!important}
.brand-logo{box-shadow:0 12px 28px rgba(0,0,0,.12)!important}
.brand-logo img{filter:none!important}
/* Source: css/sections.css *//* Section 05: company credentials form a full-width closing band. */
.trading-grid>.trading-company{grid-column:1/-1}

/* Stable hover geometry: trackpad micro-movements must not retrigger controls. */

/* Animate visual labels while their clickable hit areas remain stationary. */
.main-nav a{display:block}
.main-nav .nav-label,.language .language-label{display:inline-block;transform-origin:center}
@media(prefers-reduced-motion:reduce){.main-nav .nav-label,.language .language-label{transform:none!important}}

/* Business rows: layered rightward type motion inside a stable hit area. */

/* Section 03: restrained gallery motion, without bounce or decorative sweeps. */
#brands .brand-card-head::after{display:none!important}
.brand-index-0{--brand-index:0}.brand-index-1{--brand-index:1}.brand-index-2{--brand-index:2}.brand-index-3{--brand-index:3}.brand-index-4{--brand-index:4}

/* Technology metrics: large fixed hit areas with animated inner labels. */
.metric-row>div{position:relative;min-height:62px;padding:10px 8px;margin:-10px -8px;overflow:hidden;transform:none!important;cursor:default}
.metric-row>div::after{content:"";position:absolute;left:8px;right:100%;bottom:4px;height:1px;background:linear-gradient(90deg,#6f91aa,transparent);opacity:0}
.metric-row small,.metric-row strong{position:relative;display:block}
@media(prefers-reduced-motion:reduce){.metric-row>div::after{display:none}.metric-row small,.metric-row strong{transform:none!important}}

/* Search control contrast on the light trading panel. */
.trading .trade-registration .lookup-icon,
.trading .trade-registration .lookup-icon:link,
.trading .trade-registration .lookup-icon:visited{color:#667582!important;opacity:.88}

/* Family-site picker uses the original soft, edge-attached reveal. */
.family-dropdown summary .family-name,.family-picker-label{display:inline-block;transform-origin:left center}
.family-dropdown[open] .family-options a{opacity:1}

/* Keep language labels crisp over both light and dark sections. */
.site-header .language{text-shadow:none!important}
.site-header .language button{opacity:.68!important;text-shadow:none!important;-webkit-font-smoothing:antialiased}
.site-header .language .language-label{text-shadow:none!important;filter:none!important}

/* KakaoPage and NAVER SERIES share one stable, synchronized interaction. */
.platform-logos>.platform-hit{display:inline-flex;align-items:center;min-height:38px;padding:5px 3px;margin:-5px -3px;color:inherit;text-decoration:none;transform:none!important;filter:none!important;cursor:pointer}
.platform-logos .platform-logo-visual{display:inline-flex;align-items:center;gap:8px;transform-origin:center}
.platform-logos .platform-wordmark .platform-logo-visual img{width:110px;height:24px}
@media(prefers-reduced-motion:reduce){.platform-logos .platform-logo-visual{transform:none!important}}

.store-link{display:inline-flex;align-items:center;color:inherit;text-decoration:none;transform-origin:center}.store-link.is-unavailable{cursor:default;opacity:.62;pointer-events:none}
@media(prefers-reduced-motion:reduce){.store-link{transform:none!important}}

/* One transparency layer only: prevent dark-on-dark language labels. */
.site-header .language button,.site-header.scrolled .language button{opacity:1!important}
.site-header.over-light .language button{color:rgba(17,19,24,.64)!important}
.site-header.over-light .language button.active{color:#111318!important}

/* Final contrast + Story/Business rhythm corrections.
   Language labels use difference blending so an incorrect section boundary can
   never leave dark labels on the night panels (or white labels on white). */

/* Compact story-to-business handoff. */
.section.story{min-height:0!important;padding-bottom:18px!important}
.section.story .timeline{min-height:0!important}
.section.business{padding-top:52px!important}

/* Keep two-digit business indices intact throughout the section reveal. */

/* Related-sites selector: keep the label and selected site as one compact
   control without allowing later alignment rules to split the hierarchy. */
.footer-nav-actions .family-site-picker{
  width:auto!important;
  min-width:0!important;
  grid-template-columns:max-content minmax(148px,178px)!important;
  justify-content:start!important;
  gap:clamp(22px,2.2vw,34px)!important;
}
.family-dropdown summary .family-name,
.family-dropdown .family-name,
.family-options .family-name{
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
}
.family-dropdown summary{width:100%}

/* Header language contrast is determined by the sampled section below the
   fixed header. Do not blend the glyphs with the frosted compositor layer. */
.site-header .language{
  color:#f7f9fb!important;
}
.site-header.over-light .language{color:#171a1f!important}
.site-header .language button,
.site-header.scrolled .language button,
.site-header.over-light .language button,
.site-header:not(.over-light) .language button{
  color:inherit!important;
  opacity:.74!important;
}
.site-header .language button.active{color:inherit!important;opacity:1!important}
.site-header .language>span{color:inherit!important}

/* Stable brand compositing: entry effects must not be cancelled and restarted
   while the pointer crosses a card boundary. */
#brands .brand-logo,
#brands .brand-logo img,
#brands .brand-card-foot{
  opacity:1!important;
  visibility:visible!important;
  filter:none!important;
  transform:none!important;
}
#brands .brand-card::after{opacity:.08!important;transform:none!important}

/* Slow, replayable revenue drawing is controlled by one JS state machine. */

/* Keep the final capability row and the legal-information card in the same
   visual chapter. The main grid's large column gap must not become a row gap. */
.trading-grid{
  column-gap:clamp(70px,9vw,160px)!important;
  row-gap:26px!important;
}
.trading-grid>.trading-company{margin-top:0!important}

/* Legal details remain a two-column matrix: website sits beside the online
   retail registration instead of opening an unnecessary third row. */
.trade-registration{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.trade-registration .trade-site{grid-column:auto!important}

/* A deliberate pause between chapters 01 and 02. */
.section.business{margin-top:18px!important}

/* Definitive header-language contrast. These selectors intentionally outrank
   the historical scrolled-header rules above. */
.site-header.scrolled .language,
.site-header.scrolled.over-light .language,
.site-header:not(.over-light) .language{
  mix-blend-mode:normal!important;
  filter:none!important;
  text-shadow:none!important;
  opacity:1!important;
}
.site-header:not(.over-light) .language{color:#f7f9fb!important}
.site-header.over-light .language,
.site-header.scrolled.over-light .language{color:#20252b!important}
.site-header .language button,
.site-header.scrolled .language button,
.site-header.scrolled.over-light .language button{
  color:inherit!important;
  opacity:.82!important;
  font-weight:500!important;
}
.site-header .language button.active,
.site-header.scrolled .language button.active,
.site-header.scrolled.over-light .language button.active{opacity:1!important}
.site-header .language>span,
.site-header.scrolled .language>span,
.site-header.scrolled.over-light .language>span{color:inherit!important;opacity:.5!important}

/* Final interaction layer. Card hit boxes never move, so horizontal pointer
   travel stays stable; only their contents animate. */
#brands .brand-card{transform:none!important;backface-visibility:hidden!important}
#brands .brand-card .brand-logo,#brands .brand-card .brand-card-foot,#brands .brand-card .brand-site{backface-visibility:hidden!important}

/* Related-sites selector: feedback fires on both opening and closing. */
.footer-nav-actions .family-site-picker{opacity:1!important;transform:none!important}.family-dropdown summary{color:var(--ink)!important;opacity:1!important}.family-picker-label{opacity:1!important;color:#747b84!important}.family-dropdown summary .family-localized{color:#171a1f!important}.family-dropdown summary .family-brand{color:#7d848d!important}

/* Dark-section language labels use the same contrast as the other controls. */
.site-header:not(.over-light) .language button{color:#f7f9fb!important;opacity:.94!important}.site-header:not(.over-light) .language button.active{color:#fff!important;opacity:1!important}

/* Language names share one consistent contrast; separators stay secondary. */
.site-header .language button,
.site-header .language button.active,
.site-header.scrolled .language button,
.site-header.scrolled .language button.active,
.site-header.over-light .language button,
.site-header.over-light .language button.active{
  color:inherit!important;
  opacity:1!important;
  font-weight:500!important;
}
.site-header .language>span{opacity:.55!important}

/* Render the visible language glyphs directly so legacy inherited-color and
   compositor rules cannot dim this group independently of the main nav. */
.site-header .language{
  opacity:1!important;
  mix-blend-mode:normal!important;
  filter:none!important;
  isolation:isolate;
}
.site-header:not(.over-light) .language .language-label{
  color:#aeb3ba!important;
  -webkit-text-fill-color:#aeb3ba!important;
  opacity:1!important;
  filter:none!important;
}
.site-header.over-light .language .language-label{
  color:#555b63!important;
  -webkit-text-fill-color:#555b63!important;
  opacity:1!important;
  filter:none!important;
}
.site-header:not(.over-light) .language>span{color:#aeb3ba!important;opacity:.72!important}
.site-header.over-light .language>span{color:#555b63!important;opacity:.62!important}

/* The decorative scan cannot sit above the chart's interaction surface. */
.data-visual::before{pointer-events:none!important}
.revenue-chart,.revenue-chart svg,.revenue-line{pointer-events:auto!important;cursor:pointer}

/* Related-site identity responds when the pointer enters the current brand. */

/* Keep the expanded related-sites menu above the following footer rows so its
   visible links and their actual hit areas stay aligned. */
.company-footer .footer-nav{
  position:relative!important;
  z-index:30!important;
  overflow:visible!important;
}
.footer-nav-actions,.family-site-picker,.family-dropdown{
  position:relative!important;
  z-index:31!important;
  overflow:visible!important;
}
.family-dropdown[open]{z-index:40!important}
.family-dropdown .family-options{
  z-index:50!important;
  pointer-events:auto!important;
}
.family-dropdown .family-options a,
.family-dropdown .family-options a *{
  pointer-events:auto!important;
}

/* Company details use one playful, reversible system instead of layered
   global text/contact effects. The grid geometry never participates. */.footer-contact .contact-lines a,.footer-contact .contact-value{white-space:nowrap}

/* Footer-bottom owns one isolated motion system. Its parent stays fixed while
   the copyright and social links enter, leave and respond independently. */

/* Mirrored SEIYASHA contact block beside the SEIYA TRADING entity details. */
.trade-entity-overview{display:block}
.trade-entity p{margin:0}
.trade-lower-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(28px,4vw,70px)}
.trade-lower-row .trade-bank,.trade-lower-row .trade-contact{margin-top:34px;padding-top:28px;border-top:1px solid var(--trade-line)}
.trade-lower-row .trade-bank{min-width:0}
.trade-lower-row .trade-bank>small{display:none}
.trade-lower-row .trade-bank-meta{grid-template-columns:minmax(120px,max-content) minmax(0,1fr);column-gap:34px;margin-top:0}
.trade-lower-row .trade-bank>strong{font-size:18px}
.trade-contact>small{display:block;margin-bottom:14px}
.trade-contact .contact-lines{display:grid;grid-template-columns:1fr;gap:13px}
.trade-contact .contact-lines>span{display:grid;grid-template-columns:58px minmax(0,1fr);align-items:baseline;font-size:13px}
.trade-contact .contact-lines small{margin:0;font-size:9px;letter-spacing:.13em}
.trade-contact .contact-lines a,.trade-contact .contact-value{color:var(--ink)}

/* Keep the story connector legible and fully inside narrow viewports. */

/* Narrow screens expose one quiet menu trigger. Language and Portal access
   become the first row inside a surface matched to the section underneath. */

/* Compact footer: keep related sites beside the identity, center the section
   links, and attach the social channels to the copyright line. Desktop keeps
   its established composition. */

/* At zero progress the shuriken would sit half outside the viewport and look
   like an unreachable control. It materialises only once reading begins, then
   remains the same rotating progress marker across every viewport size. */
.site-header .reading-progress i{
  opacity:clamp(0,calc(var(--reading-progress) * 100),1);
}

/* Touch devices cannot hover. Give their main interactive surfaces a short,
   deliberate response while preventing sticky mobile hover backgrounds. */

/* Final compact-width geometry: no draggable menu canvas, no artificial
   right gutter, and genuinely edge-to-edge footer navigation. */

/* Final compact interaction contract. Desktop rules above remain untouched. */

/* Compact menu/content polish. Kept at the end so legacy compact rules cannot
   reintroduce abbreviated language labels or touch-state layout jumps. */
.brand-card-motion{
  position:relative;
  z-index:1;
  display:flex;
  flex:1;
  width:100%;
  min-height:100%;
  flex-direction:column;
  justify-content:space-between;
}
/* Phone business cards: one restrained tap response, with no comet or
   independently moving number/copy. */

/* Keep the mobile story guide on the actual viewport/content axis. */

/* A drawn external-link mark stays typographically identical on every OS;
   unlike the diagonal Unicode arrow it can never be substituted by emoji. */
.footer-nav-actions .family-options .family-external{
  display:block!important;
  flex:0 0 13px;
  width:13px;
  height:13px;
  fill:none;
  stroke:#7d858e;
  stroke-width:1.15;
  stroke-linecap:round;
  stroke-linejoin:round;
}

/* Blend the expanded selector into the footer while masking legal data below. */
.footer-nav-actions .family-options{
  top:calc(100% + 1px)!important;
  bottom:auto!important;
  background:#fff!important;
  border:0!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  max-height:min(320px,50vh);
  overflow-x:hidden;
  overflow-y:auto;
  overscroll-behavior:contain;
  transform-origin:top!important;
}
.footer-nav-actions .family-options a{position:relative}
.footer-nav-actions .family-options .family-index{
  position:static!important;
  flex:0 0 20px;
  width:20px;
  margin:0;
}
.footer-nav-actions .family-options a[aria-current="true"]::after{
  content:none!important;
  display:none!important;
}
.footer-nav-actions .family-dropdown[open] summary{border-color:transparent!important}

/* The footer begins immediately after the trading section. */
.company .company-footer{margin-top:0!important}

/* Brand cards share one geometry at every size: number/app row, a genuinely
   centred artwork area, compact description, and a fixed site row. */
#brands .brand-card-motion{
  display:grid;
  grid-template-rows:24px minmax(0,1fr) auto;
  justify-content:normal;
}
#brands .brand-card-head{
  height:24px;
  min-height:24px;
  align-items:flex-start;
}
#brands .brand-card-head>small{
  display:flex;
  height:18px;
  align-items:center;
  line-height:18px;
}
#brands .brand-apps{
  height:18px;
  align-items:center;
}
#brands .brand-apps .store-link{
  display:flex;
  height:18px;
  align-items:center;
}
#brands .brand-logo{
  place-self:center;
  width:min(66%,270px);
  margin:0;
}
#brands .brand-card{
  aspect-ratio:1;
  height:auto!important;
  min-height:0!important;
  border-radius:var(--ui-radius);
}
#brands .brand-card-foot{
  display:grid;
  grid-template-rows:auto 40px;
  row-gap:10px;
  height:auto;
  min-height:0;
  margin-top:0!important;
}
#brands .brand-card-foot p{
  align-self:end;
  margin:0;
  opacity:1!important;
  transform:none!important;
}
#brands .brand-card-foot .brand-site{
  align-self:stretch;
  height:40px;
  min-height:40px;
  margin-top:0;
  padding:8px 0 0!important;
}

/* SUCCUBUS artwork and its outer card are strictly concentric. Supporting
   content never participates in the artwork's position calculation. */
#brands .brand-succubus{
  container-type:inline-size;
  /* 100cqi is the square card's content width. Subtracting twice the
     43px top offset keeps the centred artwork's top edge one content inset
     below the 18px index row. */
  --succubus-logo-size:calc(100cqi - 86px);
}
#brands .brand-succubus .brand-logo{
  position:absolute;
  top:50%;
  left:50%;
  place-self:auto;
  width:var(--succubus-logo-size);
  max-width:none;
  margin:0;
  translate:-50% -50%;
  transform:none!important;
}
#brands .brand-succubus .brand-card-foot{
  position:absolute;
  top:calc(50% + var(--succubus-logo-size)/2);
  right:0;
  bottom:0;
  left:0;
  grid-template-rows:1fr auto 1fr auto;
  row-gap:0;
  margin:0!important;
}
#brands .brand-succubus .brand-card-foot p{
  grid-row:2;
  /* The 10px brand label is centred inside a 14px link row. Shift by half
     of that row-edge difference so the visible text gaps, not just the grid
     track gaps, are equal. */
}
#brands .brand-succubus .brand-site{
  grid-row:4;
  margin:0;
  padding:0!important;
  align-items:center;
}

/* Every portfolio card follows the SUCCUBUS card's geometry. */
#brands .brand-card.has-logo{
  container-type:inline-size;
  --uniform-brand-logo-size:calc(100cqi - 86px);
  --uniform-brand-link-row-height:14px;
}
#brands .brand-card.has-logo .brand-logo{
  position:absolute;
  top:50%;
  left:50%;
  place-self:auto;
  width:var(--uniform-brand-logo-size);
  max-width:none;
  margin:0;
  translate:-50% -50%;
  transform:none!important;
}
#brands .brand-card.has-logo .brand-card-foot{
  position:absolute;
  top:calc(50% + var(--uniform-brand-logo-size)/2);
  right:0;
  bottom:0;
  left:0;
  display:block;
  margin:0!important;
  transform:none!important;
}
#brands .brand-card.has-logo .brand-card-foot p{
  position:absolute;
  top:calc((100% - var(--uniform-brand-link-row-height))/2);
  left:0;
  margin:0;
  translate:0 -50%;
}
#brands .brand-card.has-logo .brand-site{
  position:absolute;
  right:0;
  bottom:0;
  left:0;
  height:var(--uniform-brand-link-row-height);
  min-height:var(--uniform-brand-link-row-height);
  margin:0;
  padding:0!important;
  align-items:center;
}
#brands .brand-succubus .brand-site strong{
  display:inline-flex;
  align-items:center;
}
#brands .brand-succubus .external-arrow,
.trade-site .external-arrow{
  display:inline-flex!important;
  width:14px;
  height:14px;
  margin-left:6px;
  flex:0 0 14px;
  align-items:center;
  justify-content:center;
  vertical-align:middle;
}
#brands .brand-succubus .external-arrow svg,
.trade-site .external-arrow svg{
  display:block;
  width:100%;
  height:100%;
  overflow:visible;
  fill:none;
  stroke:currentColor;
  stroke-width:1.35;
  stroke-linecap:round;
  stroke-linejoin:round;
}

/* Compact screens replay the trading detail cells as they re-enter view. */

/* Keep the reading-progress meteor visible on compact navigation. */

/* The progress marker travels like a four-blade shuriken at every viewport size. */
.site-header .reading-progress{--shuriken-color:#dceefa}
.site-header .reading-progress i{
  width:11px!important;
  height:11px!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  clip-path:none!important;
  filter:none!important;
  transform:translate(-50%,-50%)!important;
}
.site-header .reading-progress i::before{
  right:8px!important;
  top:calc(50% - .5px)!important;
  width:30px!important;
  height:1px!important;
}
.site-header .reading-progress i::after{
  content:"";
  position:absolute;
  inset:0;
  background:var(--shuriken-color);
  clip-path:polygon(50% 0,59% 35%,82% 18%,65% 41%,100% 50%,65% 59%,82% 82%,59% 65%,50% 100%,41% 65%,18% 82%,35% 59%,0 50%,35% 41%,18% 18%,41% 35%);
  filter:drop-shadow(0 0 5px rgba(170,215,246,.95));
  transform:rotate(var(--shuriken-angle,0deg));
}
.site-header.over-light .reading-progress{--shuriken-color:#4f7897}
.site-header.scrolled .reading-progress i,
.site-header.over-light .reading-progress i,
.site-header.scrolled.over-light .reading-progress i{
  background:transparent!important;
  filter:none!important;
}
@media(prefers-reduced-motion:reduce){
  .site-header .reading-progress i::after{transform:rotate(22.5deg)}
}

/* iOS Safari may restore a stale horizontal offset after a reload.  Let the
   root follow the live viewport instead of retaining an earlier fixed width. */

/* Mobile brand content is always visible. Motion only decorates an observed
   entrance, so a delayed/failed observer can never leave the section blank. */

/* Brand artwork and copy never fade. Re-entry motion may move them slightly,
   but refreshes and observer callbacks cannot flash their opacity. */
#brands .brand-card,
#brands .brand-logo,
#brands .brand-logo img,
#brands .brand-card-foot{
  opacity:1!important;
  visibility:visible!important;
}

/* Content is the fail-safe state. A browser timing or script error may skip
   motion, but it must never leave the public page as an empty background. */

/* One radius across every viewport and every framed interface surface. */
#brands .brand-card,
#brands .brand-logo,
.data-visual,
.trading-copy li,
.trading-company,
.portal-menu,
.portal-auth-notice,
.family-options{
  border-radius:var(--ui-radius)!important;
}
/* Phone business rows are deliberately stable. Legacy reveal layers used
   opacity, blur, clipping and light sweeps at the same time, which could
   retrigger near an observer boundary and look like a rapid strobe. */

/* External-link hover contract: the clickable copy and its layout stay fixed.
   Direction is communicated solely by the drawn icon, so hovering a URL can
   never pull its label, card index, or neighbouring footer fields around. */
#brands .brand-site[href] .external-arrow,
.trade-site a[href] .external-arrow,
.footer-nav-actions .family-options .family-external{
  transform:none;
  transform-origin:center;
}

/* Final SUCCUBUS landmark geometry. Keep this after the shared brand rules:
   description centre = midpoint(artwork bottom, link-row top). */
#brands .brand-succubus{--succubus-link-row-height:14px}
#brands .brand-succubus .brand-card-foot{
  display:block;
  transform:none!important;
}
#brands .brand-succubus .brand-card-foot p{
  position:absolute;
  top:calc((100% - var(--succubus-link-row-height))/2);
  right:auto;
  bottom:auto;
  left:0;
  margin:0;
  translate:0 -50%;
}
#brands .brand-succubus .brand-site{
  position:absolute;
  right:0;
  bottom:0;
  left:0;
  height:var(--succubus-link-row-height);
  min-height:var(--succubus-link-row-height);
}

/* Header surface authority: compact navigation uses exactly one constant glass
   layer. When closed the
   header owns it; when open this full-viewport layer replaces it, preventing
   both a double blur and any visual change at the header boundary. */
/* Scroll and surface detection may change foreground colours, never glass. */
.site-header{
  --header-glass-background:rgba(8,14,21,.60);
  --header-glass-filter:blur(24px) saturate(1.08);
}
.site-header,
.site-header.scrolled,
.site-header.scrolled.over-light{
  background:var(--header-glass-background)!important;
  backdrop-filter:var(--header-glass-filter)!important;
  -webkit-backdrop-filter:var(--header-glass-filter)!important;
  box-shadow:none!important;
}
.site-header.over-light,
.site-header.scrolled.over-light{
  --header-glass-background:rgba(247,249,251,.60);
  --header-glass-filter:blur(16px) saturate(1.08);
}
.site-header.menu-open{
  background:transparent!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
.site-header.menu-open.over-light{background:transparent!important}

/* Both navigation triggers must follow the surface colour. The authenticated
   desktop account trigger uses the same three-line mark as compact navigation. */
.site-header:not(.over-light) :is(.menu-toggle,.portal-menu-button){color:#f4f7fa!important;filter:drop-shadow(0 1px 3px rgba(0,0,0,.72))}
.site-header.over-light :is(.menu-toggle,.portal-menu-button){color:#171b20!important;filter:drop-shadow(0 1px 3px rgba(255,255,255,.86))}
