:root {
  --brand-bg: #F4F5F7;
  --brand-text: #1B1C20;
  --brand-muted: #59606B;
  --brand-accent: #34383F;
  --brand-accent-hover: #24272D;
  --brand-on-accent: #FFFFFF;
  --brand-surface: rgba(255,255,255,0.72);
  --brand-surface-border: rgba(75,80,90,0.22);
  --brand-floating: #FFFFFF;
  --brand-chip: rgba(225,228,233,0.76);
  --brand-line: #D0D3D9;
  --brand-shadow: 0 12px 32px rgba(20,24,32,0.06);
  --brand-font: "Manrope", system-ui, sans-serif;
  --brand-max-width: 77.5rem;
  --brand-radius: 1.125rem;
  --brand-control-radius: .75rem;
  --brand-chip-radius: .5rem;
  --brand-card-padding: 1.5rem;
  --brand-body: 1rem;
  --brand-label: .875rem;
  --brand-card-heading: 1.375rem;
  --brand-section-heading: 2.25rem;
  --brand-hero-heading: 4rem;
  --brand-line-height: 1.6;
  --brand-space-1: .25rem;
  --brand-space-2: .5rem;
  --brand-space-3: .75rem;
  --brand-space-4: 1rem;
  --brand-space-6: 1.5rem;
  --brand-space-8: 2rem;
  --brand-space-12: 3rem;
  --brand-space-16: 4rem;
}
[data-theme="dark"] {
  --brand-bg: #050505;
  --brand-text: #F0F1F3;
  --brand-muted: #B0B4BC;
  --brand-accent: #D7DAE0;
  --brand-accent-hover: #E7E9ED;
  --brand-on-accent: #121418;
  --brand-surface: rgba(20,20,24,0.42);
  --brand-surface-border: rgba(235,238,245,0.18);
  --brand-floating: #151619;
  --brand-chip: rgba(235,238,245,0.09);
  --brand-line: #34363C;
  --brand-shadow: 0 12px 32px rgba(0,0,0,0.14);
}
@media(prefers-color-scheme:dark) {:root:not([data-theme]) {
  --brand-bg: #050505;
  --brand-text: #F0F1F3;
  --brand-muted: #B0B4BC;
  --brand-accent: #D7DAE0;
  --brand-accent-hover: #E7E9ED;
  --brand-on-accent: #121418;
  --brand-surface: rgba(20,20,24,0.42);
  --brand-surface-border: rgba(235,238,245,0.18);
  --brand-floating: #151619;
  --brand-chip: rgba(235,238,245,0.09);
  --brand-line: #34363C;
  --brand-shadow: 0 12px 32px rgba(0,0,0,0.14);
}}
@media(max-width:699px) {:root {--brand-card-padding:1.25rem;--brand-section-heading:1.75rem;--brand-hero-heading:2.5rem}}

@font-face{font-family:Manrope;src:url('/fonts/manrope.woff2') format('woff2');font-weight:400 700;font-style:normal;font-display:swap}
:root{color-scheme:light;--font:var(--brand-font);--heading:var(--brand-font);--ink:var(--brand-text);--muted:var(--brand-muted);--blue:var(--brand-accent);--paper:var(--brand-bg);--wash:var(--brand-floating);--line:var(--brand-line);--tint:var(--brand-chip);--chip:var(--brand-chip);--chip-ink:var(--brand-text);--night:var(--brand-bg);--accent-line:var(--brand-surface-border);--shadow:var(--brand-shadow)}
:root[data-theme=dark]{color-scheme:dark}
@media(prefers-color-scheme:dark){:root:not([data-theme]){color-scheme:dark}}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:7rem}
body{margin:0;color:var(--ink);background:var(--paper);font:400 var(--brand-body)/var(--brand-line-height) var(--font);-webkit-font-smoothing:antialiased;isolation:isolate;overflow-wrap:anywhere}
a{color:inherit;text-decoration:underline;text-underline-offset:4px}
button,input,textarea,select{font:inherit;color:inherit}
button,a{touch-action:manipulation}
button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--brand-accent);outline-offset:4px}
svg{width:1.5rem;height:1.5rem;flex-shrink:0}
h1,h2,h3,p{margin:0}
h1,h2,h3{font-family:var(--heading);line-height:1.2;letter-spacing:-.025em}
h1,h2{font-weight:700}h3{font-weight:600}p{color:var(--muted)}
.container{width:100%;max-width:var(--brand-max-width);margin-inline:auto;padding-inline:2.5rem}
#starfield{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}
main,.site-footer{position:relative;z-index:1}
.site-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;max-width:var(--brand-max-width);min-height:84px;padding:1rem 2.5rem;margin:auto;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--paper) 94%,transparent);backdrop-filter:blur(8px)}
.brand{display:inline-flex;align-items:center;gap:.5rem;color:var(--ink);max-width:100%;min-width:0;text-decoration:none}
.brand-mark{width:2.25rem;height:2.25rem;color:var(--ink)}
.brand-wordmark{font-size:1.125rem;font-weight:700;letter-spacing:.025em}
.site-header nav{display:flex;align-items:center;gap:1.5rem;font-size:var(--brand-label);font-weight:500}
.site-header nav a{padding:.25rem 0}.site-header nav a:hover{text-decoration:underline}
.header-controls{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;max-width:100%}
.language-switch,.theme-select{min-height:42px;border:1px solid var(--line);background:var(--brand-surface);color:var(--ink);border-radius:var(--brand-control-radius);font-size:var(--brand-label);font-weight:500;padding:.5rem .75rem}
.language-switch{display:grid;place-items:center;min-width:42px;text-decoration:none}
.eyebrow{display:block;font-size:var(--brand-label);font-weight:500;letter-spacing:.06em;color:var(--muted)}
.hero{display:grid;grid-template-columns:1.35fr 1fr;align-items:center;gap:3rem;padding-block:4rem}
.hero h1{font-size:var(--brand-hero-heading);margin-top:1.5rem;line-height:1.12;letter-spacing:-.04em}
.hero h1 span{color:var(--brand-accent)}
.hero-body{font-size:var(--brand-body);max-width:38rem;margin-top:1.5rem}
.hero-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2rem}
.hero-meta{display:flex;flex-wrap:wrap;gap:.75rem 1rem;margin-top:1.5rem;font-size:var(--brand-label);color:var(--muted)}
.availability{color:var(--ink)}
.button{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:48px;padding:.75rem 1rem;border:1px solid transparent;border-radius:var(--brand-control-radius);font-size:var(--brand-label);font-weight:600;line-height:1.5;text-decoration:none;transition:background .18s,border-color .18s}
.button-primary{color:var(--brand-on-accent);background:var(--brand-accent)}
.button-primary:hover{background:var(--brand-accent-hover)}
.button-outline{background:var(--brand-surface);border-color:var(--line);color:var(--ink)}
.button-outline:hover{border-color:var(--brand-accent)}
.hero-aside{overflow:hidden}
.aside-top{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.5rem;border-bottom:1px solid var(--line);font-size:var(--brand-label)}
.mono{font-family:monospace;font-size:1.125rem}
.build-word{padding:2rem 1.5rem 1.5rem;font-size:clamp(2rem,3.75vw,3.375rem);line-height:1.1;letter-spacing:-.035em;font-weight:700;color:var(--ink)}
.build-word-line{display:block;margin-top:.75rem;font-size:var(--brand-label);font-weight:500;letter-spacing:.08em;line-height:1.6;color:var(--muted)}
.stack-lines{padding:0 1.5rem 1.5rem}
.stack-lines>div{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 0;border-top:1px solid var(--line)}
.stack-lines span{font-size:var(--brand-label);color:var(--muted)}
.stack-lines strong{font-size:var(--brand-label);font-weight:600;text-align:right}
.aside-footer{display:flex;align-items:center;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid var(--line);font-size:var(--brand-label);color:var(--ink)}
.aside-footer:hover{text-decoration:underline}
.section{padding-block:4rem}
.section-heading{display:flex;justify-content:space-between;align-items:end;gap:2rem;margin-bottom:2rem}
h2,.section-heading h2,.assistant-info h2,.contact-section h2{font-size:var(--brand-section-heading)}
.section-heading h2{max-width:36rem;margin-top:.75rem}.section-heading>p{max-width:25rem}
.projects-section,.skills-section,.education-section,.contact-section{border-top:1px solid var(--line)}
.filter-bar{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}
.filter{min-height:44px;border:1px solid var(--line);background:var(--brand-surface);color:var(--ink);font-size:var(--brand-label);font-weight:500;border-radius:var(--brand-control-radius);padding:.5rem .75rem}
.filter.is-active{background:var(--brand-accent);color:var(--brand-on-accent);border-color:var(--brand-accent)}
.project-grid,.skill-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem}
.project-card{display:flex;flex-direction:column;min-height:310px}
.project-card h3{font-size:var(--brand-card-heading);margin:1.5rem 0 .75rem;overflow-wrap:anywhere}
.project-card>p{margin-bottom:1.5rem;max-width:40rem}
.project-top{display:flex;align-items:center;gap:.5rem}
.project-number,.project-type,.section-index{font-size:var(--brand-label);font-weight:500;color:var(--muted)}
.project-top svg{margin-left:auto;color:var(--ink)}
.tags{display:flex;flex-wrap:wrap;gap:.5rem}
.tags span{font-size:var(--brand-label);line-height:1.5;padding:.25rem .5rem}
.project-card>.tags{margin-top:auto}
.text-button{display:inline-flex;align-items:center;gap:.5rem;border:0;padding:0;background:none;text-align:left;font-size:var(--brand-label);font-weight:600;color:var(--brand-accent);text-decoration:underline;text-underline-offset:4px}
.project-card>.text-button{margin-top:1.5rem}.text-button span{font-size:1.25rem;font-weight:400}
.skill-group h3{font-size:var(--brand-card-heading);margin-top:.5rem}
.skill-note{margin:.75rem 0 1rem}
.related{display:flex;flex-wrap:wrap;gap:.25rem .75rem;margin-top:1rem;font-size:var(--brand-label)}
.related>span{flex-basis:100%;color:var(--muted)}.related a{text-decoration:underline}
.assistant-section{display:grid;grid-template-columns:.85fr 1.15fr;gap:1.5rem;align-items:start}
.assistant-info h2{margin-top:1rem}.assistant-info>p{margin-top:1.5rem}
.rag-flow{list-style:none;padding:0;margin:1.5rem 0;display:flex;flex-direction:column;gap:.75rem}
.rag-flow li{display:flex;align-items:center;gap:.75rem}.rag-flow span{font-size:var(--brand-label);color:var(--muted)}
.prompt-list{display:flex;flex-direction:column;align-items:start;gap:.5rem}
.prompt-button{font-size:var(--brand-label);min-height:44px;background:var(--brand-surface);border:1px solid var(--line);border-radius:var(--brand-control-radius);padding:.5rem .75rem;text-align:left}
.prompt-button:hover{border-color:var(--brand-accent)}
.chat-panel{overflow:hidden}
.chat-header{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;padding:1.5rem;border-bottom:1px solid var(--line)}
.chat-header>div:nth-child(2){flex:1;min-width:0}
.assistant-avatar{display:grid;place-items:center;width:44px;height:44px;color:var(--ink)}
.assistant-avatar svg{width:36px;height:36px}
.chat-header strong{font-size:var(--brand-label);font-weight:600}
#assistant-mode{display:block;font-size:var(--brand-label);color:var(--muted)}
.reset-chat{background:none;border:0;color:var(--ink);font-size:1.5rem;margin-left:auto;min-width:48px;min-height:48px}
.chat-messages{height:360px;overflow-y:auto;padding:1.5rem;display:flex;flex-direction:column;gap:1rem}
.message{border-radius:var(--brand-control-radius);padding:1rem;max-width:100%;overflow-wrap:anywhere}
.message p{white-space:pre-wrap;color:var(--ink)}
.assistant-message{align-self:start}.user-message{align-self:end;max-width:90%}
.message-label{font-size:var(--brand-label);font-weight:600;margin-bottom:.5rem;color:var(--ink)}
.message-note{font-size:var(--brand-label);color:var(--muted);margin-top:.75rem}
.source-list{display:flex;flex-direction:column;gap:.5rem;margin-top:.75rem}.source-list a{font-size:var(--brand-label);text-decoration:underline}
.chat-form{padding:1.5rem;border-top:1px solid var(--line)}
.chat-input-row{display:flex;gap:.75rem;align-items:end}
.chat-input-row textarea{min-width:0;flex:1;min-height:80px;max-height:160px;resize:vertical;border:1px solid var(--brand-accent);border-radius:var(--brand-control-radius);background:var(--brand-floating);color:var(--ink);padding:.75rem;font-size:var(--brand-body);line-height:1.6}
textarea::placeholder{color:var(--muted)}
.chat-input-row button{min-height:80px}
.chat-footnote{font-size:var(--brand-label);color:var(--muted);margin-top:.75rem}
.education-section h2{margin-top:.75rem;margin-bottom:2rem}
.education-layout{display:grid;grid-template-columns:1.2fr 1fr;gap:1.5rem}
.education-list article{margin-bottom:1.5rem}
.education-date{font-size:var(--brand-label);color:var(--muted);margin-bottom:.5rem}
.education-list h3{font-size:var(--brand-card-heading);margin-bottom:.75rem}
.education-type{font-weight:600;color:var(--ink);margin-bottom:.75rem}
.certificate{display:flex;gap:1rem;margin-bottom:1.5rem;text-decoration:none}.certificate>svg{color:var(--ink)}
.certificate h3{font-size:var(--brand-card-heading);margin:.75rem 0}
.certificate-action{display:block;margin-top:.75rem;text-decoration:underline;font-size:var(--brand-label)}
.contact-section{padding-block:4rem}
.contact-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:1.5rem;align-items:stretch}
.contact-section h2{margin:.75rem 0 1.5rem}
.contact-layout [data-invite]{margin-top:1.5rem}
.contact-links a{display:block;padding:1rem 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}
.contact-links a:first-child{padding-top:0}
.contact-links a span{display:block;font-size:var(--brand-label);color:var(--muted)}
.contact-links a strong{display:block;font-size:var(--brand-card-heading);font-weight:600;margin-top:.5rem;text-decoration:underline}
.contact-links>p{font-size:var(--brand-label);margin-top:1rem}
.site-footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;font-size:var(--brand-label);color:var(--muted);padding-block:1.5rem}
.modal{background:var(--brand-floating);border:1px solid var(--brand-surface-border);padding:2rem;width:calc(100% - 2rem);max-width:640px;max-height:90vh;overflow:auto;border-radius:var(--brand-radius);color:var(--ink);box-shadow:0 24px 80px #0004}
.modal::backdrop{background:#050505b0;backdrop-filter:blur(4px)}
.modal[open]{animation:dialog-enter .18s ease-out}
.modal-top{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}
.modal-top button{border:1px solid var(--line);background:var(--brand-chip);border-radius:var(--brand-control-radius);font-size:1.75rem;line-height:1;min-width:40px;min-height:40px;color:var(--ink)}
.modal h2{font-size:var(--brand-section-heading);margin-bottom:1rem;overflow-wrap:anywhere}.modal p{margin-bottom:1rem}
.modal .tags{margin-block:1.5rem}.modal ul{padding-left:1.25rem;margin-block:1.5rem;color:var(--muted)}.modal li{margin-bottom:.75rem}
.invite-modal form{display:flex;flex-direction:column;gap:.75rem}
.invite-modal label{font-size:var(--brand-label);font-weight:500;margin-top:.5rem}
.invite-modal input,.invite-modal textarea{border:1px solid var(--brand-accent);border-radius:var(--brand-control-radius);background:var(--brand-floating);color:var(--ink);padding:.75rem;width:100%;resize:vertical}
.form-status{font-size:var(--brand-label)}
.document-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1rem;margin-top:1.5rem}
.document-link,.document-download{font-size:var(--brand-label);text-decoration:underline}
.project-card .document-actions{padding-top:1rem;border-top:1px solid var(--line)}
.modal .document-actions{margin-bottom:1.5rem}
.sr-only,.skip-link:not(:focus){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:focus{position:fixed;z-index:30;left:1rem;top:1rem;background:var(--brand-floating);padding:1rem;border:2px solid var(--brand-accent)}
[hidden]{display:none!important}
.reveal-pending{opacity:0;transform:translateY(16px)}
@keyframes dialog-enter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.theme-picker{position:relative;flex-shrink:0}
.theme-trigger{display:flex;align-items:center;gap:.5rem;min-height:42px;padding:.5rem .75rem;border:1px solid var(--line);border-radius:var(--brand-control-radius);background:var(--brand-surface);color:var(--ink);font-size:var(--brand-label);font-weight:500;cursor:pointer;transition:border-color .18s}
.theme-trigger svg,.theme-option svg{width:18px;height:18px;flex-shrink:0}
.theme-trigger:hover{border-color:var(--brand-accent)}
.theme-chevron{transition:transform .18s}.theme-picker[data-open=true] .theme-chevron{transform:rotate(180deg)}
.theme-menu{position:absolute;top:calc(100% + 8px);right:0;width:14rem;max-width:calc(100vw - 2rem);padding:8px;display:grid;gap:4px;border:1px solid var(--line);border-radius:var(--brand-radius);background:var(--brand-floating);box-shadow:var(--brand-shadow);opacity:0;visibility:hidden;transform:translateY(-6px);pointer-events:none;transition:opacity .18s,transform .18s,visibility 0s .18s}
.theme-picker[data-open=true] .theme-menu{opacity:1;visibility:visible;transform:none;pointer-events:auto;transition:opacity .18s,transform .18s}
.theme-option{width:100%;display:flex;align-items:center;gap:.75rem;border:0;border-radius:var(--brand-control-radius);padding:.75rem .5rem;background:transparent;color:var(--ink);font-size:var(--brand-label);text-align:left;cursor:pointer}
.theme-option:hover,.theme-option:focus-visible,.theme-option[aria-checked=true]{background:var(--brand-chip)}
.theme-check{margin-left:auto;opacity:0}.theme-option[aria-checked=true] .theme-check{opacity:1}
.hero>*,.assistant-section>*,.education-layout>*,.contact-layout>*,.section-heading>*,.panel{min-width:0}
.theme-option span{min-width:0}
@media(max-width:1099px){.container,.site-header{padding-inline:1.5rem}.hero{gap:2rem;grid-template-columns:1.2fr 1fr}.project-grid,.skill-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.site-header{gap:1rem}.site-header nav{gap:.75rem}.stack-lines>div{flex-direction:column;align-items:start;gap:.5rem}.stack-lines strong{text-align:left}}
@media(max-width:899px){.site-header{flex-wrap:wrap;height:auto;gap:.5rem}.header-controls{margin-left:auto}.site-header nav{order:3;flex-basis:100%;justify-content:space-between;flex-wrap:wrap}.hero{grid-template-columns:1fr}.hero h1{font-size:clamp(2.5rem,7vw,4rem)}.assistant-section{grid-template-columns:1fr}.hero-aside{max-width:100%}.stack-lines>div{flex-direction:row;align-items:center}.education-layout,.contact-layout{gap:1.5rem}}
@media(max-width:699px){html{scroll-padding-top:10rem}.container,.site-header{padding-inline:1.25rem}.site-header{padding-block:.75rem}.brand-mark{width:1.5rem;height:1.5rem}.brand-wordmark{font-size:.875rem;letter-spacing:.015em}.brand{gap:.25rem}.header-controls{gap:.25rem}.theme-trigger{padding:.5rem;gap:.25rem}.theme-trigger>svg:first-child{display:none}.language-switch{padding:.5rem;min-width:38px}.site-header nav{gap:.5rem .75rem;font-size:var(--brand-label)}.hero{padding-block:3rem;gap:2rem}.hero h1{font-size:var(--brand-hero-heading)}.hero-actions{gap:.75rem}.hero-actions .button{max-width:100%;text-align:center}.stack-lines>div{flex-direction:column;align-items:start}.section,.contact-section{padding-block:3rem}.section-heading{display:block}.section-heading>p{max-width:none;margin-top:1rem}.project-grid,.skill-grid,.education-layout,.contact-layout{grid-template-columns:1fr;gap:1rem}.project-card{min-height:0}.project-card>.tags{margin-top:0}.chat-header,.chat-messages,.chat-form{padding:1.25rem}.chat-header strong{font-size:var(--brand-label)}.chat-messages{height:340px}.chat-input-row{flex-direction:column;align-items:stretch}.chat-input-row button{min-height:48px}.site-footer{flex-direction:column;gap:.5rem}.modal{padding:1.25rem}.build-word{font-size:2rem}.certificate{gap:.75rem}.contact-links a strong{font-size:1.375rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.reveal-pending{opacity:1;transform:none}}

/* Personal profile follows the same surfaces and monochrome controls. */
.profile-section{padding-top:0}
:root .profile-card.panel{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.45fr);gap:2rem;padding:1.5rem}
.profile-portrait{margin:0;min-width:0;align-self:start}
.portrait-image{position:relative;aspect-ratio:4/5;overflow:hidden;border-radius:var(--brand-control-radius);border:1px solid var(--brand-surface-border);background:var(--brand-floating)}
.portrait-image>img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 75%;transform:scale(1.3);transform-origin:50% 80%}
.portrait-mark{position:absolute;bottom:1rem;left:1rem;display:grid;place-items:center;width:3rem;height:3rem;border:1px solid var(--brand-surface-border);border-radius:var(--brand-control-radius);background:var(--brand-floating);color:var(--ink)}
.portrait-mark svg{width:2rem;height:2rem}
.profile-portrait figcaption{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.5rem;margin-top:1rem;font-size:var(--brand-label)}
.profile-portrait figcaption strong{font-weight:600;letter-spacing:.035em}.profile-portrait figcaption span{color:var(--muted)}
.profile-content{min-width:0}
.profile-content h2{margin:.75rem 0 .5rem}
.profile-subtitle{font-weight:500;color:var(--ink);margin-bottom:1.5rem}
.profile-content>p:not(.profile-subtitle){margin-bottom:1rem}
.profile-birthday{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:1.5rem 0;margin-top:1.5rem}
.profile-label{display:block;font-size:var(--brand-label);color:var(--muted);margin-bottom:.5rem}
.profile-birthday time,#age-years{display:block;font-size:var(--brand-card-heading);font-weight:600;line-height:1.35;color:var(--ink)}
.profile-age{text-align:right}#age-detail{display:block;font-size:var(--brand-label);margin-top:.5rem}
.age-timezone{display:block;font-size:var(--brand-label);color:var(--muted);margin-top:.5rem}
.profile-facts{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr) minmax(0,1fr);gap:1rem;margin:1.5rem 0 0}
.profile-facts dt{font-size:var(--brand-label);color:var(--muted)}.profile-facts dd{margin:.5rem 0 0;font-size:var(--brand-label);font-weight:600}
.profile-stack{display:block;margin-top:.5rem;color:var(--muted);font-weight:500}
.language-picker{position:relative;flex-shrink:0;max-width:100%}
.language-trigger{display:flex;align-items:center;gap:.5rem;min-height:42px;padding:.5rem .75rem;border:1px solid var(--line);border-radius:var(--brand-control-radius);background:var(--brand-surface);font-size:var(--brand-label);font-weight:500;transition:border-color .18s,background .18s}
.language-trigger:hover{border-color:var(--brand-accent)}.language-trigger svg{width:18px;height:18px}
.language-chevron{transition:transform .18s}.language-picker[data-open=true] .language-chevron{transform:rotate(180deg)}
.language-menu{position:absolute;right:0;top:calc(100% + 8px);width:15rem;max-width:calc(100vw - 2rem);padding:8px;display:grid;gap:4px;border:1px solid var(--line);border-radius:var(--brand-radius);background:var(--brand-floating);box-shadow:var(--brand-shadow);opacity:0;visibility:hidden;transform:translateY(-6px) scale(.98);transform-origin:top right;pointer-events:none;transition:opacity .18s,transform .18s,visibility 0s .18s}
.language-picker[data-open=true] .language-menu{opacity:1;visibility:visible;transform:none;pointer-events:auto;transition:opacity .18s,transform .18s}
.language-option{display:flex;align-items:center;gap:.75rem;padding:.75rem .5rem;border-radius:var(--brand-control-radius);font-size:var(--brand-label);text-decoration:none;min-width:0}
.language-option>span:nth-child(2){min-width:0}.language-option:hover,.language-option[aria-checked=true]{background:var(--brand-chip)}
.language-badge{font-size:var(--brand-label);font-weight:600;width:2rem;flex-shrink:0}.language-check{margin-left:auto;opacity:0}.language-option[aria-checked=true] .language-check{opacity:1}
body{transition:opacity .16s}.language-leaving body{opacity:0}
@media(max-width:1099px){.site-header{flex-wrap:wrap}.site-header nav{order:3;flex-basis:100%;justify-content:space-between;flex-wrap:wrap}.header-controls{margin-left:auto}}
@media(max-width:699px){:root .profile-card.panel{grid-template-columns:1fr;gap:1.5rem;padding:1.25rem}.profile-portrait{width:100%;max-width:22rem;margin-inline:auto}.profile-facts{grid-template-columns:1fr;gap:.75rem}.profile-facts>div{display:flex;justify-content:space-between;gap:1rem}.profile-facts dd{margin:0;text-align:right}.language-trigger{padding:.5rem;gap:.25rem}.language-trigger>svg:first-child{display:none}.profile-birthday{gap:.75rem}.profile-birthday time,#age-years{font-size:1.25rem}}
@media(prefers-reduced-motion:reduce){.language-leaving body{opacity:1}body{transition:none}}

.invitation-trap{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}

.project-media{margin:1rem 0}.project-media img{display:block;width:100%;height:auto;max-height:25rem;object-fit:contain;border:1px solid var(--line);border-radius:.75rem;background:var(--brand-surface)}.project-media figcaption{font-size:.875rem;line-height:1.6;color:var(--muted);margin-top:.5rem}.project-card .project-media img{height:12rem;object-fit:cover;object-position:top}.project-card .project-media figcaption{font-size:.8125rem}

/* Editable cards retain their size; repository lists live only in the dialog. */
.project-card .project-media>a,.repository-card .project-media>a{display:block;aspect-ratio:16/9;background:var(--brand-surface);border-radius:12px;overflow:hidden}
.project-card .project-media img,.repository-card .project-media img{width:100%;height:100%;object-fit:contain}
.repository-card .project-media figcaption{overflow-wrap:anywhere}
.repository-card>button[data-catalogue]{margin-top:auto;text-align:left}
.modal{max-height:calc(100dvh - 32px);overflow-y:auto;overscroll-behavior:contain}
.modal .modal-top{position:sticky;top:-2rem;z-index:2;background:var(--brand-floating);padding-block:.5rem;border-bottom:1px solid var(--line)}
@media(max-width:699px){.modal .modal-top{top:-1.25rem}}
.modal-repository{border-top:1px solid var(--line);padding-block:24px;overflow-wrap:anywhere}
.modal-repository h4{margin:0 0 12px;font-size:1.1rem}
.modal-repository summary{cursor:pointer;margin-block:12px}
.modal-repository li{margin-block:12px}
.modal-repository li p{margin-block:8px}
.modal-repository a{text-decoration:underline;text-underline-offset:.2em}
.project-media img{max-width:100%}

/* Shared card surface; all values come from the MAXGODDYK brand tokens. */
:root{--surface-bg:var(--brand-surface);--surface-border:var(--brand-surface-border);--surface-hover:var(--brand-accent);--surface-shadow:var(--brand-shadow);--surface-radius:var(--brand-radius);--surface-padding:var(--brand-card-padding);--surface-chip:var(--brand-chip)}
:root .panel{background:var(--surface-bg);border:1px solid var(--surface-border);border-radius:var(--surface-radius);box-shadow:var(--surface-shadow);color:var(--ink);padding:var(--surface-padding);backdrop-filter:none;transition:border-color .18s,opacity .45s,transform .45s}
:root .panel:hover{border-color:var(--surface-hover)}
.skills-section,.education-section,.contact-section{background:transparent}
:root .hero-aside.panel,:root .chat-panel.panel{padding:0}
.hero-aside .aside-top,.hero-aside .stack-lines>div,.hero-aside .aside-footer{border-color:var(--surface-border)}
.hero-aside .aside-top,.hero-aside .build-word,.hero-aside .stack-lines,.hero-aside .aside-footer{padding-inline:var(--surface-padding)}
.tags span{background:var(--surface-chip);border:1px solid var(--surface-border);color:var(--ink);border-radius:var(--brand-chip-radius)}
.assistant-message,.user-message{background:var(--surface-chip)}
.repository-section{margin-top:var(--brand-space-64,4rem)}
.repository-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem}
.repository-card{min-width:0;display:flex;flex-direction:column;gap:.75rem}
.repository-card[hidden]{display:none}
.repository-card h3{font-size:1.375rem;line-height:1.35;margin:0;overflow-wrap:anywhere}
.repository-card h3 a{text-decoration-thickness:1px;text-underline-offset:.2em}
.repository-card p{color:var(--muted);margin:0}
.repository-card .tags{margin-top:auto}
.repository-branches{font-size:.875rem;min-width:0}
.repository-branches summary{cursor:pointer;padding:.5rem 0;color:var(--ink)}
.repository-branches ul{display:grid;gap:.5rem;list-style:none;margin:.5rem 0;padding:0;max-height:15rem;overflow:auto;scrollbar-gutter:stable}
.repository-branches a{overflow-wrap:anywhere}
.repository-members{font-size:.875rem;min-width:0}
.repository-members>summary{cursor:pointer;padding:.5rem 0;font-weight:600;color:var(--ink)}
.repository-member{padding:1rem 0;border-top:1px solid var(--surface-border)}
.repository-member:first-child{margin-top:.5rem}
.repository-member p{font-size:.875rem;margin:.5rem 0;line-height:1.6}
.repository-member>a{overflow-wrap:anywhere}
.repository-context{border-left:2px solid var(--surface-border);padding-left:.75rem}
.assistant-tabs{display:flex;gap:.5rem;flex-wrap:wrap;padding:1rem 1.5rem 0}
#match-form[hidden],#chat-form[hidden]{display:none}
#requirements-input{display:block;width:100%;min-height:10rem;resize:vertical;margin:.75rem 0;border:1px solid var(--surface-border);border-radius:var(--brand-control-radius);background:var(--brand-floating);color:var(--ink);font:inherit;padding:.75rem}
.pdf-controls{display:flex;align-items:center;flex-wrap:wrap;gap:.75rem}
.pdf-controls:has(#requirements-pdf:focus-visible) label[for="requirements-pdf"]{outline:2px solid var(--ink);outline-offset:4px}
#match-send{margin-top:1rem}
.assistant-contacts{display:flex;flex-direction:column;gap:.5rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--surface-border);font-size:.875rem;overflow-wrap:anywhere}
.matching-list{padding-left:1.25rem;margin-top:1rem}
.matching-criterion{margin-bottom:1.5rem;overflow-wrap:anywhere}
.matching-criterion>strong,.matching-criterion>.message-note{display:block}
.matching-criterion details p{font-size:.875rem;line-height:1.6;margin:.75rem 0}
.match-badge{font-size:.875rem;font-weight:600;margin:.5rem 0}
.matching-criterion summary{cursor:pointer;font-size:.875rem}
.message{overflow-wrap:anywhere}
.repository-audit{color:var(--muted);font-size:.875rem;line-height:1.6;margin:1.5rem 0}
@media(max-width:1000px){.repository-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.repository-grid{grid-template-columns:minmax(0,1fr)}}
@media(prefers-reduced-motion:reduce){:root .panel{transition:none}}
