:root{--bg: #ffffff;--text: #111111;--muted: #555555;--soft: #767676;--max-width: 1040px;--font: "Times New Roman", Times, serif}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:auto}body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:1.0625rem;line-height:1.6}img{max-width:100%;display:block}a{color:inherit;text-decoration:underline;text-underline-offset:2px}button{font:inherit;color:inherit;background:none;border:none;padding:0;cursor:pointer}.site-root{min-height:100vh;display:flex;flex-direction:column}.site-layout{width:min(var(--max-width),100% - 2.4rem);margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:2.4rem;align-items:start;flex:1}.site-main{display:flex;flex-direction:column;gap:2.4rem;padding:1.6rem 0 3rem}.section{margin:0}.site-header__inner,.site-footer__inner{width:min(var(--max-width),100% - 2.4rem);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.1rem 0}.brand__mark{display:none}.brand__name{font-size:1.2rem;font-weight:700}.site-header__meta{color:var(--muted);font-size:.9rem;text-align:right}.site-footer__inner{color:var(--soft);font-size:.9rem}.surface-card{padding:0}.button{display:inline;text-decoration:underline;text-underline-offset:2px;cursor:pointer}.button:disabled{color:var(--soft);text-decoration:none;cursor:default}.intro__name{font-size:clamp(2rem,5vw,2.8rem);font-weight:700;line-height:1.15}.intro__tagline{color:var(--muted);margin-top:.3rem}.intro__copy{margin-top:1rem;max-width:62ch}.photo-quotes{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:1.6rem;align-items:start}.portrait-frame{position:relative;cursor:ew-resize;touch-action:pan-y}.portrait-image{width:100%;aspect-ratio:4 / 3;object-fit:cover}.gallery-controls{display:flex;justify-content:center;gap:.5rem;margin-top:.6rem}.gallery-dot{width:.6rem;height:.6rem;border-radius:50%;background:#c8c8c8}.gallery-dot.is-active{background:var(--text)}.photo-quotes__quote{display:flex;flex-direction:column;gap:.8rem}.photo-quotes__quote blockquote{font-size:1.2rem;font-style:italic;line-height:1.45}.photo-quotes__quote figcaption{display:flex;flex-direction:column;gap:.1rem}.quote-author{font-size:.95rem}.quote-context{color:var(--soft);font-size:.85rem}.work__label{font-size:1.1rem;font-weight:700}.work__skills{margin-top:.3rem}.stats__card{display:grid;grid-template-columns:1fr 1fr;gap:1.6rem}.stats__item{display:flex;flex-direction:column;align-items:flex-start;gap:.4rem}.stats__label{display:inline-flex;align-items:center;gap:.4rem;font-size:.9rem;color:var(--muted)}.stats__value{font-size:2rem;font-weight:700}.stats__copy{color:var(--soft);font-size:.9rem}.status-dot{width:.5rem;height:.5rem;border-radius:50%;background:var(--text)}.status-dot.is-offline{background:#c8c8c8}.shared-file__label{font-size:1.1rem;font-weight:700}.shared-file__intro{color:var(--muted);margin-top:.3rem}.shared-file__current{display:flex;flex-wrap:wrap;align-items:baseline;gap:.6rem;margin-top:.9rem}.shared-file__download{font-size:1.1rem}.shared-file__meta{color:var(--soft);font-size:.9rem}.shared-file__form{display:flex;flex-wrap:wrap;align-items:center;gap:.9rem;margin-top:.9rem}.shared-file__input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.shared-file__choose{display:inline-flex;cursor:pointer}.shared-file__input:focus-visible+.button{outline:2px solid var(--text);outline-offset:2px}.shared-file__chosen{min-width:0;overflow-wrap:anywhere}.shared-file__hint{color:var(--soft);font-size:.8rem;margin-top:.5rem}.shared-file__notice{color:var(--muted);margin-top:.6rem}.shared-file__error{color:#a11212;margin-top:.6rem}.contact-sidebar{position:sticky;top:1.6rem;padding:1.6rem 0}.contact-sidebar__title{font-size:1.2rem;font-weight:700}.contact-sidebar__meta{color:var(--soft);font-size:.9rem;margin-top:.2rem}.contact-sidebar__links{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem;margin-top:1rem}@media(max-width:860px){.site-layout,.photo-quotes{grid-template-columns:minmax(0,1fr)}.stats__card{grid-template-columns:1fr}.contact-sidebar{position:static;padding:0 0 2rem}}
