:root{--bg:#f4f1ea;--ink:#23291f;--muted:#5d6657;--accent:#3f6b3a;--card:#fffdf8;--line:#d9d3c4;--font:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--serif:Georgia, "Times New Roman", serif}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font:17px/1.55 var(--font);margin:0}a{color:var(--accent)}h1{margin:.2em 0;font-size:clamp(2rem,6vw,3rem);line-height:1.1}h2{margin:0 0 1rem;font-size:1.6rem}h3{margin:0 0 .25rem;font-size:1.1rem}h4{margin:.75rem 0 .25rem;font-size:.95rem}.skip{position:absolute;left:-999px}.skip:focus{z-index:10;background:var(--card);padding:.5rem 1rem;top:1rem;left:1rem}.site-header{z-index:5;background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;padding:.6rem 1rem;display:flex;position:sticky;top:0}.brand{color:var(--ink);font-weight:700;text-decoration:none}.lang-switch{gap:.6rem;display:flex}.lang-switch a[aria-current]{color:var(--ink);font-weight:700;text-decoration:none}.cv-link{color:var(--muted);white-space:nowrap;font-size:.8rem}.intro{flex-wrap:wrap;align-items:center;gap:1.25rem;display:flex}.intro>div{flex:14rem}.intro h1{margin-top:0}.portrait{aspect-ratio:4/5;object-fit:cover;border:4px solid var(--card);width:9rem;height:auto;box-shadow:0 0 0 2px var(--accent), 0 6px 18px #00000026;border-radius:14px;flex:none}html[data-mode="3d"] .portrait{width:6.5rem}.cta{flex-wrap:wrap;gap:.6rem;display:flex}.button{background:var(--accent);color:#fff;border-radius:999px;padding:.55rem 1.1rem;font-weight:600;text-decoration:none;display:inline-block}.button+.button{background:var(--card);color:var(--accent);border:1px solid var(--accent)}.trail{max-width:44rem;margin:0 auto;padding:1rem 1rem 4rem}.trail>section{border-bottom:1px dashed var(--line);padding:2.5rem 0}[id^=stop-],article{scroll-margin-top:4.5rem}.transition{color:var(--muted);text-align:center;margin:0 0 1.5rem;font-style:italic}.sign{font-family:var(--serif);background:var(--card);border-left:4px solid var(--accent);margin:0 0 1.25rem;padding:.75rem 1rem;font-size:1.15rem}.headline{color:var(--accent);font-weight:600}.meta{color:var(--muted);overflow-wrap:anywhere;margin:0 0 .5rem;font-size:.92rem}.timeline>li,.passions>li{margin-bottom:1.2rem}article{background:var(--card);border:1px solid var(--line);border-radius:10px;margin:0 0 1rem;padding:1rem 1.1rem}article[data-status=abandoned]{border-style:dashed}.stack{flex-wrap:wrap;gap:.35rem;margin:.5rem 0;padding:0;list-style:none;display:flex}.stack li{background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:.1rem .55rem;font-size:.8rem}#scene[hidden],.step-nav[hidden]{display:none}html[data-mode="3d"],html[data-mode="3d"] body{overscroll-behavior:none;height:100%;overflow:hidden}html[data-mode="3d"] body{touch-action:none}#scene{width:100vw;height:100vh;display:block;position:fixed;inset:0}html[data-mode="3d"] .site-header{position:fixed;left:0;right:0}html[data-mode="3d"] .trail{z-index:4;background:color-mix(in srgb, var(--card) 94%, transparent);touch-action:pan-y;overscroll-behavior:contain;border-radius:14px;width:min(26rem,100vw - 2rem);max-height:calc(100vh - 9rem);margin:0;padding:0 1.1rem;position:fixed;top:4.5rem;right:1rem;overflow-y:auto;box-shadow:0 10px 30px #0000002e}html[data-mode="3d"] .trail:not(.has-current){display:none}html[data-mode="3d"] .trail>section{border:0;padding:1.2rem 0;display:none}html[data-mode="3d"] .trail>section.is-current{display:block}.step-nav{z-index:5;gap:.5rem;display:flex;position:fixed;bottom:1rem;left:50%;transform:translate(-50%)}.step-nav button{font:inherit;border:1px solid var(--line);background:var(--card);color:var(--ink);cursor:pointer;white-space:nowrap;border-radius:999px;padding:.55rem 1rem;font-size:.95rem}@media (max-width:40rem){html[data-mode="3d"] .trail{width:auto;max-height:45vh;inset:auto .5rem 4.25rem}.step-nav{gap:.4rem;bottom:.75rem}.step-nav button{padding:.5rem .8rem;font-size:.85rem}}.cv{max-width:48rem;margin:0 auto;padding:1.5rem 1rem 4rem}.cv section{margin-top:2rem}.cv .entry{margin-bottom:1rem}@media print{.site-header,.skip,#scene,.step-nav{display:none!important}body{background:#fff;font-size:11pt}.cv a{color:inherit;text-decoration:none}.cv .entry{break-inside:avoid}}
