:root{--color-bg:#fafaf8;--color-surface:#fff;--color-text:#1a1a1a;--color-text-muted:#6b6b6b;--color-accent:#2563eb;--color-accent-hover:#1d4ed8;--color-highlight:#fde68a;--color-border:#e5e5e5;--color-code-bg:#f3f4f6;--color-success:#059669;--color-warning:#d97706;--font-display:"DM Serif Display", Georgia, serif;--font-body:"Source Sans 3", "Noto Sans JP", "Noto Sans SC", -apple-system, BlinkMacSystemFont, sans-serif;--font-code:"JetBrains Mono", "Fira Code", monospace;--content-width:740px;--full-width:1100px;--nav-height:64px;--radius:8px;--radius-sm:4px}[data-theme=dark]{--color-bg:#0f0f0f;--color-surface:#1a1a1a;--color-text:#e5e5e5;--color-text-muted:#9ca3af;--color-accent:#60a5fa;--color-accent-hover:#93c5fd;--color-highlight:#78350f;--color-border:#2d2d2d;--color-code-bg:#1e1e1e}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-height) + 1rem);font-size:16px}body{font-family:var(--font-body);color:var(--color-text);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:1.0625rem;line-height:1.7}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);color:var(--color-text);letter-spacing:-.01em;line-height:1.2}h1{margin-bottom:clamp(1rem,2vw,1.5rem);font-size:clamp(2.25rem,5vw,3.5rem)}h2{border-bottom:2px solid var(--color-border);margin-top:clamp(3rem,6vw,5rem);margin-bottom:clamp(.75rem,1.5vw,1.25rem);padding-bottom:.5rem;font-size:clamp(1.75rem,3.5vw,2.25rem)}h3{margin-top:clamp(1.5rem,3vw,2.5rem);margin-bottom:.75rem;font-size:clamp(1.25rem,2.5vw,1.5rem)}h4{margin-top:1.5rem;margin-bottom:.5rem;font-size:1.125rem}p{max-width:70ch;margin-bottom:1rem}a{color:var(--color-accent);text-underline-offset:2px;text-decoration:underline;transition:color .2s}a:hover{color:var(--color-accent-hover)}strong{font-weight:600}code{font-family:var(--font-code);background:var(--color-code-bg);border-radius:var(--radius-sm);padding:.15em .4em;font-size:.9em}blockquote{border-left:4px solid var(--color-accent);background:var(--color-surface);border-radius:0 var(--radius) var(--radius) 0;color:var(--color-text);margin:clamp(1.5rem,3vw,2rem) 0;padding:clamp(1rem,2vw,1.5rem);font-size:1.125rem;font-style:italic}blockquote p{margin-bottom:0}ul,ol{margin-bottom:1rem;padding-left:1.5rem}li{margin-bottom:.35rem}.container{width:100%;max-width:var(--content-width);margin:0 auto;padding:0 clamp(1rem,3vw,2rem)}.container--wide{max-width:var(--full-width)}.site-header{z-index:100;background:var(--color-bg);border-bottom:1px solid var(--color-border);height:var(--nav-height);align-items:center;display:flex;position:sticky;top:0}.site-header__inner{width:100%;max-width:var(--full-width);justify-content:space-between;align-items:center;gap:1rem;margin:0 auto;padding:0 clamp(1rem,3vw,2rem);display:flex}.site-header__logo{font-family:var(--font-display);color:var(--color-text);white-space:nowrap;flex-shrink:0;font-size:1.125rem;text-decoration:none}.site-header__logo:hover{color:var(--color-accent)}.site-header__controls{flex-shrink:0;align-items:center;gap:.75rem;display:flex}.scroll-progress{top:var(--nav-height);background:var(--color-accent);z-index:101;width:0%;height:3px;transition:width .1s linear;position:fixed;left:0}.section{padding:clamp(2rem,5vw,4rem) 0}.section+.section{border-top:1px solid var(--color-border)}.hero{text-align:center;padding:clamp(3rem,8vw,6rem) 0 clamp(2rem,4vw,3rem)}.hero__subtitle{color:var(--color-text-muted);max-width:600px;margin:0 auto 1.5rem;font-size:clamp(1.125rem,2.5vw,1.375rem);font-weight:400}.hero__date{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;margin:0 auto;font-size:.875rem}.company-cards{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:clamp(1rem,2vw,1.5rem);margin:clamp(1.5rem,3vw,2rem) 0;display:grid}.company-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:clamp(1.25rem,2vw,1.75rem);transition:border-color .2s,box-shadow .2s}.company-card:hover{border-color:var(--color-accent);box-shadow:0 4px 12px #00000014}[data-theme=dark] .company-card:hover{box-shadow:0 4px 12px #0000004d}.company-card__name{font-family:var(--font-display);color:var(--color-accent);margin-bottom:.5rem;font-size:1.25rem}.company-card__tagline{color:var(--color-text-muted);margin-bottom:.75rem;font-size:.875rem;font-style:italic;font-weight:600}.company-card__details{font-size:.9375rem;line-height:1.6}.company-card__details li{margin-bottom:.25rem}.table-wrapper{-webkit-overflow-scrolling:touch;width:100%;margin:clamp(1.5rem,3vw,2rem) 0;overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:600px;font-size:.9375rem}caption{font-family:var(--font-display);text-align:left;color:var(--color-text);margin-bottom:.75rem;font-size:1.125rem;font-weight:400}thead{background:var(--color-surface);border-bottom:2px solid var(--color-border)}th{text-align:left;white-space:nowrap;color:var(--color-text);padding:.75rem 1rem;font-weight:600}td{border-bottom:1px solid var(--color-border);vertical-align:top;padding:.75rem 1rem}tbody tr:hover{background:var(--color-code-bg)}.stat-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem;margin:1.5rem 0;display:grid}.stat-item{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);text-align:center;padding:1.25rem}.stat-item__value{font-family:var(--font-display);color:var(--color-accent);margin-bottom:.25rem;font-size:1.75rem;display:block}.stat-item__label{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.8125rem}.skill-bar{margin-bottom:.75rem}.skill-bar__header{justify-content:space-between;margin-bottom:.25rem;font-size:.9375rem;display:flex}.skill-bar__track{background:var(--color-border);border-radius:4px;height:8px;overflow:hidden}.skill-bar__fill{background:var(--color-accent);border-radius:4px;height:100%;transition:width .6s}.career-ladder{flex-direction:column;gap:0;margin:1.5rem 0;display:flex;position:relative}.career-step{align-items:flex-start;gap:1rem;padding:1rem 0;display:flex;position:relative}.career-step__marker{background:var(--color-accent);z-index:1;border-radius:50%;flex-shrink:0;width:12px;height:12px;margin-top:.35rem;position:relative}.career-step:not(:last-child) .career-step__marker:after{content:"";background:var(--color-border);width:2px;height:calc(100% + 1rem);position:absolute;top:12px;left:50%;transform:translate(-50%)}.career-step__content h4{margin-top:0;margin-bottom:.25rem}.career-step__content p{color:var(--color-text-muted);margin-bottom:0;font-size:.9375rem}.practice-list{padding:0;list-style:none}.practice-list li{border-bottom:1px solid var(--color-border);padding:.75rem 0 .75rem 2rem;position:relative}.practice-list li:before{content:"→";color:var(--color-accent);font-weight:600;position:absolute;left:0}.failure-modes{background:var(--color-surface);border:1px solid var(--color-warning);border-left:4px solid var(--color-warning);border-radius:0 var(--radius) var(--radius) 0;margin:1.5rem 0;padding:clamp(1rem,2vw,1.5rem)}.failure-modes h4{color:var(--color-warning);margin-top:0}.search-container{position:relative}.search-input{font-family:var(--font-body);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text);width:200px;padding:.4rem .75rem .4rem 2rem;font-size:.875rem;transition:border-color .2s,width .2s}.search-input:focus{border-color:var(--color-accent);outline:2px solid var(--color-accent);outline-offset:1px;width:260px}.search-icon{width:14px;height:14px;color:var(--color-text-muted);pointer-events:none;position:absolute;top:50%;left:.6rem;transform:translateY(-50%)}.search-results{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);z-index:200;min-width:280px;max-height:320px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 8px 24px #0000001f}[data-theme=dark] .search-results{box-shadow:0 8px 24px #0006}.search-result-item{color:var(--color-text);border-bottom:1px solid var(--color-border);padding:.6rem .75rem;font-size:.875rem;text-decoration:none;transition:background .15s;display:block}.search-result-item:last-child{border-bottom:none}.search-result-item:hover,.search-result-item[aria-selected=true]{background:var(--color-code-bg);color:var(--color-accent);text-decoration:none}.search-result-item__section{color:var(--color-text-muted);font-size:.75rem;display:block}.search-no-results{color:var(--color-text-muted);text-align:center;padding:.75rem;font-size:.875rem}.lang-select-wrapper{align-items:center;gap:.25rem;display:flex}.lang-select-wrapper label{color:var(--color-text-muted);font-size:.75rem}.lang-select{font-family:var(--font-body);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);cursor:pointer;padding:.3rem .5rem;font-size:.8125rem}.lang-select:focus{outline:2px solid var(--color-accent);outline-offset:1px}.theme-toggle{border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;color:var(--color-text);background:0 0;justify-content:center;align-items:center;padding:.35rem;transition:border-color .2s,background .2s;display:flex}.theme-toggle:hover{border-color:var(--color-accent);background:var(--color-code-bg)}.theme-toggle svg{width:18px;height:18px}.site-footer{border-top:1px solid var(--color-border);color:var(--color-text-muted);margin-top:clamp(2rem,4vw,3rem);padding:clamp(2rem,4vw,3rem) 0;font-size:.875rem}.site-footer__inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.site-footer__links{flex-wrap:wrap;gap:1.5rem;display:flex}.site-footer__links a{color:var(--color-text-muted);font-size:.8125rem;text-decoration:none}.site-footer__links a:hover{color:var(--color-accent)}body,.site-header,.company-card,.stat-item,.search-input,.search-results,.lang-select,.theme-toggle{transition:background-color .3s,color .3s,border-color .3s}.cite{vertical-align:super;margin-left:1px;font-size:.7em;line-height:1}.cite a{color:var(--color-accent);font-weight:500;text-decoration:none}.cite a:hover{text-decoration:underline}.references-list{counter-reset:none;padding:0;list-style:none}.reference-item{border-bottom:1px solid var(--color-border);scroll-margin-top:calc(var(--nav-height) + 1rem);gap:.75rem;padding:.75rem 0;font-size:.9375rem;line-height:1.6;display:flex}.reference-item:target{background:var(--color-highlight);border-radius:var(--radius-sm);margin-left:-.5rem;margin-right:-.5rem;padding-left:.5rem;padding-right:.5rem}.reference-item__num{font-family:var(--font-code);color:var(--color-accent);flex-shrink:0;min-width:2rem;font-size:.8125rem;font-weight:600}.reference-item__body{flex:1}.reference-item__body a{word-break:break-all;font-size:.8125rem}.reference-item__body em{color:var(--color-text-muted);font-size:.875rem;font-style:normal}@media (width<=768px){.site-header__inner{flex-wrap:wrap;gap:.5rem}.search-input{width:140px}.search-input:focus{width:180px}.company-cards{grid-template-columns:1fr}.stat-grid{grid-template-columns:repeat(2,1fr)}table{font-size:.8125rem}th,td{padding:.5rem .75rem}}@media (width<=480px){.site-header__controls{gap:.5rem}.stat-grid{grid-template-columns:1fr 1fr}.search-input,.search-input:focus{width:120px}}.skip-link{z-index:1000;background:var(--color-accent);color:#fff;border-radius:var(--radius);padding:.75rem 1.25rem;font-weight:600;text-decoration:none;transition:top .2s;position:absolute;top:-100%;left:1rem}.skip-link:focus{outline:3px solid var(--color-accent-hover);outline-offset:2px;top:.75rem}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:2px}a:focus-visible,button:focus-visible,select:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}html{scroll-behavior:auto}}@media (width<=320px){body{overflow-x:hidden}.container,.container--wide,.site-header__inner{padding:0 .75rem}h1{font-size:1.75rem}h2{font-size:1.375rem}.search-input,.search-input:focus{width:100px}.site-header__logo{font-size:.875rem}table{font-size:.75rem}}@media (forced-colors:active){.skill-bar__fill,.career-step__marker{background:linktext}.scroll-progress{background:highlight}.company-card{border:2px solid buttontext}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (resolution>=192dpi){body{font-size:1rem}}
