:root{--bg:oklch(0.98 0.005 130);--surface:oklch(0.95 0.008 130);--surface-2:oklch(0.92 0.01 130);--ink:oklch(0.18 0.015 145);--ink-2:oklch(0.36 0.012 145);--muted:oklch(0.52 0.012 145);--line:oklch(0.87 0.01 130);--line-2:oklch(0.91 0.008 130);--accent:oklch(0.5 0.08 110);--accent-ink:oklch(0.28 0.06 110);--on-accent:#ffffff;--success:oklch(0.55 0.1 145);--warning:oklch(0.65 0.12 75);--danger:oklch(0.55 0.15 28);--f-display:var(--font-dm-serif-display),"Cormorant Garamond",Georgia,serif;--f-body:var(--font-ibm-plex-sans),"Helvetica Neue",system-ui,sans-serif;--f-mono:var(--font-ibm-plex-mono),"JetBrains Mono",ui-monospace,monospace;--t-xs:11px;--t-sm:12px;--t-base:14px;--t-md:16px;--t-lg:18px;--t-xl:22px;--t-2xl:28px;--t-3xl:36px;--t-4xl:48px;--t-5xl:64px;--t-6xl:84px;--t-7xl:104px;--lh-tight:1.05;--lh-snug:1.3;--lh-base:1.55;--lh-loose:1.75;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:20px;--s-6:24px;--s-8:32px;--s-10:40px;--s-12:48px;--s-14:56px;--s-16:64px;--s-20:80px;--r-xs:2px;--r-sm:4px;--r-md:7px;--r-lg:10px;--r-pill:999px;--sh-1:0 1px 2px rgba(20,22,18,0.04);--sh-2:0 2px 6px rgba(20,22,18,0.06),0 1px 2px rgba(20,22,18,0.04);--sh-3:0 8px 24px rgba(20,22,18,0.08),0 1px 3px rgba(20,22,18,0.04);--ease-out:cubic-bezier(0.2,0.7,0.3,1);--t-fast:120ms;--t-med:220ms;--t-slow:380ms;--w-narrow:720px;--w-content:1080px;--w-wide:1280px;--w-max:1440px}[data-theme=warm]{--bg:oklch(0.985 0.004 75);--surface:oklch(0.97 0.005 75);--surface-2:oklch(0.94 0.006 75);--ink:oklch(0.18 0.012 60);--ink-2:oklch(0.36 0.012 60);--muted:oklch(0.55 0.012 60);--line:oklch(0.88 0.006 75);--line-2:oklch(0.92 0.005 75);--accent:oklch(0.58 0.12 38)}[data-theme=ink]{--bg:oklch(0.98 0.004 250);--surface:oklch(0.95 0.007 250);--surface-2:oklch(0.92 0.01 250);--ink:oklch(0.18 0.02 250);--ink-2:oklch(0.36 0.018 250);--muted:oklch(0.52 0.015 250);--line:oklch(0.88 0.008 250);--line-2:oklch(0.92 0.006 250);--accent:oklch(0.45 0.1 245)}[data-theme=noir]{--bg:oklch(0.18 0.008 60);--surface:oklch(0.22 0.008 60);--surface-2:oklch(0.26 0.01 60);--ink:oklch(0.96 0.005 75);--ink-2:oklch(0.78 0.008 75);--muted:oklch(0.58 0.008 75);--line:oklch(0.32 0.01 60);--line-2:oklch(0.28 0.008 60);--accent:oklch(0.72 0.13 60);--on-accent:oklch(0.18 0.008 60)}[data-brand]{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;line-height:var(--lh-base);letter-spacing:-.005em;font-size:var(--t-base)}[data-brand] img,[data-brand] svg{display:block;max-width:100%}[data-brand] a{color:inherit;text-decoration:none}[data-brand] h1,[data-brand] h2,[data-brand] h3,[data-brand] h4{font-family:var(--f-display);font-weight:400;letter-spacing:-.02em;line-height:var(--lh-tight);color:var(--ink);margin:0}[data-brand] p{margin:0}.jh-h1,.jh-h2,.jh-h3,.jh-h4{font-family:var(--f-display);font-weight:400;letter-spacing:-.02em;line-height:var(--lh-tight);margin:0}.jh-h1{font-size:var(--t-7xl)}.jh-h2{font-size:var(--t-4xl)}.jh-h3{font-size:var(--t-2xl)}.jh-h4{font-size:var(--t-xl)}.jh-eyebrow{font-family:var(--f-mono);font-size:var(--t-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.jh-lead{font-size:var(--t-md);color:var(--ink-2);line-height:var(--lh-loose)}.jh-mono{font-family:var(--f-mono);font-size:var(--t-xs);letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.jh-italic{font-style:italic;color:var(--accent)}.jh-container{max-width:var(--w-max);margin:0 auto;padding:0 var(--s-14)}@media (max-width:768px){.jh-container{padding:0 var(--s-5)}}.jh-section{padding:var(--s-20) 0}@media (max-width:768px){.jh-section{padding:var(--s-10) 0}}.jh-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);height:38px;padding:0 var(--s-5);border-radius:var(--r-pill);background:var(--ink);color:var(--bg);border:1px solid var(--ink);font-family:var(--f-body);font-weight:500;font-size:13px;cursor:pointer;transition:opacity var(--t-fast) var(--ease-out),transform var(--t-fast)}.jh-btn:hover{opacity:.85}.jh-btn:active{transform:translateY(1px)}.jh-btn.ghost{background:transparent;color:var(--ink);border-color:var(--line)}.jh-btn.ghost:hover{background:var(--surface);opacity:1}.jh-btn.accent{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.jh-btn.small{height:30px;padding:0 var(--s-3);font-size:var(--t-sm)}.jh-btn.large{height:48px;padding:0 var(--s-8);font-size:14px}.jh-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--r-pill);border:1px solid var(--line);background:var(--bg);font-family:var(--f-mono);font-size:var(--t-xs);color:var(--ink-2);text-transform:uppercase;letter-spacing:.06em}.jh-chip.solid{background:var(--ink);color:var(--bg);border-color:var(--ink)}.jh-chip.accent{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.jh-card{background:var(--surface);border-radius:var(--r-sm);padding:var(--s-6);border:1px solid transparent;transition:border-color var(--t-fast)}.jh-card.bordered{background:var(--bg);border-color:var(--line)}.jh-label{display:block;font-family:var(--f-mono);font-size:var(--t-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:6px}.jh-input,.jh-select,.jh-textarea{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:var(--t-base);outline:none;transition:border-color var(--t-fast)}.jh-input:focus,.jh-select:focus,.jh-textarea:focus{border-color:var(--ink)}.jh-textarea{resize:vertical;min-height:96px}.jh-nav{display:flex;align-items:center;justify-content:space-between;padding:var(--s-6) var(--s-14)}@media (max-width:768px){.jh-nav{padding:var(--s-4) var(--s-5)}}.jh-nav-logo{font-family:var(--f-display);font-size:var(--t-xl);letter-spacing:.02em}.jh-nav-logo i{color:var(--accent);font-style:normal}.jh-nav-links{display:flex;gap:var(--s-8);font-size:13px;color:var(--ink-2)}@media (max-width:768px){.jh-nav-links{display:none}.jh-nav-hamburger{display:flex!important}.jh-nav-lang{display:none}}.jh-nav-links a{transition:color var(--t-fast)}.jh-nav-links a.on,.jh-nav-links a:hover{color:var(--ink);font-weight:600}.jh-footer{padding:var(--s-14) var(--s-14) var(--s-8);border-top:1px solid var(--line);background:var(--surface)}.jh-footer h4{font-family:var(--f-body);font-size:var(--t-xs);font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin:0 0 var(--s-3) 0}.jh-footer ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--s-2)}.jh-footer li{font-size:13px;color:var(--ink-2)}.jh-footer a{color:var(--ink-2);transition:color var(--t-fast)}.jh-footer a:hover{color:var(--ink)}.jh-foot-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:var(--s-8);align-items:start}@media (max-width:768px){.jh-foot-grid{grid-template-columns:1fr 1fr;gap:var(--s-6)}.jh-footer{padding:var(--s-8) var(--s-5) var(--s-6)}}.jh-foot-meta{display:flex;justify-content:space-between;margin-top:var(--s-8);padding-top:var(--s-5);border-top:1px solid var(--line);font-size:11px;color:var(--muted);font-family:var(--f-mono)}.jh-imgph{background:repeating-linear-gradient(135deg,var(--surface-2) 0 8px,var(--surface) 8px 16px);position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}.jh-imgph:after{content:attr(data-label);position:absolute;inset:auto var(--s-2) var(--s-2) auto;font-family:var(--f-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);background:var(--bg);padding:3px 7px;border-radius:3px;border:1px solid var(--line)}.jh-figure{transition:opacity var(--t-med)}.jh-pill{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:var(--r-pill);font-family:var(--f-mono);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.04em;background:var(--surface-2);color:var(--ink-2)}.jh-pill.success{background:oklch(.94 .04 145);color:oklch(.4 .1 145)}.jh-pill.warning{background:oklch(.94 .04 75);color:oklch(.45 .1 70)}.jh-pill.danger{background:oklch(.94 .04 28);color:oklch(.5 .12 28)}.contact-name-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media (max-width:768px){.contact-name-grid{grid-template-columns:1fr}}.jh-divider{height:1px;background:var(--line);border:0;margin:0}.jh-text-muted{color:var(--muted)}.jh-text-ink-2{color:var(--ink-2)}