:root{--bg-canvas:#F8FAFC;--bg-surface:#FFFFFF;--bg-raised:#FFFFFF;--bg-sunken:#E7E9EF;--bg-inverse:#16181F;--text-primary:#16181F;--text-secondary:#565C6B;--text-tertiary:#63697A;--text-on-accent:#FFFFFF;--text-inverse:#F3F4F8;--border-subtle:#DDE3EE;--border-strong:#848CA0;--border-focus:#5B5CEB;--accent-base:#5B5CEB;--accent-hover:#4A4BD8;--accent-active:#3E3FC2;--accent-muted:#EEEEFD;--accent-quiet:#F7F7FE;--accent-text:#4338CA;--brand-teal:#28C7B7;--brand-gold:#FFC857;--grade-again:#C33629;--grade-again-bg:#FDECEB;--grade-hard:#9A5A07;--grade-hard-bg:#FCF2E2;--grade-good:#0C7550;--grade-good-bg:#E6F5EE;--grade-easy:#2059DE;--grade-easy-bg:#E8EFFE;--state-success:#0C7550;--state-success-bg:#E6F5EE;--state-warning:#A6560A;--state-warning-bg:#FDF3E3;--state-danger:#B01048;--state-danger-bg:#FDEBF1;--state-info:#1D5FBF;--state-info-bg:#E8F0FC;--level-a1:#0672A8;--level-a2:#0B7C72;--level-b1:#7C3AED;--level-b2:#4338CA;--level-c1:#A6560A;--level-c2:#B03A0B;--streak-flame:#A8460B;--streak-bg:#FDF0E6;--ad-bg:#E8EAF1;--ad-border:#CBD1DE;--ad-label:#5F6678;--shadow-xs:0 1px 2px rgba(16, 18, 27, .05);--shadow-sm:0 1px 3px rgba(16, 18, 27, .07), 0 1px 2px rgba(16, 18, 27, .04);--shadow-md:0 4px 14px rgba(16, 18, 27, .08), 0 1px 3px rgba(16, 18, 27, .05);--shadow-lg:0 18px 44px rgba(16, 18, 27, .12), 0 4px 10px rgba(16, 18, 27, .06);--shadow-focus:0 0 0 3px rgba(91, 92, 235, .28)}:root[data-theme=dark]{--bg-canvas:#0F172A;--bg-surface:#191C24;--bg-raised:#222630;--bg-sunken:#0B0D12;--bg-inverse:#F3F4F8;--text-primary:#F0F2F7;--text-secondary:#A8B0C2;--text-tertiary:#8E97AB;--text-on-accent:#FFFFFF;--text-inverse:#16181F;--border-subtle:#2B303C;--border-strong:#626A80;--border-focus:#8B87F5;--accent-base:#6162EC;--accent-hover:#7071EE;--accent-active:#5051DE;--accent-muted:#262541;--accent-quiet:#1D1D31;--accent-text:#A6A2F8;--grade-again:#F0736A;--grade-again-bg:#331E1D;--grade-hard:#E6A23C;--grade-hard-bg:#322515;--grade-good:#3FC58C;--grade-good-bg:#102C22;--grade-easy:#6C9BFA;--grade-easy-bg:#16233D;--state-success:#3FC58C;--state-success-bg:#102C22;--state-warning:#E0A040;--state-warning-bg:#2E2313;--state-danger:#F2609A;--state-danger-bg:#33162A;--state-info:#6BA5F5;--state-info-bg:#142338;--level-a1:#4CB6EC;--level-a2:#3FC0B0;--level-b1:#B394FA;--level-b2:#8B87F5;--level-c1:#E0A040;--level-c2:#F27B4E;--streak-flame:#FB8B3C;--streak-bg:#33200F;--ad-bg:#14161C;--ad-border:#333949;--ad-label:#939BAE;--shadow-xs:0 1px 2px rgba(0, 0, 0, .4);--shadow-sm:0 1px 3px rgba(0, 0, 0, .45), 0 1px 2px rgba(0, 0, 0, .3);--shadow-md:0 4px 14px rgba(0, 0, 0, .5), 0 1px 3px rgba(0, 0, 0, .35);--shadow-lg:0 18px 44px rgba(0, 0, 0, .6), 0 4px 10px rgba(0, 0, 0, .4);--shadow-focus:0 0 0 3px rgba(139, 135, 245, .35)}:root{--font-ui:"Inter", "SF Pro Text", -apple-system, BlinkMacSystemFont,
             "Segoe UI", "Noto Sans", "Helvetica Neue", Arial, sans-serif;--font-display:"Inter", "SF Pro Display", -apple-system,
             BlinkMacSystemFont, "Segoe UI", sans-serif;--font-ipa:"Charis SIL", "Doulos SIL", "Gentium Plus", "Lucida Grande",
             "Segoe UI", "Noto Sans", var(--font-ui);--font-mono:ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;--fs-11:0.6875rem;--fs-12:0.75rem;--fs-13:0.8125rem;--fs-14:0.875rem;--fs-15:0.9375rem;--fs-16:1rem;--fs-18:1.125rem;--fs-20:1.25rem;--fs-24:1.5rem;--fs-28:1.75rem;--fs-32:2rem;--fs-40:2.5rem;--fs-52:3.25rem;--lh-tight:1.18;--lh-snug:1.35;--lh-normal:1.55;--lh-loose:1.7;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:20px;--s-6:24px;--s-7:32px;--s-8:40px;--s-9:48px;--s-10:64px;--s-11:80px;--r-sm:8px;--r-md:12px;--r-lg:16px;--r-xl:22px;--r-pill:999px;--tap-min:44px;--tap-simple:48px;--read-width:68ch;--z-sticky:20;--z-overlay:50;--z-dialog:60;--z-toast:80;--z-mocktools:90;--z-skip:100;--ease:cubic-bezier(.32, .72, 0, 1);--dur-fast:120ms;--dur-base:200ms;--dur-slow:320ms}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}:root[data-simple=on]{font-size:18px;--tap-min:var(--tap-simple)}@font-face{font-family:inter;src:url(../fonts/Inter-Variable.ttf)format("truetype");font-weight:100 900;font-style:normal;font-display:swap}*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--font-ui);font-size:var(--fs-15);line-height:var(--lh-normal);color:var(--text-primary);background:var(--bg-canvas);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-variant-numeric:tabular-nums}h1,h2,h3,h4,h5{margin:0;font-family:var(--font-display);font-weight:640;line-height:var(--lh-tight);letter-spacing:-.015em;color:var(--text-primary);overflow-wrap:anywhere}h1{font-size:var(--fs-28)}h2{font-size:var(--fs-20)}h3{font-size:var(--fs-16)}.size-h3{font-size:var(--fs-16)}.fs-16{font-size:var(--fs-16)}.fs-18{font-size:var(--fs-18)}.fs-20{font-size:var(--fs-20)}.fs-24{font-size:var(--fs-24)}.fs-28{font-size:var(--fs-28)}.fs-32{font-size:var(--fs-32)}.text-success{color:var(--state-success)}.text-danger{color:var(--state-danger)}.text-warning{color:var(--state-warning)}h4{font-size:var(--fs-14)}p{margin:0 0 var(--s-3)}p:last-child{margin-bottom:0}a{color:var(--accent-text);text-decoration:none;border-radius:var(--r-sm)}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}ul,ol{margin:0 0 var(--s-3);padding-inline-start:1.25em}li{margin-bottom:var(--s-1)}hr{border:0;border-top:1px solid var(--border-subtle);margin:var(--s-6)0}:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}:focus:not(:focus-visible){outline:none}::selection{background:var(--accent-muted);color:var(--text-primary)}*{scrollbar-width:thin;scrollbar-color:var(--border-strong)transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-thumb{background:var(--border-strong);border:3px solid transparent;background-clip:content-box;border-radius:var(--r-pill)}*::-webkit-scrollbar-track{background:0 0}.tw{font-weight:620;color:var(--text-primary);letter-spacing:-.005em}.tw-link{border-bottom:1px dotted var(--border-strong);cursor:pointer}.tw-link:hover{border-bottom-color:var(--accent-base);color:var(--accent-text)}.ipa{font-family:var(--font-ipa);color:var(--text-secondary);font-size:.94em;white-space:nowrap}.mono{font-family:var(--font-mono);font-size:.92em}.muted{color:var(--text-secondary)}.quiet{color:var(--text-tertiary)}.tiny{font-size:var(--fs-12)}.small{font-size:var(--fs-13)}.center{text-align:center}.nowrap{white-space:nowrap}.readable{max-width:var(--read-width)}.content p,.col-main p,.mbody p,.content li,.mbody li,.bubble{max-width:var(--read-width)}.center p,p.center,.empty p,.dialog.center p,.sheet.center p{margin-inline:auto}.lead{font-size:var(--fs-16);line-height:var(--lh-loose);color:var(--text-secondary)}.strong{font-weight:620}.eyebrow{font-size:var(--fs-11);font-weight:660;letter-spacing:.09em;text-transform:uppercase;color:var(--text-tertiary)}.stack{display:flex;flex-direction:column}.row{display:flex;align-items:center}.row-top{display:flex;align-items:flex-start}.wrap{flex-wrap:wrap}.between{justify-content:space-between}.center-x{justify-content:center}.grow{flex:auto;min-width:0}.g-1{gap:var(--s-1)}.g-2{gap:var(--s-2)}.g-3{gap:var(--s-3)}.g-4{gap:var(--s-4)}.g-5{gap:var(--s-5)}.g-6{gap:var(--s-6)}.g-7{gap:var(--s-7)}.mt-1{margin-top:var(--s-1)}.mt-2{margin-top:var(--s-2)}.mt-3{margin-top:var(--s-3)}.mt-4{margin-top:var(--s-4)}.mt-5{margin-top:var(--s-5)}.mt-6{margin-top:var(--s-6)}.mt-7{margin-top:var(--s-7)}.mt-8{margin-top:var(--s-8)}.mb-1{margin-bottom:var(--s-1)}.mb-2{margin-bottom:var(--s-2)}.mb-3{margin-bottom:var(--s-3)}.mb-4{margin-bottom:var(--s-4)}.mb-5{margin-bottom:var(--s-5)}.mb-6{margin-bottom:var(--s-6)}.mb-7{margin-bottom:var(--s-7)}.mb-8{margin-bottom:var(--s-8)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.hidden{display:none!important}.skip-link{position:absolute;inset-inline-start:var(--s-4);top:-100px;z-index:var(--z-skip);padding:var(--s-3)var(--s-5);border-radius:var(--r-md);background:var(--accent-base);color:var(--text-on-accent);font-weight:600;text-decoration:none;transition:top var(--dur-fast)var(--ease)}.skip-link:focus{top:var(--s-4)}.icon{width:1.15em;height:1.15em;flex:none;vertical-align:-.18em;fill:currentColor;stroke:currentColor}@font-face{font-family:inter;src:url(../fonts/Inter-latin-vi.woff2)format("woff2");font-weight:100 900;font-style:normal;font-display:swap;unicode-range:U+??,U+102-103,U+110-111,U+128-129,U+131,U+152-153,U+168-169,U+1A0-1A1,U+1AF-1B0,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+2000-206F,U+20AB-20AC,U+2122,U+2190-2193,U+2212,U+2215,U+FEFF,U+FFFD}:root:lang(ja){--font-ui:"Inter", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP",
             "Yu Gothic UI", "Yu Gothic", Meiryo, system-ui, sans-serif;--font-display:var(--font-ui)}:root:lang(ko){--font-ui:"Inter", "Apple SD Gothic Neo", "Noto Sans KR", "Malgun Gothic",
             system-ui, sans-serif;--font-display:var(--font-ui)}:lang(ja) h1,:lang(ja) h2,:lang(ko) h1,:lang(ko) h2{letter-spacing:0}:lang(ja),:lang(ko){line-break:strict;word-break:normal;overflow-wrap:anywhere}:lang(ko){word-break:keep-all}html{scroll-behavior:smooth;scroll-padding-top:88px}body{font-size:var(--fs-16)}main:focus{outline:none}.container{width:100%;max-width:1180px;margin-inline:auto;padding-inline:var(--s-6)}.narrow{max-width:780px}@media(max-width:480px){.container{padding-inline:var(--s-4)}}.icon{width:1.15em;height:1.15em;flex:none;vertical-align:-.2em}.btn{--btn-bg:var(--bg-surface);--btn-fg:var(--text-primary);--btn-bd:var(--border-strong);display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);min-height:var(--tap-min);padding:0 var(--s-5);font-size:var(--fs-14);font-weight:600;color:var(--btn-fg);background:var(--btn-bg);border:1px solid var(--btn-bd);border-radius:var(--r-md);text-decoration:none;white-space:nowrap;cursor:pointer;transition:background var(--dur-fast)var(--ease),border-color var(--dur-fast)var(--ease),transform var(--dur-fast)var(--ease)}.btn:hover{text-decoration:none}.btn:active{transform:translateY(1px)}.btn--primary{--btn-bg:var(--accent-base);--btn-fg:var(--text-on-accent);--btn-bd:var(--accent-base);box-shadow:var(--shadow-sm)}.btn--primary:hover{--btn-bg:var(--accent-hover);--btn-bd:var(--accent-hover)}.btn--primary:active{--btn-bg:var(--accent-active);--btn-bd:var(--accent-active)}.btn--secondary:hover{background:var(--bg-sunken)}.btn--ghost{--btn-bd:transparent;--btn-bg:transparent}.btn--ghost:hover{background:var(--bg-sunken)}.btn--on-accent{--btn-bg:var(--bg-surface);--btn-fg:var(--accent-text);--btn-bd:var(--bg-surface);box-shadow:var(--shadow-md)}.btn--on-accent:hover{--btn-bg:var(--accent-quiet)}.btn--lg{min-height:56px;padding:0 var(--s-7);font-size:var(--fs-16);border-radius:var(--r-lg)}.btn--sm{min-height:36px;padding:0 var(--s-3);font-size:var(--fs-13);border-radius:var(--r-sm)}@media(pointer:coarse){.btn--sm{min-height:var(--tap-min)}}.btn--block{width:100%}.btn--icon{width:var(--tap-min);padding:0}.btn .icon{width:1.1em;height:1.1em}.chip{display:inline-flex;align-items:center;gap:var(--s-1);padding:3px var(--s-2);font-size:var(--fs-12);font-weight:600;border-radius:var(--r-sm);background:var(--bg-sunken);color:var(--text-secondary);border:1px solid transparent;white-space:nowrap;text-decoration:none}.chip--pill{border-radius:var(--r-pill);padding:4px var(--s-3)}.chip--outline{background:0 0;border-color:var(--border-subtle);color:var(--text-secondary)}a.chip--outline:hover{border-color:var(--border-strong);color:var(--text-primary);text-decoration:none}.chip--soon{background:var(--state-warning-bg);color:var(--state-warning)}.tag-count{color:var(--text-tertiary);font-weight:500}.card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--r-lg);box-shadow:var(--shadow-xs)}.site-header{position:sticky;top:0;z-index:var(--z-sticky);background:var(--bg-canvas);border-bottom:1px solid var(--border-subtle)}.site-header__inner{display:flex;align-items:center;gap:var(--s-5);min-height:68px}.brand{display:inline-flex;align-items:center;flex:none;border-radius:var(--r-sm)}.brand img{display:block;height:32px;width:auto}.brand img[data-bg=dark]{display:none}:root[data-theme=dark] .brand img[data-bg=light]{display:none}:root[data-theme=dark] .brand img[data-bg=dark]{display:block}.site-nav{margin-inline-start:var(--s-4)}.site-nav__list,.nav-drawer ul{list-style:none;margin:0;padding:0}.site-nav__list{display:flex;gap:var(--s-1)}.site-nav__list li,.nav-drawer li{margin:0}.site-nav__list a{display:inline-flex;align-items:center;min-height:40px;padding:0 var(--s-3);color:var(--text-secondary);font-weight:560;font-size:var(--fs-15);border-radius:var(--r-sm)}.site-nav__list a:hover{color:var(--text-primary);background:var(--bg-sunken);text-decoration:none}.site-nav__list a[aria-current=page]{color:var(--accent-text)}.site-header__tools{display:flex;align-items:center;gap:var(--s-2);margin-inline-start:auto}.menu{position:relative}.menu>summary{list-style:none}.menu>summary::-webkit-details-marker{display:none}.menu__list{position:absolute;inset-inline-end:0;top:calc(100% + var(--s-2));z-index:var(--z-overlay);min-width:200px;margin:0;padding:var(--s-2);list-style:none;background:var(--bg-raised);border:1px solid var(--border-subtle);border-radius:var(--r-md);box-shadow:var(--shadow-lg)}.menu__list li{margin:0}.menu__list a{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);min-height:var(--tap-min);padding:0 var(--s-3);color:var(--text-primary);border-radius:var(--r-sm)}.menu__list a:hover{background:var(--bg-sunken);text-decoration:none}.menu__list a[aria-current]{color:var(--accent-text);font-weight:600}.lang-switcher summary{color:var(--text-secondary)}.nav-drawer{display:none}.nav-drawer__panel{width:min(320px,calc(100vw - 32px));padding:var(--s-3)}.nav-drawer__panel ul{margin-bottom:var(--s-3)}@media(max-width:960px){.site-nav,.site-header__cta{display:none}.nav-drawer{display:block}}@media(max-width:420px){.lang-switcher__current{display:none}.site-header__inner{gap:var(--s-2)}.brand img{height:28px}}.section{padding-block:clamp(56px,7vw,96px)}.section--flush{padding-top:0}.section--tinted{background:var(--bg-surface);border-block:1px solid var(--border-subtle)}.section__head{max-width:720px;margin-bottom:var(--s-8)}.section__head--row{max-width:none;display:flex;align-items:baseline;justify-content:space-between;gap:var(--s-4);flex-wrap:wrap}.section__title{font-size:clamp(1.625rem,1.1rem + 1.6vw,2.375rem);font-weight:700;letter-spacing:-.02em;margin-bottom:var(--s-3)}.section__lead{font-size:var(--fs-18);line-height:var(--lh-loose);color:var(--text-secondary);max-width:64ch}.section--problem{text-align:center}.section--problem .section__lead{margin-inline:auto}.link-arrow{display:inline-flex;align-items:center;gap:var(--s-2);font-weight:600}.hero{padding-block:clamp(40px,6vw,88px)clamp(48px,6vw,80px);overflow:hidden}.hero__grid{display:grid;grid-template-columns:minmax(0,1.05fr)minmax(0,1fr);align-items:center;gap:clamp(32px,5vw,72px)}.hero__title{font-size:clamp(2.375rem,1.4rem + 3.6vw,4rem);font-weight:760;line-height:1.06;letter-spacing:-.03em;margin-bottom:var(--s-5);text-wrap:balance}.hero__title .accent{color:var(--accent-text)}.hero__lead{font-size:clamp(1.125rem,1rem + .4vw,1.3125rem);line-height:var(--lh-snug);color:var(--text-primary);font-weight:520;max-width:34ch}.hero__sub{font-size:var(--fs-16);color:var(--text-secondary);max-width:46ch}.hero__actions{display:flex;flex-wrap:wrap;gap:var(--s-3);margin-top:var(--s-7)}.hero-figure{position:relative;aspect-ratio:5/4;max-width:560px;width:100%;justify-self:center}.hero-figure__path{position:absolute;inset:6% 4% 20% 4%;width:92%;height:74%;color:var(--border-strong)}.dot--teal{fill:var(--brand-teal)}.dot--indigo{fill:var(--accent-base)}.dot--gold{fill:var(--brand-gold)}.hero-figure__mark{position:absolute;left:30%;top:22%;width:40%;height:auto;filter:drop-shadow(0 18px 30px color-mix(in srgb,var(--accent-base) 28%,transparent))}:root[data-theme=dark] .hero-figure__mark{filter:drop-shadow(0 18px 30px rgba(0,0,0,.45))brightness(1.08)}.bubble{position:absolute;padding:var(--s-2)var(--s-4);font-weight:650;font-size:clamp(.95rem,.8rem + .5vw,1.15rem);color:var(--text-primary);border-radius:var(--r-lg);box-shadow:var(--shadow-md);white-space:nowrap}.bubble--ask{left:8%;top:4%;background:color-mix(in srgb,var(--brand-teal) 26%,var(--bg-surface));border:1px solid color-mix(in srgb,var(--brand-teal) 60%,var(--bg-surface));border-end-start-radius:4px}.bubble--answer{right:2%;top:14%;background:var(--bg-raised);border:1px solid var(--border-subtle);border-end-end-radius:4px}.spark{position:absolute;width:28px;height:28px;color:var(--brand-gold)}.spark--a{right:20%;top:52%;width:44px;height:44px}.spark--b{right:8%;top:44%;width:20px;height:20px}.spark--c{left:4%;top:40%;width:22px;height:22px}.equation{position:absolute;left:0;right:0;bottom:0;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--s-2);margin:0}.equation__op{color:var(--text-tertiary);font-weight:600}.word-chip{display:inline-flex;padding:6px var(--s-4);font-weight:600;font-size:var(--fs-15);color:var(--text-primary);border-radius:var(--r-pill);border:1px solid var(--border-subtle);background:var(--bg-surface)}.word-chip--teal{background:color-mix(in srgb,var(--brand-teal) 18%,var(--bg-surface));border-color:color-mix(in srgb,var(--brand-teal) 55%,var(--bg-surface))}.word-chip--indigo{background:var(--accent-muted);border-color:color-mix(in srgb,var(--accent-base) 50%,var(--bg-surface))}.word-chip--gold{background:color-mix(in srgb,var(--brand-gold) 22%,var(--bg-surface));border-color:color-mix(in srgb,var(--brand-gold) 70%,var(--bg-surface))}@media(prefers-reduced-motion:no-preference){.spark--a{animation:twinkle 3.2s var(--ease)infinite}.spark--b{animation:twinkle 3.2s var(--ease).9s infinite}.spark--c{animation:twinkle 3.2s var(--ease)1.7s infinite}@keyframes twinkle{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(.7);opacity:.55}}}@media(max-width:880px){.hero__grid{grid-template-columns:minmax(0,1fr)}.hero__text{text-align:start}.hero-figure{max-width:460px}}@media(max-width:480px){.hero__actions .btn{width:100%}.bubble--answer{right:0}}.stages{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-6);counter-reset:stage}.stage{position:relative;margin:0;padding:var(--s-7)var(--s-6)var(--s-6)}.stage__icon,.feature__icon,.platform__icon{display:inline-grid;place-items:center;width:52px;height:52px;border-radius:var(--r-md);background:var(--accent-muted);color:var(--accent-text)}.stage__icon .icon,.feature__icon .icon,.platform__icon .icon{width:26px;height:26px}.stage__step{position:absolute;top:var(--s-6);inset-inline-end:var(--s-6);margin:0;font-size:var(--fs-40);font-weight:760;line-height:1;color:var(--border-subtle)}.stage__name{font-size:var(--fs-24);margin:var(--s-5)0 var(--s-3)}.stage p:last-child{color:var(--text-secondary)}@media(min-width:881px){.stage:not(:last-child)::after{content:"";position:absolute;top:50%;inset-inline-end:calc(var(--s-6) * -1);width:var(--s-6);height:2px;background:repeating-linear-gradient(90deg,var(--border-strong) 0 4px,transparent 4px 9px)}}@media(max-width:880px){.stages{grid-template-columns:minmax(0,1fr);gap:var(--s-4)}}.features{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-5)}.feature{margin:0;padding:var(--s-6);background:var(--bg-canvas);box-shadow:none}.feature h3{font-size:var(--fs-18);margin:var(--s-4)0 var(--s-2)}.feature p{color:var(--text-secondary);font-size:var(--fs-15)}@media(max-width:960px){.features{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.features{grid-template-columns:minmax(0,1fr)}}.timeline{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-7)}.timeline__item{margin:0;position:relative}.timeline__num{display:inline-grid;place-items:center;width:44px;height:44px;margin-bottom:var(--s-4);border-radius:50%;background:var(--accent-base);color:var(--text-on-accent);font-weight:700}.timeline__item h3{font-size:var(--fs-18);margin-bottom:var(--s-2)}.timeline__item p{color:var(--text-secondary)}@media(min-width:881px){.timeline__item:not(:last-child)::after{content:"";position:absolute;top:22px;left:60px;right:calc(var(--s-7) * -1 + 8px);height:2px;background:var(--border-subtle)}}@media(max-width:880px){.timeline{grid-template-columns:minmax(0,1fr);gap:var(--s-6)}}.platforms{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s-5)}.platform{margin:0;padding:var(--s-6);display:flex;flex-direction:column;align-items:flex-start;gap:var(--s-3)}.section--tinted .platform{background:var(--bg-canvas);box-shadow:none}.platform__name{font-size:var(--fs-18);margin-top:var(--s-2)}.platform__action{margin-top:auto;width:100%;white-space:normal;text-align:center;min-height:48px}.platform__soon{margin:0}.platform__note{margin:0;color:var(--text-tertiary);font-size:var(--fs-13);overflow-wrap:anywhere}.platform__os{list-style:none;margin:0;padding:0;width:100%;display:grid;gap:var(--s-2)}.platform__os li{margin:0;display:flex;align-items:center;justify-content:space-between;gap:var(--s-2);min-height:36px;font-size:var(--fs-14)}.platform__os-name{color:var(--text-secondary);min-width:0}.platform__os .chip{flex:none}.variant-note{margin-top:var(--s-6);padding:var(--s-4)var(--s-5);border:1px solid var(--border-subtle);border-radius:var(--r-md);background:var(--accent-quiet);font-size:var(--fs-14);color:var(--text-secondary)}.variant-note p{margin:0;max-width:none}.variant-note p+p{margin-top:var(--s-1)}.variant-note a{font-weight:600;margin-inline-start:var(--s-2)}@media(max-width:1040px){.platforms{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.platforms{grid-template-columns:minmax(0,1fr)}}.closing{padding-block:clamp(56px,7vw,96px);background:linear-gradient(135deg,var(--accent-active),var(--accent-base));color:var(--text-on-accent);text-align:center}.closing__inner{position:relative;display:flex;flex-direction:column;align-items:center;gap:var(--s-4)}.closing h2{color:var(--text-on-accent);font-size:clamp(1.75rem,1.2rem + 2vw,2.75rem);font-weight:740}.closing p{max-width:52ch;opacity:.94;font-size:var(--fs-18);margin:0 0 var(--s-3)}.closing__spark{position:static;width:40px;height:40px}.page-head{padding-bottom:var(--s-8)}.page-head__title{font-size:clamp(2rem,1.3rem + 2.4vw,3rem);font-weight:740;letter-spacing:-.025em;margin-bottom:var(--s-4)}.breadcrumbs ol{list-style:none;margin:0 0 var(--s-5);padding:0;display:flex;flex-wrap:wrap;gap:var(--s-2);font-size:var(--fs-14);color:var(--text-tertiary)}.breadcrumbs li{margin:0;display:inline-flex;gap:var(--s-2)}.breadcrumbs li+li::before{content:"/";color:var(--border-strong)}.breadcrumbs a{color:var(--text-secondary)}.breadcrumbs li:last-child{min-width:0;max-width:100%}.breadcrumbs [aria-current]{color:var(--text-tertiary);min-width:0;max-width:40ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.post-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--s-5)}.post-grid>li{margin:0;display:flex}.post-card{position:relative;display:flex;flex-direction:column;gap:var(--s-3);width:100%;padding:var(--s-6);transition:border-color var(--dur-fast)var(--ease),box-shadow var(--dur-fast)var(--ease),transform var(--dur-fast)var(--ease)}.post-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md)}.post-card__title{font-size:var(--fs-20);line-height:var(--lh-snug)}.post-card__title a{color:var(--text-primary)}.post-card__title a::after{content:"";position:absolute;inset:0;border-radius:var(--r-lg)}.post-card__title a:hover{text-decoration:none}.post-card__title a:focus-visible{outline:none}.post-card:has(a:focus-visible){outline:2px solid var(--border-focus);outline-offset:2px}.post-card__summary{color:var(--text-secondary);font-size:var(--fs-15);margin:0}.post-card .tag-list{margin-top:auto}.post-meta{display:flex;flex-wrap:wrap;gap:var(--s-2);margin:0;font-size:var(--fs-13);color:var(--text-tertiary)}.tag-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:var(--s-2)}.tag-list li{margin:0}.tag-list--nav{margin-top:var(--s-6)}.empty{color:var(--text-secondary)}.pagination{display:flex;align-items:center;justify-content:center;gap:var(--s-4);margin-top:var(--s-8)}.pagination__status{color:var(--text-secondary);font-size:var(--fs-14)}.post__head{padding-block:clamp(32px,5vw,64px)var(--s-7)}.post__title{font-size:clamp(2rem,1.3rem + 2.4vw,2.875rem);font-weight:740;letter-spacing:-.025em;line-height:1.12;margin-bottom:var(--s-4);text-wrap:balance}.post__lead{font-size:var(--fs-20);line-height:var(--lh-snug);color:var(--text-secondary);margin-bottom:var(--s-5)}.post__head .post-meta{font-size:var(--fs-14);margin-bottom:var(--s-4)}.prose{font-size:1.0625rem;line-height:var(--lh-loose)}.prose>*{max-width:var(--read-width)}.prose h2{font-size:var(--fs-24);margin:var(--s-8)0 var(--s-3)}.prose h3{font-size:var(--fs-20);margin:var(--s-7)0 var(--s-3)}.prose p,.prose ul,.prose ol{margin-bottom:var(--s-5)}.prose li{margin-bottom:var(--s-2)}.prose a{text-decoration:underline;text-underline-offset:3px}.prose em{color:var(--text-primary)}.prose blockquote{margin:var(--s-7)0;padding:var(--s-4)var(--s-5);border:1px solid var(--border-subtle);border-radius:var(--r-md);background:var(--accent-quiet);color:var(--text-secondary)}.prose blockquote p:last-child{margin-bottom:0}.prose code{font-family:var(--font-mono);font-size:.9em;background:var(--bg-sunken);padding:1px 6px;border-radius:6px}.share{margin-top:var(--s-9);padding-top:var(--s-6);border-top:1px solid var(--border-subtle)}.share__title{font-size:var(--fs-14);font-weight:650;color:var(--text-secondary);margin-bottom:var(--s-3)}.share__list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:var(--s-2)}.share__list li{margin:0}.share__list li[hidden]{display:none}.share__status{min-height:1.5em;margin:var(--s-2)0 0;font-size:var(--fs-14);color:var(--state-success)}.post-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-4);margin:var(--s-7)0 var(--s-10)}.post-nav__link{display:flex;flex-direction:column;gap:var(--s-1);padding:var(--s-4)var(--s-5);color:var(--text-primary)}.post-nav__link:hover{border-color:var(--border-strong);text-decoration:none}.post-nav__link--next{grid-column:2;text-align:end;align-items:flex-end}.post-nav__label{display:inline-flex;align-items:center;gap:var(--s-2);font-size:var(--fs-13);color:var(--text-tertiary)}.post-nav__title{font-weight:620;line-height:var(--lh-snug)}@media(max-width:600px){.post-nav{grid-template-columns:minmax(0,1fr)}.post-nav__link--next{grid-column:1}}.related .section__title{font-size:var(--fs-24);margin-bottom:var(--s-6)}.notfound{text-align:center;padding-block:clamp(64px,10vw,140px)}.notfound .section__lead{margin:0 auto var(--s-7)}.notfound__code{font-size:clamp(4rem,10vw,7rem);font-weight:800;line-height:1;color:var(--accent-muted);margin-bottom:var(--s-4)}.site-footer{border-top:1px solid var(--border-subtle);background:var(--bg-surface);padding-top:var(--s-9)}.site-footer__grid{display:grid;grid-template-columns:1.6fr repeat(3,minmax(0,1fr));gap:var(--s-7)}.site-footer__brand p{margin-top:var(--s-3);color:var(--text-secondary)}.site-footer__title{font-size:var(--fs-13);font-weight:660;letter-spacing:.06em;text-transform:uppercase;color:var(--text-tertiary);margin-bottom:var(--s-3)}:lang(ja) .site-footer__title,:lang(ko) .site-footer__title{letter-spacing:0}.site-footer ul{list-style:none;margin:0;padding:0}.site-footer li{margin:0}.site-footer nav a{display:inline-flex;align-items:center;min-height:36px;color:var(--text-secondary)}.site-footer nav a:hover{color:var(--text-primary)}.site-footer nav a[aria-current]{color:var(--accent-text);font-weight:600}.site-footer__legal{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--s-3);margin-top:var(--s-8);padding-block:var(--s-5);border-top:1px solid var(--border-subtle);font-size:var(--fs-13);color:var(--text-tertiary)}.site-footer__legal p{margin:0}.site-footer__legal a{color:var(--text-secondary);text-decoration:underline;text-underline-offset:2px}@media(max-width:880px){.site-footer__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.site-footer__brand{grid-column:1/-1}}@media(max-width:420px){.site-footer__grid{grid-template-columns:minmax(0,1fr)}}@media print{.site-header,.site-footer,.share,.post-nav,.related,.skip-link{display:none!important}body{background:0 0}}