/* ==========================================================================
   SubLunio · base stylesheet
   01 Fonts        02 Tokens       03 Elements     04 Typography
   05 Layout       06 Components   07 Header       08 Footer
   09 Page parts   10 Documents    11 Consent      12 Responsive
   The page is served with style-src 'self': no inline styles, so every
   state is expressed here through classes and attributes.
   ========================================================================== */

/* 01 Fonts ---------------------------------------------------------------- */
@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url("/static/fonts/Inter-4.1-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+2000-206F,U+20A0-20CF,U+2100-214F,U+2190-21FF,U+2212,U+FEFF,U+FFFD}
@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url("/static/fonts/Inter-4.1-extended.woff2") format("woff2");unicode-range:U+0100-036F,U+1E00-1EFF}
@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url("/static/fonts/Inter-4.1-cyrillic.woff2") format("woff2");unicode-range:U+0400-052F,U+2DE0-2DFF,U+A640-A69F}
@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url("/static/fonts/Inter-4.1-greek.woff2") format("woff2");unicode-range:U+0370-03FF,U+1F00-1FFF}

@font-face{font-family:"SL Yu Gothic";font-weight:100 500;src:local("Yu Gothic Medium"),local("YuGothic-Medium")}
@font-face{font-family:"SL Yu Gothic";font-weight:600 900;src:local("Yu Gothic Bold"),local("YuGothic-Bold")}

/* 02 Tokens --------------------------------------------------------------- */
:root{
  color-scheme:light;
  /* surfaces, from the page up */
  --bg:#f6f7fc;--bg-accent:#eef0fa;--surface:#fff;--surface-2:#f1f3f9;--surface-3:#e4e8f3;--field:#fff;--button-bg:#fff;
  /* text */
  --text:#131832;--text-2:#363f5e;--muted:#5a6482;
  /* lines */
  --line:#dfe3ef;--line-strong:#c3c9dc;--control-line:#848dab;--toggle-off:#5a6482;
  /* brand: indigo night and the caption yellow of the logo */
  --brand:#4f46e5;--brand-ink:#4036c4;--brand-soft:#eef0ff;--brand-line:#c7ccfb;
  --primary:#4f46e5;--primary-hover:#4037c8;--on-primary:#fff;
  --caption:#ffd84d;--caption-ink:#33270a;
  /* status */
  --success:#147a3c;--success-soft:#eaf7ef;--success-line:#b4e0c3;
  --warning:#97500a;--warning-soft:#fff6e4;--warning-line:#efd39e;
  --danger:#b4232c;--danger-soft:#fdf0f0;--danger-line:#efc1c4;
  --focus-ring:#6366f1;
  /* shape and depth */
  --radius-xs:6px;--radius-sm:10px;--radius-md:14px;--radius:18px;--radius-lg:24px;
  --shadow-xs:0 1px 2px rgb(19 24 50/.06);
  --shadow-sm:0 1px 2px rgb(19 24 50/.05),0 8px 20px -8px rgb(19 24 50/.1);
  --shadow:0 1px 2px rgb(19 24 50/.04),0 18px 44px -14px rgb(19 24 50/.16);
  --shadow-lg:0 2px 4px rgb(19 24 50/.04),0 36px 80px -24px rgb(49 46 129/.3);
  --backdrop:rgb(13 17 38/.5);
  --glow-a:rgb(99 102 241/.16);--glow-b:rgb(255 216 77/.2);
  --header-bg:rgb(246 247 252/.82);
  --toast-bg:#171d3a;--toast-text:#f4f6ff;--raised:#fff;
  --evidence-filter:none;
  --chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%235a6482' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4 6 4 4 4-4'/%3E%3C/svg%3E");
  --globe:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%235a6482' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='10' cy='10' r='7.25'/%3E%3Cpath d='M2.75 10h14.5M10 2.75c2 2.2 3 4.6 3 7.25s-1 5.05-3 7.25c-2-2.2-3-4.6-3-7.25s1-5.05 3-7.25z'/%3E%3C/svg%3E");
  --check:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m3.5 8.4 3 3 6-6.6'/%3E%3C/svg%3E");
  /* rhythm */
  --header-h:72px;--gutter:32px;--section-y:clamp(56px,7.5vw,104px);
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:16px;line-height:1.65;
}
:root[data-theme=dark]{
  color-scheme:dark;
  --bg:#080b19;--bg-accent:#0c1024;--surface:#121732;--surface-2:#1b2246;--surface-3:#283163;--field:#0b0f22;--button-bg:#1b2246;
  --text:#eef1fc;--text-2:#d0d6ee;--muted:#a3adca;
  --line:#2a325a;--line-strong:#4a5688;--control-line:#6272ae;--toggle-off:#4a5688;
  --brand:#a5b4fc;--brand-ink:#b7c2ff;--brand-soft:#1f2557;--brand-line:#3a4290;
  --primary:#5b5bf0;--primary-hover:#4f46e5;--on-primary:#fff;
  --caption:#ffd84d;--caption-ink:#33270a;
  --success:#4ade80;--success-soft:#0e2a1b;--success-line:#1f5a39;
  --warning:#fbbf24;--warning-soft:#2b2010;--warning-line:#6a4d14;
  --danger:#f98080;--danger-soft:#2e1519;--danger-line:#6e2a31;
  --focus-ring:#a5b4fc;
  --shadow-xs:0 1px 2px rgb(0 0 0/.4);
  --shadow-sm:0 1px 2px rgb(0 0 0/.35),0 8px 20px -8px rgb(0 0 0/.55);
  --shadow:0 1px 2px rgb(0 0 0/.35),0 18px 44px -14px rgb(0 0 0/.7);
  --shadow-lg:0 0 0 1px rgb(255 255 255/.04),0 36px 80px -24px rgb(0 0 0/.85);
  --backdrop:rgb(2 4 14/.72);
  --glow-a:rgb(99 102 241/.26);--glow-b:rgb(255 216 77/.05);
  --header-bg:rgb(8 11 25/.8);
  --toast-bg:#283163;--toast-text:#f4f6ff;--raised:#283163;
  --evidence-filter:invert(.92) hue-rotate(180deg) contrast(.94);
  --chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23a3adca' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4 6 4 4 4-4'/%3E%3C/svg%3E");
  --globe:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%23a3adca' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='10' cy='10' r='7.25'/%3E%3Cpath d='M2.75 10h14.5M10 2.75c2 2.2 3 4.6 3 7.25s-1 5.05-3 7.25c-2-2.2-3-4.6-3-7.25s1-5.05 3-7.25z'/%3E%3C/svg%3E");
}
/* Same dark values for visitors whose system is dark and who have not chosen a theme. */
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){
  color-scheme:dark;
  --bg:#080b19;--bg-accent:#0c1024;--surface:#121732;--surface-2:#1b2246;--surface-3:#283163;--field:#0b0f22;--button-bg:#1b2246;
  --text:#eef1fc;--text-2:#d0d6ee;--muted:#a3adca;
  --line:#2a325a;--line-strong:#4a5688;--control-line:#6272ae;--toggle-off:#4a5688;
  --brand:#a5b4fc;--brand-ink:#b7c2ff;--brand-soft:#1f2557;--brand-line:#3a4290;
  --primary:#5b5bf0;--primary-hover:#4f46e5;--on-primary:#fff;
  --caption:#ffd84d;--caption-ink:#33270a;
  --success:#4ade80;--success-soft:#0e2a1b;--success-line:#1f5a39;
  --warning:#fbbf24;--warning-soft:#2b2010;--warning-line:#6a4d14;
  --danger:#f98080;--danger-soft:#2e1519;--danger-line:#6e2a31;
  --focus-ring:#a5b4fc;
  --shadow-xs:0 1px 2px rgb(0 0 0/.4);
  --shadow-sm:0 1px 2px rgb(0 0 0/.35),0 8px 20px -8px rgb(0 0 0/.55);
  --shadow:0 1px 2px rgb(0 0 0/.35),0 18px 44px -14px rgb(0 0 0/.7);
  --shadow-lg:0 0 0 1px rgb(255 255 255/.04),0 36px 80px -24px rgb(0 0 0/.85);
  --backdrop:rgb(2 4 14/.72);
  --glow-a:rgb(99 102 241/.26);--glow-b:rgb(255 216 77/.05);
  --header-bg:rgb(8 11 25/.8);
  --toast-bg:#283163;--toast-text:#f4f6ff;--raised:#283163;
  --evidence-filter:invert(.92) hue-rotate(180deg) contrast(.94);
  --chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23a3adca' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4 6 4 4 4-4'/%3E%3C/svg%3E");
  --globe:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%23a3adca' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='10' cy='10' r='7.25'/%3E%3Cpath d='M2.75 10h14.5M10 2.75c2 2.2 3 4.6 3 7.25s-1 5.05-3 7.25c-2-2.2-3-4.6-3-7.25s1-5.05 3-7.25z'/%3E%3C/svg%3E");
}}

/* 03 Elements ------------------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-padding-top:calc(var(--header-h) + 20px);-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
main{flex:1 0 auto;min-width:0}
[hidden]{display:none!important}
img,svg{max-width:100%;vertical-align:middle}
::selection{background:var(--brand-line);color:var(--text)}
a{border-radius:3px;color:var(--brand-ink);text-decoration-line:underline;text-decoration-thickness:1px;text-underline-offset:.22em;text-decoration-color:color-mix(in srgb,currentColor 50%,transparent);transition:color .15s,text-decoration-color .15s}
a:hover{text-decoration-color:currentColor}
:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px}
hr{border:0;border-top:1px solid var(--line);margin-block:2rem}
code,kbd,pre{font-family:ui-monospace,SFMono-Regular,"Cascadia Mono",Consolas,"Liberation Mono",Menlo,monospace;font-size:.875em}
code{padding:.15em .4em;border-radius:var(--radius-xs);background:var(--surface-2);color:var(--text-2)}

/* Buttons */
button,input,select,textarea{font:inherit;color:inherit}
button,.button{display:inline-flex;gap:.5rem;justify-content:center;align-items:center;min-height:44px;padding:.6rem 1.15rem;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--button-bg);color:var(--text);font-size:.9375rem;font-weight:600;line-height:1.3;text-align:center;text-decoration:none;cursor:pointer;touch-action:manipulation;box-shadow:var(--shadow-xs);transition:background-color .15s,border-color .15s,color .15s,box-shadow .15s}
button:hover,.button:hover{border-color:var(--brand);background:var(--brand-soft);color:var(--brand-ink);text-decoration:none}
button:active,.button:active{box-shadow:none}
button.primary,.button.primary{border-color:var(--primary);background:var(--primary);color:var(--on-primary);box-shadow:0 1px 2px rgb(49 46 129/.3),inset 0 1px 0 rgb(255 255 255/.14)}
button.primary:hover,.button.primary:hover{border-color:var(--primary-hover);background:var(--primary-hover);color:var(--on-primary)}
button.subtle,.button.subtle{border-color:transparent;background:transparent;box-shadow:none;color:var(--muted);font-weight:550}
button.subtle:hover,.button.subtle:hover{border-color:transparent;background:var(--surface-2);color:var(--text)}
button.small,.button.small{min-height:36px;padding:.35rem .8rem;border-radius:var(--radius-xs);font-size:.8125rem}
button.danger,.button.danger{border-color:var(--danger-line);color:var(--danger)}
button.danger:hover,.button.danger:hover{border-color:var(--danger);background:var(--danger-soft);color:var(--danger)}
button.danger-solid,.button.danger-solid{border-color:#b4232c;background:#b4232c;color:#fff}
button.danger-solid:hover,.button.danger-solid:hover{border-color:#921d24;background:#921d24;color:#fff}
button.subtle.danger{border-color:transparent}
button.subtle.danger:hover{border-color:transparent;background:var(--danger-soft)}
/* Inactive controls are designed, not faded: they stay legible in both themes. */
button:disabled,button:disabled:hover,button[aria-disabled=true]{border-color:var(--line);background:var(--surface-2);color:var(--muted);box-shadow:none;cursor:not-allowed}
button.primary:disabled,button.primary:disabled:hover{border-color:transparent;background:var(--brand-soft);color:color-mix(in srgb,var(--brand-ink) 65%,var(--brand-soft))}
button.subtle:disabled,button.subtle:disabled:hover{border-color:transparent;background:transparent}
.danger{color:var(--danger)}
.button-link,.button-link.small{display:inline;min-height:0;padding:0;border:0;border-radius:var(--radius-xs);background:none;box-shadow:none;color:var(--brand-ink);font-size:inherit;font-weight:inherit;line-height:inherit;text-align:start;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.22em;text-decoration-color:color-mix(in srgb,currentColor 50%,transparent)}
.button-link:hover{background:none;color:var(--brand-ink);text-decoration:underline;text-decoration-color:currentColor}

/* Fields */
input,select,textarea{width:100%;min-height:44px;padding:.6rem .85rem;border:1px solid var(--control-line);border-radius:var(--radius-sm);background-color:var(--field);color:var(--text);font-size:1rem;font-weight:400;line-height:1.4;transition:border-color .15s,box-shadow .15s}
input:hover,select:hover,textarea:hover{border-color:var(--text-2)}
input:focus,select:focus,textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:-1px}
input::placeholder,textarea::placeholder{color:var(--muted);font-weight:400;opacity:.7}
input:disabled,select:disabled,textarea:disabled{border-color:var(--line);background-color:var(--surface-2);color:var(--muted);cursor:not-allowed}
input[readonly]{background-color:var(--surface-2)}
select{appearance:none;-webkit-appearance:none;padding-inline-end:2.4rem;background-image:var(--chevron);background-repeat:no-repeat;background-size:16px;background-position:right .8rem center;cursor:pointer;text-overflow:ellipsis}
[dir=rtl] select{background-position:left .8rem center}
select option{background:var(--surface);color:var(--text)}
textarea{min-height:112px;resize:vertical;line-height:1.6}
input[type=checkbox],input[type=radio]{appearance:none;-webkit-appearance:none;display:inline-grid;place-content:center;flex-shrink:0;width:18px;height:18px;min-height:0;margin:0;padding:0;border:1.5px solid var(--control-line);border-radius:5px;background:var(--field) center/13px no-repeat;box-shadow:none;cursor:pointer}
input[type=radio]{border-radius:50%}
input[type=checkbox]:hover,input[type=radio]:hover{border-color:var(--brand)}
input[type=checkbox]:checked{border-color:var(--primary);background-color:var(--primary);background-image:var(--check)}
input[type=radio]:checked{border-color:var(--primary);background:radial-gradient(circle,var(--primary) 0 4.5px,var(--field) 5px)}
input[type=checkbox]:disabled,input[type=radio]:disabled{border-color:var(--line);background-color:var(--surface-2);cursor:not-allowed}
input[type=checkbox]:checked:disabled{border-color:var(--brand-line);background-color:var(--brand-line)}
input[type=checkbox]:focus,input[type=radio]:focus{box-shadow:none}
input[type=checkbox]:focus-visible,input[type=radio]:focus-visible{outline-offset:2px}
input[type=range]{min-height:24px;padding:0;border:0;background:none;accent-color:var(--brand);box-shadow:none}
input[type=file]{padding:.45rem .6rem}
input[type=date]{height:44px}
input[type=number]{appearance:textfield;-moz-appearance:textfield}
input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
/* Addresses and codes are always left to right. */
[dir=rtl] input:is([type=email],[type=url],[type=tel],[type=number],[inputmode=numeric]){direction:ltr;text-align:right}
label{display:block;font-size:.875rem;font-weight:600;color:var(--text-2)}
label>input,label>select,label>textarea{margin-top:.45rem}
.check{display:flex;gap:.7rem;align-items:flex-start;font-size:.9375rem;font-weight:400;line-height:1.55;color:var(--text);cursor:pointer}
.check>input{margin-top:.2rem}
.check .small{font-size:.875rem}
.check.row{flex-wrap:nowrap;align-items:flex-start}
.service-consent{gap:.75rem;min-height:44px}
.service-consent-copy{min-width:0}
.service-consent-title{display:block;font-size:.9375rem;font-weight:500}
.service-consent-description{display:block;margin-top:.3rem;color:var(--muted);font-size:.8125rem;line-height:1.65}
progress{display:block;width:100%;height:8px;border:0;border-radius:99px;overflow:hidden;appearance:none;-webkit-appearance:none;background:var(--surface-3);accent-color:var(--brand)}
progress::-webkit-progress-bar{background:var(--surface-3)}
progress::-webkit-progress-value{border-radius:99px;background:var(--brand);transition:width .3s}
progress::-moz-progress-bar{border-radius:99px;background:var(--brand)}
progress:not([value]){background:linear-gradient(90deg,var(--surface-3) 25%,var(--brand) 50%,var(--surface-3) 75%);background-size:200% 100%;animation:progressing 1.4s linear infinite}
progress:not([value])::-webkit-progress-bar{background:transparent}
progress:not([value])::-moz-progress-bar{background:transparent}
@keyframes progressing{to{background-position:-200% 0}}

/* 04 Typography ----------------------------------------------------------- */
h1,h2,h3,h4,p{margin:0}
h1,h2,h3,h4{color:var(--text);text-wrap:balance;overflow-wrap:break-word}
h1{font-size:clamp(2.25rem,1.3rem + 3.3vw,4rem);font-weight:720;line-height:1.08;letter-spacing:-.04em}
h2{font-size:clamp(1.625rem,1.25rem + 1.3vw,2.25rem);font-weight:700;line-height:1.18;letter-spacing:-.03em}
h3{font-size:1.125rem;font-weight:650;line-height:1.4;letter-spacing:-.012em}
:is(h1,h2):not(:lang(zh),:lang(ja),:lang(ko),:lang(ar),:lang(th),:lang(hi),:lang(vi)){word-spacing:.04em}
h4{font-size:1rem;font-weight:650;line-height:1.45}
p{text-wrap:pretty}
ul,ol{margin:0;padding-inline-start:1.35rem}
li+li{margin-top:.4rem}
strong,b{font-weight:650}
small,.small{font-size:.8125rem;line-height:1.55}
.muted{color:var(--muted)}
.lead{font-size:1.125rem;line-height:1.7;color:var(--muted)}
.eyebrow{font-size:.8125rem;font-weight:650;line-height:1.4;letter-spacing:.1em;text-transform:uppercase;color:var(--brand-ink)}

/* Vertical rhythm: a heading always breathes before what follows.
   Containers that manage their own gap (.stack, .grid, .row) opt out. */
h1+*{margin-block-start:1.25rem}
h2+*{margin-block-start:1rem}
h3+*,h4+*{margin-block-start:.5rem}
p+p,p+ul,p+ol,ul+p,ol+p{margin-block-start:1rem}
.eyebrow+h1,.eyebrow+h2{margin-block-start:.9rem}
h2+:is(.grid,.link-grid,.format-grid,.faq-list,.table-wrap,.table-scroll,.card,form){margin-block-start:1.75rem}
.stack>*,.grid>*,.row>*{margin-block-start:0}

/* Font stacks per script. :where() keeps the specificity of a bare element
   selector, so components can still choose their own family. */
:where(html,[lang]):lang(zh-Hans){font-family:Inter,"PingFang SC","Microsoft YaHei","Noto Sans SC",system-ui,sans-serif}
:where(html,[lang]):lang(zh-Hant){font-family:Inter,"PingFang TC","Microsoft JhengHei","Noto Sans TC",system-ui,sans-serif}
:where(html,[lang]):lang(ja){font-family:Inter,"Hiragino Kaku Gothic ProN","Hiragino Sans","SL Yu Gothic","Yu Gothic Medium","Yu Gothic","Noto Sans JP",system-ui,sans-serif}
:where(html,[lang]):lang(ko){font-family:Inter,"Apple SD Gothic Neo","Malgun Gothic","Noto Sans KR",system-ui,sans-serif}
:where(html,[lang]):lang(ar){font-family:Inter,"Noto Sans Arabic","Segoe UI",Tahoma,system-ui,sans-serif}
:where(html,[lang]):lang(th){font-family:Inter,"Noto Sans Thai","Leelawadee UI",Thonburi,system-ui,sans-serif}
:where(html,[lang]):lang(hi){font-family:Inter,"Noto Sans Devanagari","Nirmala UI","Kohinoor Devanagari",system-ui,sans-serif}
/* Latin display tracking and tight leading do not suit these scripts. */
:is(h1,h2,h3,h4,.price,.total-price,.stat-value):is(:lang(zh),:lang(ja),:lang(ko)){letter-spacing:-.01em}
/* Korean keeps words whole. Chinese headings prefer breaks at punctuation on wide screens, where phrases fit;
   Japanese breaks by phrase where the engine can. Nothing may strand a glyph or a punctuation mark. */
:is(h1,h2,h3,summary,.footer li,.link-grid>a,.badge):is(:lang(zh),:lang(ja),:lang(ko)){overflow-wrap:anywhere}
:is(h1,h2,h3,summary,.footer li,.link-grid>a,.badge):lang(ko){word-break:keep-all}
@media(min-width:1025px){.footer li:lang(zh){word-break:keep-all}}
:is(details.faq>summary,.link-grid>a):is(:lang(zh),:lang(ja)){text-wrap:balance}
@supports (word-break:auto-phrase){:is(h1,h2,h3,details.faq>summary,.link-grid>a):lang(ja){word-break:auto-phrase}}
@media(min-width:1025px){:is(h1,h2,h3):lang(zh){word-break:keep-all}}
h1:is(:lang(zh),:lang(ja),:lang(ko)){line-height:1.24}
h2:is(:lang(zh),:lang(ja),:lang(ko)){line-height:1.32}
.eyebrow:is(:lang(zh),:lang(ja),:lang(ko)){letter-spacing:.06em}
:is(h1,h2,h3,h4,.eyebrow,.price,.total-price,.stat-value,th):is(:lang(ar),:lang(th),:lang(hi),:lang(vi)){letter-spacing:normal}
:lang(ja){line-break:strict}
:where(html,[lang]):lang(ko){word-break:keep-all;overflow-wrap:anywhere}
/* English fallback content and untranslated labels inside a right-to-left page keep their own reading order. */
[dir=rtl] [lang=en]:not([dir]){direction:ltr}
[dir=rtl] :is(.nav-drop a,.footer li,.link-grid>a,.format-tile strong,.breadcrumb>a,details.faq>summary,.document-toc a):not([lang=en] *){unicode-bidi:plaintext;text-align:right}
time{unicode-bidi:isolate}
/* Stand-alone amounts keep their own order inside a right-to-left page. */
[dir=rtl] :is(.job-panel .total-price,.tier-row button,.balance-badge,.stat-value){direction:ltr;unicode-bidi:isolate}
[dir=rtl] :is(.job-panel .total-price,.stat-value){text-align:right}
h1:is(:lang(ar),:lang(th),:lang(hi)){line-height:1.35}
h2:is(:lang(ar),:lang(th),:lang(hi)){line-height:1.4}
h1:lang(vi){line-height:1.22}
h2:lang(vi){line-height:1.3}

/* 05 Layout --------------------------------------------------------------- */
.container{width:min(1200px,100% - var(--gutter)*2);margin-inline:auto}
.stack{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem;align-content:start}
.stack>*{min-width:0}
.stack>p:empty{display:none}
/* Buttons and pills keep their own width in a stack; forms and dialogs opt back in. */
.stack>button,.stack>.button,.stack>.badge{justify-self:start}
form.stack>button,dialog .stack>button,dialog .stack>.button{justify-self:stretch}
form.stack>button:is(.primary,.danger-solid){min-height:48px}
.row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}
.between{justify-content:space-between}
.grow{flex:1;min-width:0}
.full-width{width:100%}
.grid{display:grid;gap:1.5rem}
.grid>*{min-width:0}
.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.section{padding-block:var(--section-y)}
.section .section{padding-block:calc(var(--section-y)*.55) 0}
.band{border-block:1px solid var(--line);background:var(--bg-accent)}
main>.band:last-child{border-bottom:0}
.measure{max-width:780px}
.section-head{max-width:720px;margin-bottom:clamp(2rem,4vw,3rem)}
.section-head .lead{margin-top:1rem}
.split{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(2rem,6vw,5rem);align-items:start}
.split>*{min-width:0;margin-block-start:0}
.split-head{position:sticky;top:calc(var(--header-h) + 32px)}
.split-head>p:not(.lead){color:var(--muted)}
.break-all{overflow-wrap:anywhere}
.pre-wrap{white-space:pre-wrap}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.honeypot{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);opacity:0;pointer-events:none}
.skip{position:fixed;top:-80px;inset-inline-start:16px;z-index:100;padding:.6rem 1rem;border-radius:var(--radius-sm);background:var(--surface);box-shadow:var(--shadow);font-weight:600;text-decoration:none}
.skip:focus{top:12px}

/* 06 Components ----------------------------------------------------------- */
.card{padding:1.75rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm)}
.card h2{font-size:1.3125rem;line-height:1.35;letter-spacing:-.018em}
.card h3{font-size:1.0625rem}
.card p{color:var(--text-2)}
.card .muted{color:var(--muted)}
.card.row{padding:1.1rem 1.35rem;flex-wrap:nowrap;gap:1rem}
.card.row>.grow>*{margin-block-start:0}
.card.row>.grow strong{display:block;overflow-wrap:anywhere}
.card.row>.grow p{margin-top:.15rem;overflow-wrap:anywhere}
.card.row>button,.card.row>.button{flex-shrink:0}
.card .row>a:not(.button){font-size:.875rem}
.accent-card{border-color:var(--brand)}
.gate-card{max-width:520px;gap:1.25rem}

.badge{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .7rem;border-radius:99px;background:var(--brand-soft);color:var(--brand-ink);font-size:.75rem;font-weight:600;line-height:1.4;white-space:nowrap;text-decoration:none}
a.badge:hover{background:var(--brand-line);text-decoration:none}
.caption-badge{background:var(--caption);color:var(--caption-ink)}
/* State hooks set by the scripts (job and payment states). */
.badge:is([data-state=READY],[data-state=PREVIEW_READY],[data-state=SUCCEEDED]){background:var(--success-soft);color:var(--success)}
.badge:is([data-state=FAILED],[data-state=CANCELLED],[data-state=EXPIRED],[data-state=DELETED]){background:var(--danger-soft);color:var(--danger)}
.badge:is([data-state=AWAITING_FUNDS],[data-state=MANUAL_REVIEW],[data-state=PROCESSING],[data-state=OPEN]){background:var(--warning-soft);color:var(--warning)}
.badge[data-state]{max-width:100%;white-space:normal}

.notice{padding:.85rem 1.1rem;border:1px solid var(--line);border-inline-start:3px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text-2);font-size:.875rem;line-height:1.6}
.notice p+p{margin-block-start:.4rem}
.notice.stack,.small.stack{gap:.3rem}
.small.stack:empty{display:none}
.notice.warning{border-color:var(--warning-line);border-inline-start-color:var(--warning);background:var(--warning-soft);color:var(--warning)}
.notice.error{border-color:var(--danger-line);border-inline-start-color:var(--danger);background:var(--danger-soft);color:var(--danger)}
.notice.success{border-color:var(--success-line);border-inline-start-color:var(--success);background:var(--success-soft);color:var(--success)}
.notice :is(p,a){color:inherit}
[role=status]:empty,[role=alert]:empty{display:none}

dialog{--shade:rgb(19 24 50/.2);width:min(480px,100% - 32px);max-height:90vh;max-height:90dvh;padding:2rem;border:1px solid var(--line);border-radius:var(--radius-lg);background:linear-gradient(var(--surface) 35%,transparent) top/100% 48px no-repeat local,linear-gradient(transparent,var(--surface) 65%) bottom/100% 48px no-repeat local,radial-gradient(farthest-side at 50% 0,var(--shade),transparent) top/100% 14px no-repeat scroll,radial-gradient(farthest-side at 50% 100%,var(--shade),transparent) bottom/100% 14px no-repeat scroll,var(--surface);color:var(--text);box-shadow:var(--shadow-lg);overflow:auto}
:root[data-theme=dark] dialog{--shade:rgb(0 0 0/.6)}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]) dialog{--shade:rgb(0 0 0/.6)}}
dialog::backdrop{background:var(--backdrop);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
dialog h2{padding-inline-end:2.25rem;font-size:1.5rem;line-height:1.3;letter-spacing:-.02em}
dialog h2+*{margin-block-start:1.25rem}
dialog form{margin-top:1.5rem}
dialog h2+form,dialog .stack form{margin-top:1.25rem}
dialog>.dialog-close{position:sticky;float:inline-end;top:-1rem;z-index:1;width:36px;min-height:36px;margin-block:-1rem 0;margin-inline:0 -1rem;padding:0;border:0;border-radius:50%;background:var(--surface);box-shadow:none;color:var(--muted);font-size:1.4rem;font-weight:400;line-height:1}
dialog>.dialog-close:hover{background:var(--surface-2);color:var(--text)}
dialog .stack>.row:last-child{justify-content:flex-end;margin-top:.5rem}
dialog .stack>p:first-child{overflow-wrap:anywhere}
.dialog-separator{display:flex;align-items:center;gap:.9rem;margin:.25rem 0;color:var(--muted);font-size:.8125rem;text-align:center}
.dialog-separator::before,.dialog-separator::after{content:'';flex:1;height:1px;background:var(--line)}
.verification-inline{min-width:0;width:100%;font-size:.875rem;line-height:1.5}
.verification-inline--preview{color:var(--text-2)}
/* Keep automatic checks mounted for the provider without a card or grid gap. */
.verification-inline--preview:is([data-phase=checking],[data-phase=confirming],[data-phase=success]){position:absolute;inset-inline:0;height:0;overflow:hidden;pointer-events:none}
.verification-summary{display:flex;align-items:center;gap:.65rem;min-width:0}
.verification-status{display:flex;flex:1;align-items:center;gap:.65rem;min-width:0;font-weight:500}
.verification-message{min-width:0;overflow-wrap:anywhere}
.verification-icon{position:relative;display:grid;place-items:center;flex:none;width:20px;height:20px;border:2px solid currentColor;border-radius:50%;font-size:.8125rem;font-weight:700;line-height:1}
.verification-inline:is([data-phase=checking],[data-phase=confirming]) .verification-icon{border-color:var(--brand-line);border-block-start-color:var(--brand-ink);animation:verification-spin .8s linear infinite}
.verification-inline[data-phase=success] .verification-icon::after{content:'';width:14px;height:14px;background:currentColor;mask:var(--check) center/contain no-repeat}
.verification-inline--preview[data-phase=error]{color:var(--danger)}
.verification-inline--preview[data-phase=error] .verification-icon{display:none}
.verification-inline--preview[data-phase=interactive]{padding-block-start:.25rem}
.verification-inline[data-phase=interactive] .verification-icon{display:none}
.verification-inline .verification-cancel{flex:none;min-height:32px;max-width:40%;padding:.25rem .35rem;border:0;background:transparent;box-shadow:none;color:inherit;font-size:.8125rem;font-weight:500;overflow-wrap:anywhere;text-decoration:underline;text-underline-offset:3px}
.verification-inline .verification-cancel:hover:not(:disabled){background:var(--surface-2)}
.verification-widget{display:grid;justify-items:center;min-width:0;width:100%}
.verification-inline[data-phase=interactive] .verification-widget{margin-block-start:.6rem}
.verification-inline--email{color:var(--text-2);margin-block-start:.75rem}
.verification-inline--email:is([data-phase=checking],[data-phase=confirming],[data-phase=success]){margin:0}
.verification-inline--email[data-phase=error]{color:var(--danger)}
.email-code-control button.is-sending::before{content:'';flex:none;width:14px;height:14px;border:2px solid currentColor;border-inline-end-color:transparent;border-radius:50%;animation:verification-spin .8s linear infinite}
@keyframes verification-spin{to{transform:rotate(360deg)}}
@media(max-width:380px){.verification-summary{gap:.4rem}}
@media(prefers-reduced-motion:reduce){.verification-inline .verification-icon,.email-code-control button.is-sending::before{animation:none!important}}
#google-signin{position:relative;display:flex;align-items:center;justify-content:center;height:44px;min-width:0}
#google-fallback{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;max-width:370px;height:40px;min-height:40px;padding:0 12px;border:1px solid #747775;border-radius:4px;box-shadow:none;background:#fff;color:#1f1f1f;font-family:Roboto,Arial,sans-serif;font-size:14px;font-weight:500;line-height:20px;letter-spacing:.25px}
#google-fallback img{display:block;flex:none;width:18px;height:18px}
#google-fallback span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#google-fallback:hover:not(:disabled){background:#f8faff;border-color:#747775}
:root[data-theme=dark] #google-fallback{background:#131314;color:#e3e3e3;border-color:#8e918f}
:root[data-theme=dark] #google-fallback:hover:not(:disabled){background:#252529}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]) #google-fallback{background:#131314;color:#e3e3e3;border-color:#8e918f}:root:not([data-theme=light]) #google-fallback:hover:not(:disabled){background:#252529}}
#google-button{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;min-height:44px;opacity:0;pointer-events:none}
#google-signin:not(.is-ready) #google-button{overflow:hidden}
#google-button>div{width:100%;max-width:370px}
#google-signin.is-ready #google-button{opacity:1;pointer-events:auto}
#google-signin.is-ready #google-fallback{visibility:hidden}
#login-message{color:var(--muted)}
.email-code-control{display:flex;align-items:stretch;gap:.25rem;margin-block-start:.45rem;padding:3px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--field);transition:border-color .15s,box-shadow .15s}
.email-code-control:hover{border-color:var(--control-line)}
.email-code-control:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}
.email-code-control input,#login-form .email-code-control input{flex:1 1 5.5rem;min-width:0;width:0;min-height:40px;margin:0;padding:.55rem .6rem;border:0;background:transparent;box-shadow:none;letter-spacing:.08em}
.email-code-control input:focus-visible{outline:0}
.email-code-control button{flex:0 1 auto;max-width:58%;min-height:40px;padding:.4rem .65rem;border:0;border-inline-start:1px solid var(--line);border-radius:0;background:transparent;box-shadow:none;color:var(--brand-ink);font-size:.8125rem;line-height:1.4;overflow-wrap:anywhere}
.email-code-control button:hover:not(:disabled){background:var(--brand-soft)}
.email-code-control button:disabled{border-color:var(--line);background:transparent;color:var(--muted)}
.email-code-hint{margin-block-start:.6rem}
.auth-methods{display:flex;flex-wrap:wrap;gap:.4rem;padding:.35rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2)}
.auth-methods button{flex:1 1 auto;min-height:38px;padding:.4rem .55rem;border:0;background:transparent;box-shadow:none;color:var(--muted);font-size:.8125rem;white-space:normal}
.auth-methods button[aria-pressed=true]{background:var(--surface);box-shadow:var(--shadow-xs);color:var(--brand-ink)}
.auth-link{justify-self:center;min-height:36px;padding:.25rem .5rem;border:0;background:transparent;box-shadow:none;color:var(--brand-ink);font-size:.8125rem}
#login-dialog .auth-heading{gap:.65rem}
#login-dialog .auth-heading .badge{margin-block-end:.35rem}
#login-methods{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.25rem;padding:.25rem;border:0;border-radius:var(--radius-md)}
#login-methods button{min-width:0;min-height:44px;padding:.6rem .5rem;border-radius:var(--radius-sm);line-height:1.4;overflow-wrap:anywhere}
#login-methods button:hover:not(:disabled){color:var(--brand-ink)}
#login-methods button[aria-pressed=true]{box-shadow:var(--shadow-sm)}
#login-form input{min-height:46px;border-color:var(--line-strong)}
#login-form input:hover{border-color:var(--control-line)}
#login-form input:focus{border-color:var(--brand)}
#login-form input:disabled{border-color:var(--line)}
.auth-field-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;column-gap:.75rem;min-height:23px;margin-block-end:.45rem}
.auth-field-heading .auth-link{min-height:32px;margin-block:-4.5px;padding:.25rem 0;line-height:1.4;text-align:end}
#login-dialog .auth-link:hover:not(:disabled){background:transparent;text-decoration:underline;text-underline-offset:.2em}
.auth-footer{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:0 .35rem;margin-block-start:1.5rem;padding-block-start:1rem;border-top:1px solid var(--line);color:var(--muted);font-size:.8125rem;text-align:center}
.auth-footer .auth-link{min-height:44px;padding:.4rem .25rem}
#login-form>p,#account-password-dialog form>p{margin-block:0}

.toast{position:fixed;bottom:24px;inset-inline-end:24px;z-index:1000;max-width:min(430px,100% - 48px);padding:.9rem 1.15rem;border:1px solid rgb(255 255 255/.1);border-radius:var(--radius-md);background:var(--toast-bg);color:var(--toast-text);box-shadow:var(--shadow-lg);font-size:.9rem;font-weight:500;line-height:1.5}

.table-wrap,.table-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-xs)}
table{width:100%;border-collapse:collapse;font-size:.875rem;line-height:1.55;font-variant-numeric:tabular-nums}
/* Data tables take the width their content needs and scroll sideways inside the frame. */
.table-wrap table{width:max-content;min-width:100%}
th,td{padding:.8rem 1rem;border-bottom:1px solid var(--line);text-align:start;vertical-align:middle}
th{background:var(--surface-2);color:var(--text-2);font-size:.8125rem;font-weight:650;white-space:nowrap}
tbody tr:last-child td{border-bottom:0}
.table-wrap td:first-child,.table-wrap td:last-child{white-space:nowrap}
.table-wrap td:not(:first-child,:last-child){max-width:16rem;overflow-wrap:anywhere}
@media(min-width:1280px){
  .table-wrap table{width:100%}
  .table-wrap td:not(:first-child,:last-child){overflow-wrap:break-word}
}
td>span.small{display:block}
td .stack{gap:.5rem;justify-items:start}
td>.stack{grid-template-columns:minmax(min-content,1fr);max-width:21rem;white-space:normal}
td button,td .button{white-space:nowrap}

.faq-list{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm);overflow:hidden}
details.faq{border-bottom:1px solid var(--line)}
.faq-list>details.faq:last-child{border-bottom:0}
details.faq>summary{display:flex;align-items:center;justify-content:space-between;gap:1.25rem;padding:1.15rem 1.5rem;font-weight:600;line-height:1.5;list-style:none;cursor:pointer;transition:color .15s,background-color .15s}
details.faq>summary::-webkit-details-marker{display:none}
details.faq>summary::after{content:'';flex:none;width:24px;height:24px;border-radius:50%;background:linear-gradient(currentColor,currentColor) center/10px 1.6px no-repeat,linear-gradient(currentColor,currentColor) center/1.6px 10px no-repeat,var(--surface-2);color:var(--muted);transition:transform .2s}
details.faq>summary:hover{color:var(--brand-ink)}
details.faq>summary:focus-visible{outline-offset:-3px;border-radius:var(--radius-sm)}
details.faq[open]>summary::after{background:linear-gradient(currentColor,currentColor) center/10px 1.6px no-repeat,var(--brand-soft);color:var(--brand-ink);transform:rotate(180deg)}
details.faq>p{max-width:72ch;margin:0;padding:0 1.5rem 1.35rem;color:var(--muted);line-height:1.75}
.faq-page>.page-intro{max-width:850px}
.faq-layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:clamp(2rem,5vw,4.5rem);align-items:start}
.faq-topics{position:sticky;top:110px}
.faq-topics>h2{font-size:.8125rem;font-weight:650;line-height:1.5;letter-spacing:.04em;color:var(--muted)}
.faq-topics>ul{list-style:none;padding:0;margin:1rem 0 0;display:grid;gap:.35rem}
.faq-topics li+li{margin:0}
.faq-topics a{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem .9rem;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--text-2);font-size:.9375rem;font-weight:550;line-height:1.5;text-decoration:none}
.faq-topics a>span:first-child{min-width:0;overflow-wrap:anywhere;hyphens:auto}
.faq-topics a:hover,.faq-topics a:focus-visible{background:var(--surface);border-color:var(--line);color:var(--brand-ink)}
.faq-topic-count{display:grid;place-items:center;flex:none;min-width:1.65rem;height:1.65rem;border-radius:6px;background:var(--surface-2);font-size:.75rem;font-variant-numeric:tabular-nums;color:var(--muted)}
.faq-groups{min-width:0;display:grid;gap:3rem}
.faq-group{scroll-margin-top:110px;min-width:0}
.faq-group-heading{margin-bottom:1.25rem}
.faq-group-heading>h2{font-size:clamp(1.375rem,1.1rem + .7vw,1.75rem);line-height:1.35}
.faq-group-heading>p{margin-top:.5rem;color:var(--muted);line-height:1.65}
.faq-support{padding:clamp(1.5rem,3vw,2rem);border:1px solid var(--brand-line);border-radius:var(--radius);background:var(--brand-soft)}
.faq-support>h2{font-size:1.5rem;line-height:1.35}
.faq-support>p{color:var(--muted);line-height:1.7}
@media(max-width:900px){
  .faq-layout{grid-template-columns:minmax(0,1fr);gap:2.5rem}
  .faq-topics{position:static}
  .faq-topics>ul{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}
  .faq-topics a{height:100%;border-color:var(--line);background:var(--surface);padding:.7rem .8rem;gap:.6rem}
  .faq-group{scroll-margin-top:100px}
}
@media(max-width:480px){
  .faq-topics a{font-size:.8125rem}
  .faq-topic-count{min-width:1.4rem;height:1.4rem}
  .faq-groups{gap:2.25rem}
}

.disclosure>summary{display:inline-flex;align-items:center;gap:.5rem;padding:.35rem 0;border-radius:var(--radius-xs);color:var(--text-2);font-size:.9375rem;font-weight:600;list-style:none;cursor:pointer}
.disclosure>summary::-webkit-details-marker{display:none}
.disclosure>summary::before{content:'';width:16px;height:16px;background:var(--chevron) center/16px no-repeat;transform:rotate(-90deg);transition:transform .15s}
[dir=rtl] .disclosure>summary::before{transform:rotate(90deg)}
.disclosure[open]>summary::before{transform:none}
.disclosure>summary:hover{color:var(--brand-ink)}
.disclosure>summary+*{margin-top:1rem}

.link-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(max(17rem,(100% - 1.8rem)/3),1fr));gap:.9rem}
.link-grid>a{display:flex;align-items:center;justify-content:space-between;gap:.9rem;padding:1rem 1.15rem;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);color:var(--text);font-size:.9375rem;font-weight:550;line-height:1.45;text-decoration:none;transition:border-color .15s,box-shadow .15s,color .15s}
.link-grid>a::after{content:'→';flex:none;color:var(--muted);transition:transform .15s,color .15s}
[dir=rtl] .link-grid>a:not([lang=en] *)::after{content:'←'}
.link-grid>a:hover{border-color:var(--brand);box-shadow:var(--shadow-sm);color:var(--brand-ink)}
.link-grid>a:hover::after{color:var(--brand);transform:translateX(3px)}
[dir=rtl] .link-grid>a:not([lang=en] *):hover::after{transform:translateX(-3px)}

.empty-state{display:grid;justify-items:center;align-content:center;gap:.75rem;min-height:180px;padding:2.5rem 1.25rem;border:1px dashed var(--line-strong);border-radius:var(--radius);color:var(--muted);text-align:center}
.empty-state p{max-width:30rem}

.price{font-size:3.25rem;font-weight:720;line-height:1.05;letter-spacing:-.045em;font-variant-numeric:tabular-nums}
.price small{font-size:.9375rem;font-weight:500;letter-spacing:0;color:var(--muted)}
.total-price{font-weight:720;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
dialog .total-price{padding:.85rem 1rem;border-radius:var(--radius-sm);background:var(--surface-2);font-size:1.125rem;letter-spacing:-.015em}

.device-code{padding:1rem;border-radius:var(--radius-md);background:var(--brand-soft);color:var(--brand-ink);font-family:ui-monospace,SFMono-Regular,"Cascadia Mono",Consolas,Menlo,monospace;font-size:2.25rem;font-weight:700;letter-spacing:.12em;line-height:1.3;text-align:center}
#device-code{font-family:ui-monospace,SFMono-Regular,"Cascadia Mono",Consolas,Menlo,monospace;font-size:1.25rem;letter-spacing:.14em;text-align:center;text-transform:uppercase}
#device-inspect{justify-self:start}
#device-details{display:grid;gap:.5rem;padding:1rem;border-radius:var(--radius-md);background:var(--surface-2);color:var(--text-2)}
#device-details>*{margin-block-start:0}
#payment-status{display:grid;grid-template-columns:auto minmax(0,1fr);gap:1rem .75rem;justify-items:start;padding:1.75rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm)}
#payment-status:empty{display:none}
#payment-status>*{margin-block-start:0}
#payment-status>.stack{display:contents}
#payment-status>*,#payment-status>.stack>*{grid-column:1/-1}
#payment-status>.stack>a.button{grid-column:1}
#payment-status>.stack:has(>a.button)+button{grid-column:2}
#payment-status>p:first-child{font-size:1.125rem;font-weight:650}
#payment-status>.stack>p:first-child{color:var(--text);font-size:1.75rem;font-weight:720;line-height:1.2;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
#payment-message.payment-success{display:flex;align-items:center;gap:.6rem}
#payment-message.payment-success::before{content:'✓';display:inline-grid;place-items:center;flex:none;width:1.1rem;height:1.1rem;border:1.5px solid var(--success);border-radius:50%;color:var(--success);font-size:.75rem;font-weight:650;line-height:1}
#payment-status.payment-complete{display:block;padding:0;overflow:hidden}
#payment-status.payment-complete>.stack{display:block;width:100%}
.payment-summary{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem;padding:1.75rem 1.75rem 0}
.payment-summary>*{margin:0}
.payment-amount{color:var(--text);font-size:2rem;font-weight:720;line-height:1.2;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.payment-balance{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .65rem;border-radius:2rem;background:var(--success-soft);color:var(--success);font-size:.75rem;font-weight:550}
.payment-copy{padding-inline:1.75rem;margin-top:.75rem;color:var(--muted)}
.payment-actions{display:grid;gap:1rem;padding:1.75rem}
.payment-workspace{justify-self:start;gap:1rem;min-height:46px}
.payment-countdown{display:flex;align-items:center;gap:.5rem;margin:0;color:var(--muted);font-size:.8125rem;font-variant-numeric:tabular-nums}
.payment-countdown::before{content:'';flex:none;width:.85rem;height:.85rem;border:1.3px solid currentColor;border-radius:50%;background:linear-gradient(currentColor,currentColor) 50% 28%/1px 35% no-repeat,linear-gradient(currentColor,currentColor) 68% 60%/28% 1px no-repeat}
.payment-progress{display:block;appearance:none;width:100%;height:3px;margin:0;border:0;border-radius:3px;overflow:hidden;background:var(--brand-soft);color:var(--brand)}
.payment-progress::-webkit-progress-bar{background:var(--brand-soft);border-radius:3px}
.payment-progress::-webkit-progress-value{background:var(--brand);border-radius:3px}
.payment-progress::-moz-progress-bar{background:var(--brand);border-radius:3px}
.payment-agreements{padding:1.2rem 1.75rem;border-top:1px solid var(--line)}
.payment-agreements:has(>.small:empty){display:none}
.payment-agreements>.small{margin:0;font-size:.75rem;color:var(--muted);overflow-wrap:anywhere}
[dir=rtl] .payment-workspace>span[aria-hidden]{display:inline-block;transform:scaleX(-1)}
.danger-zone{justify-items:start;margin-top:1rem;padding:1.75rem;border:1px solid var(--danger-line);border-radius:var(--radius);background:var(--danger-soft)}
.danger-zone h3{color:var(--danger)}
.danger-zone button.danger:not(:disabled){border-color:var(--danger);background:transparent;box-shadow:none}
.danger-zone button.danger:not(:disabled):hover{background:color-mix(in srgb,var(--danger) 16%,transparent)}

.site-banner{padding:.5rem 1rem;background:var(--brand-soft);color:var(--brand-ink);font-size:.8125rem;font-weight:500;text-align:center}
.site-banner.staging{background:var(--caption);color:var(--caption-ink)}

/* 07 Header --------------------------------------------------------------- */
.header{position:sticky;top:0;z-index:30;border-bottom:1px solid var(--line);background:var(--bg)}
@supports ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.header{background:var(--header-bg);-webkit-backdrop-filter:saturate(1.6) blur(14px);backdrop-filter:saturate(1.6) blur(14px)}}
.header-inner{display:flex;align-items:center;gap:.75rem;min-height:var(--header-h)}
.logo{display:inline-flex;align-items:center;gap:.6rem;flex-shrink:0;border-radius:var(--radius-sm);color:var(--text);font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;font-size:1.3125rem;font-weight:760;letter-spacing:-.04em;white-space:nowrap;text-decoration:none}
.logo img{width:34px;height:34px;border-radius:9px;box-shadow:0 2px 8px rgb(49 46 129/.28)}
.logo:hover{text-decoration:none}
.desktop-nav{display:flex;align-items:center;gap:.1rem;margin-inline-start:clamp(.75rem,1.5vw,1.5rem);font-size:.9rem;font-weight:500}
.desktop-nav>a,.nav-drop>summary{display:flex;align-items:center;gap:.5rem;min-height:38px;padding:0 .75rem;border-radius:var(--radius-xs);color:var(--text-2);text-decoration:none;white-space:nowrap;cursor:pointer;list-style:none;transition:background-color .15s,color .15s}
.desktop-nav>a:hover,.nav-drop>summary:hover,.nav-drop[open]>summary{background:var(--surface-2);color:var(--text)}
.desktop-nav>a[aria-current=page]{color:var(--brand-ink)}
.nav-drop{position:relative}
.nav-drop>summary::-webkit-details-marker,.mobile-nav>summary::-webkit-details-marker{display:none}
.nav-chevron{display:block;flex-shrink:0;color:var(--muted);transition:transform .15s ease}
.nav-drop[open]>summary .nav-chevron{transform:rotate(180deg)}
.nav-drop[open]>div{position:absolute;top:calc(100% + 10px);inset-inline-start:-8px;display:grid;gap:2px;width:max-content;min-width:240px;max-width:min(440px,100vw - 48px);max-height:calc(100vh - var(--header-h) - 32px);max-height:calc(100dvh - var(--header-h) - 32px);padding:8px;overflow-y:auto;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow)}
.nav-drop a{padding:.55rem .75rem;border-radius:var(--radius-xs);color:var(--text-2);font-size:.875rem;font-weight:500;line-height:1.45;text-decoration:none}
.nav-drop a:hover{background:var(--brand-soft);color:var(--brand-ink)}
.header-actions{display:flex;align-items:center;gap:.5rem;margin-inline-start:auto}
.header-actions>*{flex-shrink:0}
.nav-drop.locale-menu>.locale-select{max-width:184px;min-height:38px;padding-inline:2.1rem 1.9rem;border:1px solid transparent;border-radius:var(--radius-sm);background-image:var(--globe),var(--chevron);background-repeat:no-repeat;background-size:17px,14px;background-position:left .6rem center,right .55rem center;color:var(--text-2);font-size:.875rem;font-weight:500}
.locale-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.locale-menu[open]>.locale-select{border-color:var(--brand);background-color:var(--brand-soft);color:var(--brand-ink)}
.locale-menu[open]>div{inset-inline-start:0;min-width:190px;max-height:min(440px,calc(100dvh - var(--header-h) - 32px));overscroll-behavior:contain}
.locale-menu a{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:40px;text-align:start}
.locale-menu a[aria-current=true]{background:var(--brand-soft);color:var(--brand-ink)}
.locale-menu a[aria-current=true]::after{content:'';flex-shrink:0;width:16px;height:16px;background:currentColor;mask:var(--check) center/contain no-repeat}
[dir=rtl] .locale-menu>.locale-select{background-position:right .6rem center,left .55rem center}
.theme-toggle{width:38px;min-height:38px;padding:0;border-color:transparent;border-radius:50%;background:transparent;box-shadow:none;color:var(--text-2)}
.theme-toggle:hover{border-color:transparent;background:var(--surface-2);color:var(--text)}
.theme-toggle svg{width:18px;height:18px}
.theme-toggle .icon-sun{display:none}
:root[data-theme=dark] .theme-toggle .icon-sun{display:block}
:root[data-theme=dark] .theme-toggle .icon-moon{display:none}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .theme-toggle .icon-sun{display:block}:root:not([data-theme=light]) .theme-toggle .icon-moon{display:none}}
.header-actions .auth-button{min-height:40px;padding:.4rem 1.05rem;border-radius:var(--radius-sm);font-size:.875rem;white-space:nowrap}
.account-menu[open]>div{inset-inline-start:auto;inset-inline-end:0;width:304px;min-width:0;max-width:calc(100vw - var(--gutter)*2)}
.account-menu .account-icon{flex-shrink:0}
.account-menu-email{margin:0;padding:.65rem .75rem;border-bottom:1px solid var(--line);overflow-wrap:anywhere;color:var(--muted);font-size:.8125rem;line-height:1.5}
.account-menu-divider{width:100%;margin:.35rem 0}
.account-menu-settings{display:grid;gap:2px;min-width:0;padding-block:.35rem;border-block:1px solid var(--line)}
.account-menu a,.account-menu-action,.account-signout{display:flex;align-items:center;gap:.6rem;min-height:42px}
.account-menu-action,.account-signout{justify-content:flex-start;width:100%;padding:.55rem .75rem;border:0;border-radius:var(--radius-xs);background:transparent;box-shadow:none;color:var(--text-2);font-size:.875rem;font-weight:500;line-height:1.45;text-align:start;white-space:normal;overflow-wrap:anywhere}
.account-menu-action:hover:not(:disabled),.account-signout:hover:not(:disabled){background:var(--surface-2);box-shadow:none;color:var(--text)}
.account-menu-notify{align-items:flex-start;margin:0;padding:.65rem .75rem;border-radius:var(--radius-xs);font-size:.8125rem;font-weight:400;line-height:1.5;cursor:pointer}
.account-menu-notify:hover{background:var(--surface-2)}
.account-menu-notify input{margin-top:.1rem}
.account-menu-notify span{min-width:0;overflow-wrap:anywhere}
.account-menu-action.danger{color:var(--danger)}
.account-menu-action.danger:hover:not(:disabled){background:var(--danger-soft);color:var(--danger)}
.account-menu a svg,.account-signout svg{flex-shrink:0}
[dir=rtl] .account-signout svg{transform:scaleX(-1)}
.balance-badge{padding:.4rem .8rem;font-size:.8125rem;font-variant-numeric:tabular-nums}
.mobile-nav{display:none}

/* 08 Footer --------------------------------------------------------------- */
.footer{padding:clamp(48px,6vw,72px) 0 28px;border-top:1px solid var(--line);background:var(--surface)}
.footer-top{display:flex;align-items:center;justify-content:space-between;gap:1rem 2rem;flex-wrap:wrap;margin-bottom:2.75rem}
.footer-top p{font-size:.9375rem}
.footer-columns{display:grid;grid-template-columns:minmax(10rem,.8fr) 1.25fr 1.25fr 1.25fr minmax(10rem,.8fr);gap:2.5rem 2rem}
.footer-columns>div{min-width:0}
.footer h3{margin-bottom:1rem;color:var(--text);font-size:.8125rem;font-weight:650;letter-spacing:.02em}
.footer ul{display:grid;gap:.6rem;margin:0;padding:0;list-style:none;font-size:.8438rem;line-height:1.5}
.footer ul+ul{margin-top:.6rem}
.footer li{text-wrap:balance;overflow-wrap:anywhere}
.footer li:not(:lang(zh),:lang(ja),:lang(ko)){overflow-wrap:break-word;hyphens:auto}
.footer li a{padding-block:.4rem}
.footer li .button-link{padding-block:.4rem;margin-block:-.4rem}
.footer li+li{margin-top:0}
.footer a,.footer .button-link{color:var(--muted);text-decoration:none}
.footer a:hover,.footer .button-link:hover{color:var(--brand-ink);text-decoration:none}
.footer .logo,.footer .logo:hover{color:var(--text)}
.footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:.5rem 1.5rem;flex-wrap:wrap;margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--line);color:var(--muted);font-size:.8125rem}

@media(min-width:1280px){
  .footer-columns{grid-template-columns:1.25fr 1.2fr 1.2fr 1.2fr .8fr}
  .footer-columns>div:first-child ul{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:1.25rem}
}

/* 09 Page parts ----------------------------------------------------------- */
.breadcrumb{position:relative;z-index:1;display:flex;align-items:center;gap:.55rem;padding-top:1.5rem;color:var(--muted);font-size:.8125rem;line-height:1.5}
.breadcrumb a{margin-block:-.8rem;padding-block:.8rem;color:inherit;text-decoration:none}
.breadcrumb a:hover{color:var(--brand-ink)}
.breadcrumb>span:last-child{min-width:0;overflow:hidden;color:var(--text-2);font-weight:500;white-space:nowrap;text-overflow:ellipsis}
.breadcrumb>:not(:last-child){flex:none}
.breadcrumb+.section,.breadcrumb+.document{padding-top:clamp(36px,4.5vw,56px)}
.section+.document{padding-top:0}
main>.container>.notice:first-child{margin-top:1.25rem}

.page-head,.page-intro{max-width:780px;margin-bottom:clamp(2rem,4vw,3rem)}
:is(.page-head,.page-intro,.narrow,.document,.split-head) h1{font-size:clamp(2rem,1.4rem + 2.1vw,3.125rem);line-height:1.12;letter-spacing:-.035em}
:is(.page-head,.page-intro,.narrow,.document,.split-head) h1:is(:lang(zh),:lang(ja),:lang(ko)){line-height:1.28;letter-spacing:-.01em}
:is(.page-head,.page-intro,.narrow,.document,.split-head) h1:is(:lang(ar),:lang(th),:lang(hi)){line-height:1.4;letter-spacing:normal}
:is(.page-head,.page-intro,.narrow,.document,.split-head) h1:lang(vi){line-height:1.24;letter-spacing:normal}
.page-head .lead,.page-intro .lead{margin-top:1.25rem}
.page-head>.button,.page-intro>.button,.page-actions{margin-top:1.75rem}
.page-actions{display:flex;gap:.75rem;flex-wrap:wrap}
.page-note{margin-top:1rem;color:var(--muted);font-size:.9375rem}
.download-body{gap:1.5rem}

.narrow{max-width:640px}
.narrow>*+*{margin-block-start:1.25rem}
.narrow>:is(.card,form,.faq-list,:where(#payment-status))+*,.narrow>*+:is(.card,form,.faq-list,:where(#payment-status)){margin-block-start:2rem}
.narrow>.page-actions{margin-block-start:1.75rem}
.centered{text-align:center}
.centered .row,.centered .page-actions{justify-content:center}
.error-page{padding-block:clamp(72px,10vw,140px)}
.error-page .eyebrow{font-size:clamp(4rem,10vw,6.5rem);font-weight:760;line-height:1;letter-spacing:-.05em;color:var(--brand)}
.error-page h1{font-size:clamp(1.625rem,1.2rem + 1.6vw,2.25rem)}
.contact-facts{display:grid;gap:.25rem;margin-top:1.5rem;color:var(--text-2)}
.contact-email{justify-items:start;margin-top:1.5rem}
.contact-email [data-contact-address] a{font-weight:600}
#contact-result:not(:empty),#device-result:not(:empty){padding:.85rem 1.1rem;border:1px solid var(--line);border-inline-start:3px solid var(--brand);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text-2);font-size:.875rem}
#admin-gate{max-width:520px}

/* 10 Documents ------------------------------------------------------------ */
.document{display:grid;grid-template-columns:minmax(0,1fr);align-items:start}
.document>*{grid-column:1;min-width:0}
.document>header{max-width:780px}
.document>header .lead{margin-top:1.25rem}
.document>header>.small{margin-top:1.25rem}
.document>header>.small:first-child{margin-top:0}
.document>section{max-width:720px;margin-top:clamp(2.5rem,4vw,3.5rem)}
.document>section:not(:lang(zh),:lang(ja),:lang(ko)){max-width:68ch}
.document>section:has(table,.link-grid,.faq-list){max-width:none}
.document>section:has(table,.link-grid,.faq-list)>:is(p,ul,ol,h2){max-width:720px}
.document>section:not(:lang(zh),:lang(ja),:lang(ko))>:is(p,ul,ol){max-width:36rem}
.document h2{font-size:clamp(1.375rem,1.2rem + .6vw,1.625rem);line-height:1.3;letter-spacing:-.02em}
.document p,.document li{line-height:1.75;color:var(--text-2)}
.document :is(p,li):is(:lang(zh),:lang(ja),:lang(ko)){line-height:1.9}
.document header p.lead{color:var(--muted);line-height:1.7}
.document header p.small{color:var(--muted);line-height:1.55}
.document section>ul,.document section>ol{margin-top:1rem}
.document section>:is(.table-scroll,.table-wrap,pre,.link-grid,.faq-list,.contact-email){margin-top:1.5rem}
.document section>:is(.table-scroll,.table-wrap,pre)+p{margin-top:1.25rem}
.document section>p>a:only-child{font-weight:550}
.document table:has(th:nth-child(3)){min-width:520px}
.document>p:last-child{margin-top:clamp(2.5rem,4vw,3.5rem)}
.document-toc{margin-top:2rem;padding:1.35rem 1.5rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}
.document-toc strong{display:block;color:var(--muted);font-size:.75rem;font-weight:650;letter-spacing:.08em;text-transform:uppercase}
.document-toc strong:is(:lang(zh),:lang(ja),:lang(ko)){letter-spacing:.04em}
.document-toc strong:is(:lang(ar),:lang(th),:lang(hi),:lang(vi)){letter-spacing:normal}
.document-toc ol{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.15rem 2rem;margin:.9rem 0 0;padding:0;list-style:none;counter-reset:toc}
.document-toc li{margin:0;counter-increment:toc;line-height:1.5}
.document-toc a{display:flex;gap:.6rem;padding-block:.3rem;color:var(--text-2);font-size:.875rem;line-height:1.5;text-decoration:none}
.document-toc a::before{content:counter(toc,decimal-leading-zero);flex:none;min-width:1.5em;color:var(--muted);font-size:.75rem;font-variant-numeric:tabular-nums;line-height:1.75}
.document-toc a:hover{color:var(--brand-ink)}
.media-evidence{margin:2rem 0 0}
.media-evidence>a{display:block;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-md)}
.media-evidence img{display:block;width:calc(100% + 6px);max-width:none;height:auto;margin:-3px;filter:var(--evidence-filter)}
.media-evidence figcaption{margin-block-start:.7rem;color:var(--muted);font-size:.8125rem}
.subtitle-example{margin:0;padding:1.15rem 1.35rem;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-2);color:var(--text-2);font-size:.8438rem;line-height:1.75;white-space:pre-wrap;overflow-wrap:anywhere;overflow:auto;direction:ltr;text-align:start}
@media(min-width:1025px){
  .document{grid-template-columns:minmax(0,1fr) 272px;column-gap:clamp(40px,5vw,72px)}
  .document>.document-toc{grid-column:2;grid-row:1/span 80;position:sticky;top:calc(var(--header-h) + 28px);max-height:calc(100vh - var(--header-h) - 56px);max-height:calc(100dvh - var(--header-h) - 56px);scrollbar-width:thin;margin-top:.35rem;padding:0 0 1.75rem;padding-inline-start:1.25rem;scroll-padding-block-end:1.75rem;-webkit-mask-image:linear-gradient(#000 calc(100% - 1.75rem),transparent);mask-image:linear-gradient(#000 calc(100% - 1.75rem),transparent);overflow-y:auto;border:0;border-inline-start:1px solid var(--line);border-radius:0;background:none}
  .document-toc ol{grid-template-columns:minmax(0,1fr)}
  .document>header:has(>.small:only-child)+section,.document>header:has(>.small:only-child)+.document-toc+section{margin-top:1.25rem}
}

/* 11 Consent manager (vendor widget, themed through its custom properties) - */
html #cc-main{font-family:inherit;--cc-modal-border-radius:var(--radius);--cc-btn-border-radius:var(--radius-sm);--cc-pm-toggle-border-radius:4em;--cc-z-index:900;--cc-bg:var(--surface);--cc-primary-color:var(--text);--cc-secondary-color:var(--muted);--cc-link-color:var(--brand-ink);--cc-btn-primary-bg:var(--primary);--cc-btn-primary-color:var(--on-primary);--cc-btn-primary-border-color:var(--primary);--cc-btn-primary-hover-bg:var(--primary-hover);--cc-btn-primary-hover-color:var(--on-primary);--cc-btn-primary-hover-border-color:var(--primary-hover);--cc-btn-secondary-bg:var(--surface-2);--cc-btn-secondary-color:var(--text);--cc-btn-secondary-border-color:var(--line);--cc-btn-secondary-hover-bg:var(--surface-3);--cc-btn-secondary-hover-color:var(--text);--cc-btn-secondary-hover-border-color:var(--line-strong);--cc-separator-border-color:var(--line);--cc-toggle-on-bg:var(--primary);--cc-toggle-off-bg:var(--toggle-off);--cc-toggle-on-knob-bg:#fff;--cc-toggle-off-knob-bg:#fff;--cc-toggle-enabled-icon-color:var(--primary);--cc-toggle-disabled-icon-color:var(--muted);--cc-toggle-readonly-bg:var(--brand-line);--cc-toggle-readonly-knob-bg:var(--brand-ink);--cc-toggle-readonly-knob-icon-color:var(--brand-soft);--cc-section-category-border:var(--line);--cc-cookie-category-block-bg:var(--surface-2);--cc-cookie-category-block-border:var(--line);--cc-cookie-category-block-hover-bg:var(--surface-3);--cc-cookie-category-block-hover-border:var(--line-strong);--cc-cookie-category-expanded-block-bg:transparent;--cc-cookie-category-expanded-block-hover-bg:var(--surface-3);--cc-overlay-bg:var(--backdrop);--cc-webkit-scrollbar-bg:var(--line);--cc-webkit-scrollbar-hover-bg:var(--line-strong);--cc-footer-bg:var(--surface-2);--cc-footer-color:var(--muted);--cc-footer-border-color:var(--line)}
html #cc-main .cm,html #cc-main .pm{border:1px solid var(--line);box-shadow:var(--shadow-lg)}
html #cc-main .cm__btn,html #cc-main .pm__btn{min-height:44px;font-size:.875rem}
html #cc-main .cm.cm--inline .cm__btn-group{column-gap:.375rem}
html #cc-main .cm.cm--inline .cm__btn+.cm__btn{margin-inline:0}
html #cc-main .pm__section-desc a{color:var(--brand-ink);font-weight:550;text-decoration:underline;text-underline-offset:.22em}

/* Language lists contain scripts from 118 targets; avoid fetching every webfont just to render their labels. */
.locale-menu,.locale-menu [data-locale],#subtitle-form select,#subtitle-form option,.language-cloud span{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}

/* 12 Responsive ----------------------------------------------------------- */
@media(max-width:1320px){
  .desktop-nav{margin-inline-start:.5rem}
  .desktop-nav>a,.desktop-nav .nav-drop>summary{padding:0 .6rem}
  .balance-badge{display:none}
  .desktop-nav:has([data-generator-link]:not([hidden])) .nav-help{display:none}
  .desktop-nav [data-generator-link]{max-width:9rem;white-space:normal;line-height:1.35}
}
@media(max-width:1024px){
  :root{--header-h:64px;--gutter:24px}
  .desktop-nav{display:none}
  .header-actions{gap:.25rem}
  .mobile-nav{display:block;flex-shrink:0}
  .mobile-nav>summary{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;color:var(--text-2);list-style:none;cursor:pointer;transition:background-color .15s}
  .mobile-nav>summary:hover,.mobile-nav[open]>summary{background:var(--surface-2);color:var(--text)}
  .mobile-nav>summary svg{width:20px;height:20px}
  .mobile-nav>summary .menu-cross,.mobile-nav[open]>summary .menu-bars{display:none}
  .mobile-nav[open]>summary .menu-cross{display:inline}
  .mobile-nav[open]>nav{position:absolute;top:var(--header-h);inset-inline:0;display:grid;gap:.25rem;max-height:calc(100vh - var(--header-h));max-height:calc(100dvh - var(--header-h));overscroll-behavior:contain;padding:1rem calc(var(--gutter) - .75rem) 1.5rem;overflow:auto;border-bottom:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow)}
  .mobile-nav nav>a{display:flex;align-items:center;min-height:46px;padding:0 .75rem;border-radius:var(--radius-xs);color:var(--text);font-weight:550;text-decoration:none}
  .mobile-nav nav>a:hover{background:var(--surface-2)}
  .mobile-nav .nav-drop>summary{min-height:46px;padding:0 .75rem;color:var(--text);font-size:1rem;font-weight:550;white-space:normal}
  .mobile-nav .nav-drop>div{position:static!important;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));width:auto;min-width:0;max-width:none;max-height:none;margin:.25rem 0 .5rem;padding:4px;border:0;border-radius:var(--radius-sm);background:var(--surface-2);box-shadow:none!important}
  .mobile-nav .nav-drop a{display:block;padding:.75rem}
  .split{grid-template-columns:1fr;gap:2rem}
  .split-head{position:static}
  .footer-columns{grid-template-columns:repeat(3,minmax(0,1fr))}
  .footer-columns>div:first-child{grid-column:span 2}
  .footer-columns>div:first-child ul{grid-template-columns:repeat(3,minmax(0,1fr))}
  .footer-columns>div:last-child{grid-column:3;grid-row:1}
  .document>.document-toc,.document>.media-evidence{max-width:780px}
}
@media(min-width:561px) and (max-width:1024px){
  .footer-columns>div:is(:first-child,:last-child){grid-column:1/-1;grid-row:auto}
  .footer-columns>div:first-child ul{grid-template-columns:repeat(4,minmax(0,1fr))}
  .footer-columns>div:last-child ul{grid-template-columns:repeat(auto-fill,minmax(13.5rem,1fr));column-gap:1rem}
}
@media(max-width:760px){
  .grid.three{grid-template-columns:1fr}
}
@media(max-width:560px){
  :root{--gutter:16px}
  .logo{font-size:1.1875rem;gap:.5rem}
  .logo img{width:30px;height:30px;border-radius:8px}
  .header-inner{gap:.35rem}
  .header-actions{min-width:0}
  .nav-drop.locale-menu>.locale-select{width:40px;max-width:40px;padding-inline:0;background-image:var(--globe);background-size:18px;background-position:center}
  .locale-name{display:none}
  .locale-menu{position:static}
  .locale-menu[open]>div{top:calc(100% + 4px);inset-inline-start:auto;inset-inline-end:var(--gutter)}
  .theme-toggle{width:36px;min-height:36px}
  .header-actions .auth-button{min-height:38px;padding:.35rem .75rem;font-size:.8125rem}
  .header-actions .account-menu>summary{justify-content:center;width:38px;padding:0}
  .account-menu{position:static}
  .account-menu[open]>div{inset-inline-end:var(--gutter)}
  .account-menu-label,.account-menu>summary .nav-chevron{display:none}
  .mobile-nav>summary{width:38px;height:38px}
  .grid.two{grid-template-columns:1fr}
  .link-grid{grid-template-columns:minmax(0,1fr)}
  .card{padding:1.25rem}
  .card.row{padding:1rem 1.1rem}
  .card.stack>button,.card.stack>.button,.danger-zone>button{justify-self:stretch}
  .danger-zone,#payment-status{padding:1.25rem}
  .payment-summary{padding:1.25rem 1.25rem 0}
  .payment-copy{padding-inline:1.25rem}
  .payment-actions,.payment-agreements{padding:1.25rem}
  .payment-workspace{justify-self:stretch}
  dialog>.dialog-close{top:-.5rem;margin-block:-.5rem 0;margin-inline:0 -.5rem}
  .document table:has(th:nth-child(3)):not(:has(th:nth-child(4))){min-width:0}
  .document :is(th,td){padding:.7rem}
  .document th{white-space:normal}
  .document-toc{padding:1.25rem}
  html #cc-main .cm__desc{font-size:.8125rem;line-height:1.5}
  .footer-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem 1.25rem}
  .footer-columns>div:first-child{grid-column:1/-1}
  .footer-columns>div:last-child{grid-column:auto;grid-row:auto}
  .footer-top,.footer-bottom{flex-direction:column;align-items:flex-start}
  dialog{padding:1.5rem}
  .toast{bottom:16px;inset-inline:16px;max-width:none}
  details.faq>summary{padding:1rem 1.15rem}
  details.faq>p{padding:0 1.15rem 1.15rem}
  .document-toc ol{grid-template-columns:minmax(0,1fr)}
  .price{font-size:2.75rem}
  .device-code{font-size:1.75rem}
}
@media(max-width:340px){
  .document td{overflow-wrap:anywhere}
}
/* Narrow phones: the mark alone stands for the brand, the link keeps its accessible name. */
@media(max-width:400px){
  .header .logo{gap:0;font-size:0}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
@media print{.header,.footer,.toast,#cc-main,.skip{display:none!important}body{background:#fff;color:#000}}
