@property --bg{syntax: "<color>"; inherits: true; initial-value: #efe6db;}@property --bg-deep{syntax: "<color>"; inherits: true; initial-value: #d7c5b0;}:root{transition:--bg 1s cubic-bezier(.25,.75,.75,1),--bg-deep 1s cubic-bezier(.25,.75,.75,1);--bg: #efe6db;--bg-deep: #d7c5b0;--surface: #fbf8f4;--surface-2: #f4ece3;--fg: #2b211b;--muted: #6d5f54;--line: #e2d5c6;--accent: #6a4630;--accent-ink: #ffffff;--accent-soft: #efe1d1;--danger: #b3261e;--shadow: 0 18px 48px -18px rgba(70, 45, 25, .3);--font-display: "Unbounded", "Trebuchet MS", system-ui, sans-serif;--font-body: "Figtree", "Segoe UI", system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, Menlo, Consolas, monospace;--step--1: .8125rem;--step-0: 1rem;--step-1: 1.2rem;--step-2: 1.5rem}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #1c1619;--bg-deep: #09070a;--surface: #1d171b;--surface-2: #271f24;--fg: #f2eae6;--muted: #b5a69f;--line: #3b3036;--accent: #ff6ad9;--accent-ink: #22091d;--accent-soft: #3d2236;--danger: #ff8a80;--shadow: 0 18px 48px -18px rgba(0, 0, 0, .75);color-scheme:dark}}:root[data-theme=dark]{--bg: #1c1619;--bg-deep: #09070a;--surface: #1d171b;--surface-2: #271f24;--fg: #f2eae6;--muted: #b5a69f;--line: #3b3036;--accent: #ff6ad9;--accent-ink: #22091d;--accent-soft: #3d2236;--danger: #ff8a80;--shadow: 0 18px 48px -18px rgba(0, 0, 0, .75);color-scheme:dark}:root[data-mode=day]{--bg: #efe6db;--bg-deep: #d7c5b0;--surface: #fbf8f4;--surface-2: #f4ece3;--fg: #2b211b;--muted: #6d5f54;--line: #e2d5c6;--accent: #6a4630;--accent-ink: #ffffff;--accent-soft: #efe1d1;--danger: #b3261e;--shadow: 0 18px 48px -18px rgba(70, 45, 25, .3);color-scheme:light}:root[data-mode=night]{--bg: #1c1619;--bg-deep: #09070a;--surface: #1d171b;--surface-2: #271f24;--fg: #f2eae6;--muted: #b5a69f;--line: #3b3036;--accent: #ff6ad9;--accent-ink: #22091d;--accent-soft: #3d2236;--danger: #ff8a80;--shadow: 0 18px 48px -18px rgba(0, 0, 0, .75);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html,body{height:100%}body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--font-body);font-size:var(--step-0);line-height:1.55;overflow:hidden}body.is-flat{overflow:auto}#root{height:100%}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}p{margin:0}h2,h3{text-wrap:balance}.muted{color:var(--muted)}.topbar{position:fixed;inset:0 0 auto 0;z-index:30;display:flex;align-items:center;gap:12px;padding:calc(env(safe-area-inset-top,0px) + 12px) 16px 12px;pointer-events:none}.topbar>*{pointer-events:auto}.app-flat .topbar{background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.brand{display:inline-flex;align-items:center;gap:10px;padding:6px 12px 6px 6px;border:1px solid var(--line);border-radius:999px;background:var(--surface);min-width:0}.brand-mark{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--accent);color:var(--accent-ink);font-family:var(--font-mono);font-size:.72rem;font-weight:500}.brand-name{font-family:var(--font-display);font-weight:600;font-size:.85rem;letter-spacing:.01em;white-space:nowrap}.nav{margin-inline:auto;display:flex;gap:4px;padding:4px;border:1px solid var(--line);border-radius:999px;background:var(--surface)}.nav-link{border:0;background:none;padding:7px 14px;border-radius:999px;font-weight:600;font-size:.9rem;color:var(--muted)}.nav-link:hover,.nav-link[aria-current=page]{background:var(--accent-soft);color:var(--fg)}.tools{display:flex;gap:6px;margin-left:auto}.nav+.tools{margin-left:0}.tool{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:40px;height:40px;padding:0 10px;border:1px solid var(--line);border-radius:999px;background:var(--surface);font-family:var(--font-mono);font-size:.8rem;font-weight:500;flex-shrink:0}.tool:hover{border-color:var(--accent)}.tool-text{font-family:var(--font-body);font-weight:600}@media (max-width: 759px){.tool-text{display:none}}.stage{position:fixed;top:0;right:0;bottom:0;left:0;background:radial-gradient(120% 90% at 50% 35%,var(--bg) 0%,var(--bg-deep) 100%)}.stage canvas{touch-action:none}.loading,.hint{position:absolute;left:16px;bottom:calc(env(safe-area-inset-bottom,0px) + 16px);margin:0;padding:8px 14px;border-radius:999px;background:color-mix(in srgb,var(--surface) 85%,transparent);border:1px solid var(--line);color:var(--muted);font-size:var(--step--1);max-width:calc(100% - 32px)}.loading{left:50%;bottom:50%;transform:translate(-50%,50%)}@media (max-width: 759px){.hint{left:50%;transform:translate(-50%);white-space:nowrap;bottom:calc(env(safe-area-inset-bottom,0px) + 76px)}}.tag{display:inline-flex;align-items:center;gap:7px;padding:6px 12px 6px 9px;border-radius:999px;border:1px solid var(--line);background:color-mix(in srgb,var(--surface) 92%,transparent);font-size:var(--step--1);font-weight:600;white-space:nowrap;box-shadow:0 6px 18px -8px #00000059;transition:background-color .2s ease,color .2s ease,transform .2s ease;-webkit-user-select:none;user-select:none}@media (max-width: 759px){.tag{padding:4px 9px 4px 7px;font-size:.72rem;gap:5px}}.tag.is-hover{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);transform:translateY(-2px)}.tag-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 color-mix(in srgb,var(--accent) 60%,transparent);animation:pulse 2.2s ease-out infinite}.tag.is-hover .tag-dot{background:var(--accent-ink)}@keyframes pulse{0%{box-shadow:0 0 color-mix(in srgb,var(--accent) 55%,transparent)}70%,to{box-shadow:0 0 0 9px transparent}}.panel{position:absolute;z-index:25;top:calc(env(safe-area-inset-top,0px) + 76px);right:16px;bottom:16px;width:min(460px,42vw);display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);animation:slide-in .45s cubic-bezier(.2,.8,.2,1) both}@keyframes slide-in{0%{transform:translate(24px);opacity:.2}to{transform:none;opacity:1}}.panel-top{position:absolute;top:14px;right:14px;z-index:1}.panel-body{flex:1;overflow-y:auto;padding:18px 20px 24px;display:grid;align-content:start;gap:14px;min-width:0}@media (max-width: 759px){.panel{top:auto;left:0;right:0;bottom:calc(env(safe-area-inset-bottom,0px) + 64px);width:auto;height:58%;border-radius:22px 22px 0 0;border-bottom:0;animation-name:sheet-in}@keyframes sheet-in{0%{transform:translateY(32px);opacity:.2}to{transform:none;opacity:1}}}.screen{position:absolute;left:0;top:0;z-index:22;visibility:hidden;display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden;container-type:size;background:var(--scr-bg);color:var(--scr-fg);color-scheme:dark;animation:screen-on .24s cubic-bezier(.2,.8,.2,1) both}@keyframes screen-on{0%{clip-path:inset(50% 0 50% 0);opacity:.3}to{clip-path:inset(0);opacity:1}}.screen--monitor{--scr-bg: #141119;--scr-bar: #221f2a;--scr-card: #1e1a25;--scr-line: #3c3547;--scr-fg: #e6e2e0;--scr-muted: #b5adb0;--scr-accent: #e786cc;--scr-accent-soft: #4a2645;--scr-dot-1: #ea7491;--scr-dot-2: #e0c18a;--scr-dot-3: #89caa9;--surface: var(--scr-bg);--surface-2: var(--scr-card);--fg: var(--scr-fg);--muted: var(--scr-muted);--line: var(--scr-line);--accent: var(--scr-accent);--accent-ink: #1d0a19;--accent-soft: var(--scr-accent-soft)}:root[data-mode=night] .screen--monitor{--scr-bg: #1e1b25;--scr-bar: #312c3a;--scr-card: #2b2634;--scr-line: #51495e;--scr-fg: #eeebea;--scr-muted: #cbc5c7;--scr-accent: #f4a4dd;--scr-accent-soft: #62355c;--scr-dot-1: #f894ac;--scr-dot-2: #ecd5a7;--scr-dot-3: #a9dcc1}.win-bar{position:relative;display:flex;align-items:center;justify-content:center;height:3.6cqw;background:var(--scr-bar)}.win-dots{position:absolute;left:1.45cqw;display:flex;gap:.5cqw}.win-dots i{width:.9cqw;height:.9cqw;border-radius:50%;background:var(--scr-dot-1)}.win-dots i:nth-child(2){background:var(--scr-dot-2)}.win-dots i:nth-child(3){background:var(--scr-dot-3)}.win-path{font-family:var(--font-mono);font-weight:500;font-size:1.25cqw;line-height:1;color:var(--scr-muted)}.win-close{position:absolute;right:calc(2.2cqw - (max(2.6cqw,28px)/2));display:grid;place-items:center;width:max(2.6cqw,28px);height:max(2.6cqw,28px);padding:0;border:0;border-radius:6px;background:none;color:var(--scr-muted)}.win-close svg{width:2cqw;height:2cqw}.win-close:hover{background:var(--scr-line);color:var(--scr-fg)}.win-scroll{container:win / inline-size;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;scrollbar-color:var(--scr-line) transparent;display:grid;align-content:start;gap:.9em;padding:2.4cqw 2.6cqw 3cqw;font-size:clamp(14px,1.4cqw,32px);--step--1: .8125em;--step-0: 1em;--step-1: 1.2em;--step-2: 1.5em}.win-scroll .section-head{padding-right:0;gap:.75em}.win-scroll .section-icon{width:2.3em;height:2.3em;border-radius:.6em}.win-scroll .section-icon svg{width:1.2em;height:1.2em}.win-scroll .text-link svg,.win-scroll .badge svg{width:1em;height:1em}@container win (min-width: 720px){.win-scroll .project{grid-template-columns:minmax(0,2fr) minmax(0,3fr);column-gap:1.4em;align-items:start;padding:1em}}@container win (max-width: 719px){.win-scroll .project-media{max-height:30cqh}}.win-task{display:flex;align-items:center;gap:.8cqw;height:max(4cqw,40px);padding:0 1cqw 0 2.6cqw;background:var(--scr-bar)}.win-hint{margin-right:auto;font-family:var(--font-mono);font-size:max(1.1cqw,12px);line-height:1;color:var(--scr-muted);white-space:nowrap}@media (hover: none){.win-hint{visibility:hidden}}.win-btn{display:inline-flex;align-items:center;gap:.5em;height:max(2.7cqw,30px);padding:0 1.1em;border:1px solid var(--scr-line);border-radius:999px;background:none;color:var(--scr-fg);font-size:max(1.15cqw,13px);font-weight:600;white-space:nowrap}.win-btn svg{width:1.3em;height:1.3em}.win-btn:hover{border-color:var(--scr-accent)}.win-btn-primary{border-color:var(--scr-accent);background:var(--scr-accent);color:var(--accent-ink)}.section-head{padding-right:52px;display:flex;align-items:center;gap:12px}.section-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--accent-soft);color:var(--fg);flex-shrink:0}.section-head h2{margin:0;font-family:var(--font-display);font-weight:600;font-size:var(--step-2);letter-spacing:-.01em;line-height:1.15}.section-head h2:focus{outline:none}.mini-title{margin:6px 0 0;font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:600}.chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.chips li{padding:4px 10px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);font-size:var(--step--1);font-weight:500}.chips-mono li{font-family:var(--font-mono);font-size:.72em}.about{display:grid;gap:12px}.about-hero{display:flex;align-items:center;gap:14px}.avatar{display:grid;place-items:center;width:60px;height:60px;border-radius:18px;background:var(--accent);color:var(--accent-ink);font-family:var(--font-display);font-weight:600;font-size:1.1rem;flex-shrink:0}img.avatar{object-fit:cover}.about-id{display:grid;gap:2px;min-width:0}.about-name{font-weight:700;font-size:var(--step-1)}.about-place{display:inline-flex;align-items:center;gap:4px;font-size:var(--step--1);color:var(--muted)}.edu{list-style:none;margin:0;padding:0;display:grid;gap:8px}.edu li{display:grid;gap:2px}.edu-course{font-weight:600}.facts{margin:4px 0 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px 20px}.facts dd{margin:4px 0 0}.lang-switch{display:inline-flex;align-items:center;gap:4px;padding:4px;border:1px solid var(--line);border-radius:999px;width:fit-content;background:var(--surface-2)}.lang-switch-label{padding:0 8px;font-size:var(--step--1);color:var(--muted)}.lang-switch button{border:0;background:none;padding:4px 12px;border-radius:999px;font-size:var(--step--1);font-weight:600}.lang-switch button[aria-pressed=true]{background:var(--accent);color:var(--accent-ink)}.timeline{list-style:none;margin:14px 0 0;padding:0 0 0 22px;border-left:2px solid var(--line);display:grid;gap:22px}.timeline-item{position:relative;display:grid;gap:8px;min-width:0}.timeline-item:before{content:"";position:absolute;left:-30px;top:4px;width:14px;height:14px;border-radius:50%;background:var(--surface);border:3px solid var(--accent)}.timeline-date{font-family:var(--font-mono);font-size:.75em;color:var(--muted);font-variant-numeric:tabular-nums}.project{display:grid;gap:8px;padding:12px;border:1px solid var(--line);border-radius:16px;background:var(--surface-2);min-width:0}.project-body{display:grid;gap:8px;min-width:0}.project h3,.job h3{margin:0;font-size:var(--step-1);line-height:1.25}.project-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}.project-role{color:var(--muted);font-size:.92em}.project-links{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;margin-top:2px}.badge{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:999px;background:var(--accent-soft);font-size:.75em;font-weight:600;white-space:nowrap}.badge-quiet{background:none;border:1px dashed var(--line);color:var(--muted)}.project-media{width:100%;aspect-ratio:16 / 9;max-width:100%;border-radius:10px;object-fit:cover;border:1px solid var(--line)}.project-media-empty{display:grid;place-content:center;justify-items:center;gap:4px;color:var(--muted);font-family:var(--font-mono);font-size:.72em;background:repeating-linear-gradient(-45deg,transparent 0 10px,color-mix(in srgb,var(--line) 70%,transparent) 10px 11px),var(--surface);border:1px solid var(--line)}.text-link{display:inline-flex;align-items:center;gap:4px;width:fit-content;font-weight:600;color:var(--accent);text-decoration:none;border-bottom:1px solid currentColor}.jobs{list-style:none;margin:12px 0 0;padding:0;display:grid}.job{display:grid;gap:4px;padding:14px 0;border-top:1px solid var(--line)}.job:first-child{border-top:0;padding-top:4px}.job-period{font-family:var(--font-mono);font-size:.75rem;color:var(--muted);font-variant-numeric:tabular-nums}.job-org{display:inline-flex;align-items:center;gap:4px;width:fit-content;font-weight:600;color:var(--accent);text-decoration:none}a.job-org:hover{text-decoration:underline}.job .chips{margin-top:6px}.job-highlights{margin:6px 0 0;padding-left:18px;display:grid;gap:6px}.job-highlights li::marker{color:var(--muted)}.channels{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:8px}.channel{display:flex;align-items:center;gap:12px;padding:10px 10px 10px 12px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2)}.channel-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--accent-soft);flex-shrink:0}.channel-text{display:grid;min-width:0;flex:1}.channel-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:600}.channel-value{font-weight:600;overflow-wrap:break-word;-webkit-user-select:all;user-select:all}.btn-ghost{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:36px;padding:0 12px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--fg);font-size:var(--step--1);font-weight:600;text-decoration:none;flex-shrink:0}.btn-ghost:hover{border-color:var(--accent)}.form{display:grid;gap:12px;margin-top:18px}.field{display:grid;gap:5px}.field label{font-weight:600;font-size:.9rem}.field input,.field textarea{width:100%;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--surface-2);resize:vertical}.field input:focus-visible,.field textarea:focus-visible{outline:2px solid var(--accent);outline-offset:0;border-color:transparent}.field [aria-invalid=true]{border-color:var(--danger)}.field-error{color:var(--danger);font-size:var(--step--1)}.btn-primary{justify-self:start;padding:11px 20px;border:0;border-radius:999px;background:var(--accent);color:var(--accent-ink);font-weight:700}.btn-primary:disabled{opacity:.6;cursor:progress}.form-note{padding:10px 12px;border-radius:12px;background:var(--accent-soft);font-size:.9rem}.form-note.is-error{background:none;border:1px solid var(--danger);color:var(--danger)}.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.flat{max-width:720px;margin:0 auto;padding-inline:16px;padding-block:calc(env(safe-area-inset-top,0px) + 92px) 120px;display:grid;gap:40px}.flat-section{display:grid;gap:14px;scroll-margin-top:90px;min-width:0}.tabbar{position:fixed;inset:auto 0 0 0;z-index:30;display:grid;grid-template-columns:repeat(4,1fr);padding:6px 8px calc(env(safe-area-inset-bottom,0px) + 6px);background:var(--surface);border-top:1px solid var(--line);height:calc(64px + env(safe-area-inset-bottom,0px))}.tab{display:grid;justify-items:center;align-content:center;gap:2px;border:0;background:none;border-radius:12px;color:var(--muted);font-size:.7rem;font-weight:600;min-width:0}.tab span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tab[aria-current=page]{color:var(--fg);background:var(--accent-soft)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
