@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-mono-cyrillic-ext-700-normal-BDQ-w_bc.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-700-normal-CtgKGIh5.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-mono-cyrillic-700-normal-Bp80XfeI.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-700-normal-O_YjL27c.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-mono-vietnamese-700-normal-apsD3J7v.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-700-normal-Bs14ezHR.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-mono-latin-ext-700-normal-Dhimjc7-.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-700-normal-Cwsjk1Jb.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-mono-latin-700-normal-7sUh57Bg.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-700-normal-CNHXzs6v.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--sea-950: #021522;--sea-900: #062335;--sea-850: #0f3146;--sea-800: #1c4159;--sea-700: #2f5a77;--sea-600: #477696;--sea-500: #6492b3;--sea-400: #83acca;--sea-300: #a1c3db;--sea-200: #c0d7e8;--sea-150: #d4e5f1;--sea-100: #e4eff7;--sea-50: #f1f7fb;--teal-700: #0e6674;--teal-600: #218292;--teal-500: #409eae;--teal-400: #6db8c7;--teal-300: #97cfda;--teal-200: #c1e4eb;--brass-700: #82632f;--brass-600: #a47f43;--brass-500: #c59d5d;--brass-400: #dcb77f;--brass-300: #ebd0a7;--brass-200: #f5e6ce;--kelp-700: #446e56;--kelp-600: #588a6d;--kelp-500: #73a688;--kelp-400: #92bfa4;--kelp-300: #b1d5bf;--surface-page: var(--sea-50);--surface-raised: #ffffff;--surface-sunken: var(--sea-100);--surface-glass: rgba(241, 247, 251, .94);--surface-mist: rgba(219, 233, 242, .92);--ink-strong: var(--sea-950);--ink: var(--sea-900);--ink-soft: var(--sea-800);--ink-muted: var(--sea-700);--ink-faint: var(--sea-600);--line-hair: rgba(47, 90, 119, .16);--line: rgba(47, 90, 119, .28);--line-strong: rgba(47, 90, 119, .45);--accent: var(--teal-700);--accent-hover: var(--teal-600);--accent-wash: var(--teal-200);--marker: var(--brass-700);--visited: var(--kelp-700);--focus: var(--teal-600);--font-mono: "IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;--text-2xs: .6875rem;--text-xs: .75rem;--text-sm: .8125rem;--text-base: .9375rem;--text-md: 1rem;--text-lg: 1.125rem;--text-xl: 1.375rem;--text-2xl: 1.75rem;--text-3xl: 2.25rem;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--space-8: 64px;--r-sm: 4px;--r-md: 8px;--r-lg: 12px;--shadow-sm: 0 1px 2px rgba(6, 35, 53, .08);--shadow-md: 0 1px 2px rgba(6, 35, 53, .06), 0 6px 16px rgba(6, 35, 53, .1);--shadow-lg: 0 2px 4px rgba(6, 35, 53, .06), 0 16px 40px rgba(6, 35, 53, .16);--ease: cubic-bezier(.2, 0, 0, 1);--t-fast: .12s;--t-base: .18s;--t-slow: .28s;--z-panel: 100;--z-hud: 80;--z-hint: 85;--z-cv: 90;--z-veil: 200;--z-chrome: 220;--z-lang: 230;--z-loading: 500;color-scheme:light}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{width:100vw;height:100vh;overflow:hidden;background:var(--sea-100);color:var(--ink);font-family:var(--font-sans);font-size:var(--text-md);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{width:100%;height:100%}button{font:inherit;color:inherit;background:none;border:none}a{color:var(--accent);text-decoration-color:var(--teal-300);text-underline-offset:.18em}a:hover{color:var(--accent-hover);text-decoration-color:currentColor}.wrap-token{min-inline-size:0;overflow-wrap:anywhere}:where(a,button,[tabindex]):focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:var(--r-sm)}.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}.skip-link{position:absolute;top:var(--space-2);left:var(--space-2);z-index:999;transform:translateY(-200%);padding:var(--space-2) var(--space-4);border-radius:var(--r-md);background:var(--surface-raised);color:var(--ink);font-family:var(--font-mono);font-size:var(--text-sm);box-shadow:var(--shadow-md);transition:transform var(--t-base) var(--ease)}.skip-link:focus-visible{transform:translateY(0)}.deck-glass{background:var(--surface-glass);border:1px solid var(--line);backdrop-filter:blur(14px) saturate(1.1);-webkit-backdrop-filter:blur(14px) saturate(1.1);box-shadow:var(--shadow-md)}.loading-screen{position:fixed;inset:0;z-index:var(--z-loading);display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% 32%,rgba(255,255,255,.75),transparent 62%),linear-gradient(180deg,var(--sea-100) 0%,var(--sea-200) 100%);transition:opacity .5s var(--ease)}.loading-screen--done{opacity:0;pointer-events:none}.loading-inner{width:min(84vw,380px);text-align:center;color:var(--ink)}.loading-title{font-size:var(--text-xl);font-weight:600;letter-spacing:-.01em;color:var(--ink-strong)}.loading-sub{margin-top:var(--space-2);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted)}.loading-bar{margin-top:var(--space-6);height:4px;width:100%;border-radius:2px;background:#2f5a7724;overflow:hidden}.loading-fill{height:100%;border-radius:2px;background:var(--teal-600);transition:width .25s var(--ease)}.loading-pct{margin-top:var(--space-3);font-family:var(--font-mono);font-size:var(--text-xs);font-variant-numeric:tabular-nums;letter-spacing:.06em;color:var(--ink-muted)}.fallback-3d{position:fixed;inset:0;z-index:95;display:flex;align-items:center;justify-content:center;padding:var(--space-5);background:radial-gradient(ellipse at 50% 30%,rgba(255,255,255,.7),transparent 60%),linear-gradient(180deg,var(--sea-100) 0%,var(--sea-200) 100%)}.fallback-3d-card{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-3);max-width:460px;padding:var(--space-6);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface-raised);box-shadow:var(--shadow-lg)}.fallback-3d-icon{color:var(--teal-600)}.fallback-3d-card h2{font-size:var(--text-lg);font-weight:600;letter-spacing:-.01em;color:var(--ink-strong)}.fallback-3d-card p{font-size:var(--text-base);line-height:1.65;color:var(--ink-soft)}.fallback-3d-cta{margin-top:var(--space-2);padding:10px var(--space-5);border-radius:var(--r-md);background:var(--teal-700);color:#fff;font-family:var(--font-mono);font-size:var(--text-sm);font-weight:500;letter-spacing:.04em;cursor:pointer;transition:background var(--t-base) var(--ease),transform var(--t-fast) var(--ease)}.fallback-3d-cta:hover{background:var(--teal-600)}.fallback-3d-cta:active{transform:translateY(1px)}.mode-selector{position:fixed;top:var(--space-4);left:50%;transform:translate(-50%);display:flex;padding:3px;border-radius:var(--r-lg);background:var(--surface-glass);border:1px solid var(--line);backdrop-filter:blur(14px) saturate(1.1);-webkit-backdrop-filter:blur(14px) saturate(1.1);box-shadow:var(--shadow-md);z-index:var(--z-chrome);animation:chrome-in var(--t-slow) var(--ease)}.mode-selector-thumb{position:absolute;top:3px;bottom:3px;left:3px;width:calc(50% - 3px);border-radius:9px;background:var(--sea-900);box-shadow:var(--shadow-sm);transition:transform var(--t-slow) var(--ease);pointer-events:none}.mode-selector-thumb--right{transform:translate(100%)}.mode-selector-btn{position:relative;z-index:1;flex:1;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-width:124px;min-height:40px;padding:var(--space-2) var(--space-4);border-radius:9px;font-family:var(--font-mono);font-size:var(--text-xs);font-weight:500;letter-spacing:.04em;color:var(--ink-muted);cursor:pointer;white-space:nowrap;transition:color var(--t-slow) var(--ease)}.mode-selector-btn:hover{color:var(--ink-strong)}.mode-selector-btn--active,.mode-selector-btn--active:hover{color:var(--sea-50)}.mode-selector-btn svg{flex-shrink:0}@keyframes chrome-in{0%{opacity:0;transform:translate(-50%) translateY(-6px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.lang-toggle{position:fixed;top:var(--space-4);right:var(--space-4);display:flex;align-items:center;gap:2px;padding:3px;border-radius:var(--r-md);background:var(--surface-glass);border:1px solid var(--line);backdrop-filter:blur(14px) saturate(1.1);-webkit-backdrop-filter:blur(14px) saturate(1.1);box-shadow:var(--shadow-md);z-index:var(--z-lang)}.lang-toggle-globe{display:flex;padding:0 var(--space-1) 0 var(--space-2);color:var(--ink-muted)}.lang-btn{min-width:40px;min-height:36px;padding:var(--space-1) var(--space-3);border-radius:5px;font-family:var(--font-mono);font-size:var(--text-xs);font-weight:500;letter-spacing:.06em;color:var(--ink-muted);cursor:pointer;transition:background var(--t-base) var(--ease),color var(--t-base) var(--ease)}.lang-btn:hover{background:#2f5a771a;color:var(--ink-strong)}.lang-btn--active,.lang-btn--active:hover{background:var(--sea-900);color:var(--sea-50);font-weight:700}.welcome-overlay{position:fixed;inset:0;z-index:var(--z-veil);display:flex;align-items:center;justify-content:center;padding:var(--space-5);background:var(--surface-mist);backdrop-filter:blur(16px) saturate(1.05);-webkit-backdrop-filter:blur(16px) saturate(1.05)}.welcome-content{display:flex;flex-direction:column;align-items:center;text-align:center;max-width:46rem}.welcome-name{font-size:clamp(1.75rem,5.5vw,var(--text-3xl));font-weight:600;letter-spacing:-.02em;line-height:1.15;color:var(--ink-strong);text-wrap:balance}.welcome-title{margin-top:var(--space-3);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted)}.welcome-rule{position:relative;width:64px;height:1px;margin:var(--space-5) 0;background:var(--line-strong)}.welcome-rule:after{content:"";position:absolute;top:-2px;left:50%;width:5px;height:5px;margin-left:-2.5px;background:var(--marker);transform:rotate(45deg)}.welcome-buttons{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-3)}.welcome-btn{display:inline-flex;align-items:center;gap:var(--space-2);min-height:44px;padding:var(--space-3) var(--space-5);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-raised);color:var(--ink-soft);font-family:var(--font-mono);font-size:var(--text-sm);font-weight:500;letter-spacing:.03em;cursor:pointer;white-space:nowrap;box-shadow:var(--shadow-sm);transition:background var(--t-base) var(--ease),color var(--t-base) var(--ease),border-color var(--t-base) var(--ease),transform var(--t-fast) var(--ease)}.welcome-btn:hover{border-color:var(--line-strong);color:var(--ink-strong)}.welcome-btn:active{transform:translateY(1px)}.welcome-btn--selected,.welcome-btn--selected:hover{background:var(--sea-900);border-color:var(--sea-900);color:var(--sea-50);box-shadow:var(--shadow-md)}.welcome-btn-caret{display:inline-block;width:.75em;color:var(--brass-400)}.welcome-btn--secondary .welcome-btn-caret{color:transparent}.welcome-hint{margin-top:var(--space-5);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.06em;color:var(--ink-muted)}.welcome-controls{margin-top:var(--space-2);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.06em;color:var(--ink-muted)}.island-marker{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);cursor:pointer;-webkit-user-select:none;user-select:none}.island-marker-diamond{display:block;width:12px;height:12px;background:var(--surface-raised);border:2px solid var(--sea-900);border-radius:2px;transform:rotate(45deg);box-shadow:var(--shadow-sm);animation:marker-pulse 2.4s var(--ease) infinite}.island-marker-label{padding:3px var(--space-2);border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-glass);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:var(--shadow-sm);font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);white-space:nowrap;pointer-events:none}@keyframes marker-pulse{0%,to{transform:rotate(45deg) scale(1)}50%{transform:rotate(45deg) scale(1.18)}}.island-panel{position:fixed;top:0;left:0;z-index:var(--z-panel);display:flex;flex-direction:column;width:min(400px,92vw);height:100vh;background:#f1f7fbf0;backdrop-filter:blur(20px) saturate(1.1);-webkit-backdrop-filter:blur(20px) saturate(1.1);border-right:1px solid var(--line);box-shadow:var(--shadow-lg);transform:translate(-100%);visibility:hidden;transition:transform var(--t-slow) var(--ease),visibility var(--t-slow);overflow:hidden}.island-panel--open{transform:translate(0);visibility:visible}.panel-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-shrink:0;padding:var(--space-5) var(--space-5) var(--space-4);border-bottom:1px solid var(--line-hair)}.panel-header-label{display:flex;align-items:baseline;gap:var(--space-2);min-width:0}.panel-header-index{font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:500;color:var(--marker);font-variant-numeric:tabular-nums}.panel-header-title{font-size:var(--text-lg);font-weight:600;letter-spacing:-.01em;color:var(--ink-strong);overflow-wrap:anywhere}.panel-close{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:32px;height:32px;border:1px solid var(--line);border-radius:var(--r-md);color:var(--ink-muted);cursor:pointer;transition:background var(--t-base) var(--ease),color var(--t-base) var(--ease),border-color var(--t-base) var(--ease)}.panel-close:hover{background:var(--surface-raised);border-color:var(--line-strong);color:var(--ink-strong)}.panel-content{flex:1;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-5);scrollbar-width:thin;scrollbar-color:var(--line) transparent}.panel-content::-webkit-scrollbar{width:6px}.panel-content::-webkit-scrollbar-track{background:transparent}.panel-content::-webkit-scrollbar-thumb{background:var(--line);border-radius:3px}.panel-card{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4);border:1px solid var(--line-hair);border-radius:var(--r-md);background:var(--surface-raised);box-shadow:var(--shadow-sm)}.panel-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3)}.panel-card-title{flex:1;min-width:0;font-size:var(--text-base);font-weight:600;line-height:1.35;color:var(--ink-strong);overflow-wrap:anywhere}.panel-card-link{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:28px;height:28px;margin:-4px -4px 0 0;border-radius:var(--r-sm);color:var(--accent);transition:background var(--t-base) var(--ease),color var(--t-base) var(--ease)}.panel-card-link:hover{background:var(--accent-wash);color:var(--teal-700)}.panel-card-desc{font-size:var(--text-base);line-height:1.6;color:var(--ink-soft)}.panel-meta{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-2);flex-wrap:wrap}.panel-meta-company{font-size:var(--text-sm);font-weight:500;color:var(--ink-muted)}.panel-meta-period{font-family:var(--font-mono);font-size:var(--text-xs);font-variant-numeric:tabular-nums;color:var(--marker);white-space:nowrap}.panel-bio{font-size:var(--text-md);line-height:1.7;color:var(--ink-soft)}.panel-section{display:flex;flex-direction:column;gap:var(--space-3)}.panel-section-title{padding-bottom:var(--space-2);border-bottom:1px solid var(--line-hair);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted)}.tag-list{display:flex;flex-wrap:wrap;gap:var(--space-2);list-style:none}.tag{padding:3px var(--space-2);border-radius:var(--r-sm);background:var(--surface-sunken);color:var(--ink-soft);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.02em;white-space:nowrap}.panel-link-list{display:flex;flex-direction:column;gap:var(--space-1)}.panel-link{display:flex;align-items:center;gap:var(--space-2);min-height:40px;padding:var(--space-2) var(--space-3);margin:0 calc(var(--space-3) * -1);border-radius:var(--r-md);font-size:var(--text-base);color:var(--ink);text-decoration:none;transition:background var(--t-base) var(--ease)}.panel-link:hover{background:var(--surface-raised);color:var(--accent)}.panel-link svg{flex-shrink:0;color:var(--accent)}.space-hint{position:fixed;bottom:84px;left:50%;transform:translate(-50%);z-index:var(--z-hint);display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-glass);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:var(--shadow-md);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:500;letter-spacing:.04em;color:var(--ink);white-space:nowrap;pointer-events:none;animation:hint-in var(--t-base) var(--ease)}.space-hint-key{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:22px;padding:0 var(--space-2);border:1px solid var(--brass-500);border-bottom-width:2px;border-radius:var(--r-sm);background:var(--brass-200);color:var(--brass-700);font-family:inherit;font-size:var(--text-xs);line-height:1}.space-hint--close .space-hint-key{border-color:var(--line-strong);background:var(--surface-sunken);color:var(--ink-muted)}@keyframes hint-in{0%{opacity:0;transform:translate(-50%) translateY(4px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.quick-nav{position:fixed;bottom:var(--space-5);left:50%;transform:translate(-50%);z-index:var(--z-hud);display:flex;gap:var(--space-1);padding:var(--space-1);border-radius:var(--r-lg);background:var(--surface-glass);border:1px solid var(--line);backdrop-filter:blur(14px) saturate(1.1);-webkit-backdrop-filter:blur(14px) saturate(1.1);box-shadow:var(--shadow-md);max-width:calc(100vw - var(--space-6));overflow-x:auto;scrollbar-width:none}.quick-nav::-webkit-scrollbar{display:none}.quick-nav-btn{display:flex;align-items:center;gap:var(--space-2);min-height:40px;padding:var(--space-2) var(--space-3);border-radius:var(--r-md);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:500;letter-spacing:.02em;color:var(--ink-muted);cursor:pointer;white-space:nowrap;transition:background var(--t-base) var(--ease),color var(--t-base) var(--ease)}.quick-nav-btn:hover{background:#2f5a7717;color:var(--ink-strong)}.quick-nav-num{font-size:var(--text-xs);font-variant-numeric:tabular-nums;color:var(--ink-muted)}.quick-nav-btn--target{color:var(--brass-700);box-shadow:inset 0 -2px 0 var(--brass-500)}.quick-nav-btn--target .quick-nav-num{color:var(--brass-600)}.quick-nav-btn--active,.quick-nav-btn--active:hover{background:var(--sea-900);color:var(--sea-50)}.quick-nav-btn--active .quick-nav-num{color:var(--sea-400)}.quick-nav-check{display:flex;color:var(--visited)}.quick-nav-btn--active .quick-nav-check{color:var(--kelp-400)}.minimap{position:fixed;bottom:78px;left:var(--space-4);z-index:var(--z-hud);border-radius:var(--r-lg);border:1px solid var(--line);box-shadow:var(--shadow-md)}.cv-view{position:fixed;inset:0;z-index:var(--z-cv);overflow-y:auto;background:var(--surface-page);color:var(--ink)}.cv-sheet{max-width:62rem;margin:0 auto;padding:84px var(--space-6) var(--space-8);animation:cv-enter var(--t-slow) var(--ease)}@keyframes cv-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.cv-header{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-5);flex-wrap:wrap;padding-bottom:var(--space-5);border-bottom:2px solid var(--sea-900)}.cv-name{font-size:clamp(var(--text-2xl),5vw,var(--text-3xl));font-weight:600;letter-spacing:-.02em;line-height:1.1;color:var(--ink-strong);text-wrap:balance}.cv-role{margin-top:var(--space-2);font-family:var(--font-mono);font-size:var(--text-sm);font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted)}.cv-download-btn{display:inline-flex;align-items:center;gap:var(--space-2);min-height:44px;padding:var(--space-3) var(--space-5);border-radius:var(--r-md);background:var(--sea-900);color:var(--sea-50);font-family:var(--font-mono);font-size:var(--text-sm);font-weight:500;letter-spacing:.03em;text-decoration:none;white-space:nowrap;box-shadow:var(--shadow-sm);transition:background var(--t-base) var(--ease),transform var(--t-fast) var(--ease)}.cv-download-btn:hover{background:var(--sea-800);color:var(--sea-50)}.cv-download-btn:active{transform:translateY(1px)}.cv-contact-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-5);padding:var(--space-4) 0;border-bottom:1px solid var(--line-hair);font-size:var(--text-base);font-style:normal;color:var(--ink-muted)}.cv-contact-item{display:inline-flex;align-items:center;gap:var(--space-2);min-width:0}.cv-contact-item svg{flex-shrink:0;color:var(--ink-faint)}.cv-contact-row a{color:var(--accent);text-decoration:none;overflow-wrap:anywhere}.cv-contact-row a:hover{text-decoration:underline}.cv-body{margin-top:var(--space-6)}.cv-section+.cv-section{margin-top:var(--space-7)}.cv-section-title{display:flex;align-items:baseline;gap:var(--space-3);margin-bottom:var(--space-4);padding-bottom:var(--space-2);border-bottom:1px solid var(--line);font-family:var(--font-mono);font-size:var(--text-sm);font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-strong)}.cv-section-index{font-weight:500;color:var(--marker);font-variant-numeric:tabular-nums}.cv-profile{max-width:68ch;font-size:var(--text-md);line-height:1.7;color:var(--ink-soft)}.cv-columns{display:grid;grid-template-columns:minmax(0,1fr) 264px;gap:var(--space-7);align-items:start;margin-top:var(--space-7)}.cv-entry+.cv-entry{margin-top:var(--space-5);padding-top:var(--space-5);border-top:1px solid var(--line-hair)}.cv-entry-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}.cv-entry-head h3{flex:1;min-width:0;font-size:var(--text-lg);font-weight:600;line-height:1.3;letter-spacing:-.01em;color:var(--ink-strong);overflow-wrap:anywhere}.cv-entry-head h3 a{display:inline-flex;align-items:center;gap:.35em;color:var(--ink-strong);text-decoration:none}.cv-entry-head h3 a:hover{color:var(--accent);text-decoration:underline}.cv-entry-head h3 svg{flex-shrink:0;color:var(--accent)}.cv-entry-period{font-family:var(--font-mono);font-size:var(--text-xs);font-variant-numeric:tabular-nums;letter-spacing:.02em;color:var(--marker);white-space:nowrap}.cv-entry-company{margin-top:var(--space-1);font-size:var(--text-base);font-weight:500;color:var(--ink-muted)}.cv-entry-desc{max-width:68ch;margin-top:var(--space-3);font-size:var(--text-base);line-height:1.65;color:var(--ink-soft)}.cv-entry-notes{max-width:68ch;margin-top:var(--space-3);padding-left:var(--space-4);font-size:var(--text-base);line-height:1.65;color:var(--ink-soft)}.cv-entry-notes li::marker{color:var(--teal-500)}.cv-entry-notes li+li{margin-top:var(--space-1)}.cv-entry .tag-list{margin-top:var(--space-3)}.cv-col-side{position:sticky;top:84px}.cv-skill-group+.cv-skill-group{margin-top:var(--space-4)}.cv-skill-category{margin-bottom:var(--space-2);font-size:var(--text-sm);font-weight:600;color:var(--ink-strong)}.cv-langs{list-style:none}.cv-langs li{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) 0;font-size:var(--text-base);color:var(--ink)}.cv-langs li+li{border-top:1px solid var(--line-hair)}.cv-lang-level{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.04em;color:var(--ink-muted);white-space:nowrap}@media(max-width:900px){.cv-columns{grid-template-columns:minmax(0,1fr);gap:var(--space-7)}.cv-col-side{position:static}}@media(pointer:coarse){.space-hint{display:none}.lang-btn,.mode-selector-btn,.quick-nav-btn{min-height:44px}.panel-close{width:44px;height:44px}}@media(max-width:840px),(max-height:500px){.cv-sheet{padding-top:72px}.cv-col-side{top:var(--space-4)}}@media(max-width:560px){.cv-sheet{padding:68px var(--space-4) var(--space-7)}.cv-header{align-items:flex-start}.cv-download-btn{width:100%;justify-content:center}.cv-contact-row{flex-direction:column;align-items:stretch;gap:0;padding-bottom:0}.cv-contact-item{min-height:44px;padding:var(--space-2) 0}.cv-contact-item+.cv-contact-item{border-top:1px solid var(--line-hair)}.cv-section+.cv-section,.cv-columns{margin-top:var(--space-6)}}@media print{body{overflow:visible;background:#fff}.mode-selector,.lang-toggle,.cv-download-btn,.skip-link{display:none!important}.cv-view{position:static;overflow:visible;background:#fff}.cv-sheet{max-width:none;padding:0;animation:none}.cv-col-side{position:static}.cv-entry,.cv-section{break-inside:avoid}a{color:var(--ink);text-decoration:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
