@font-face{font-family:Karrik;src:url(/fonts/Karrik-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Karrik;src:url(/fonts/Karrik-Italic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Velvelyne;src:url(/fonts/Velvelyne-Light.woff2) format("woff2");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:Velvelyne;src:url(/fonts/Velvelyne-Book.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Velvelyne;src:url(/fonts/Velvelyne-Regular.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Velvelyne;src:url(/fonts/Velvelyne-Bold.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Lineal;src:url(/fonts/Lineal-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Montserrat;src:url(/fonts/Montserrat-Regular.woff2) format("woff2");font-weight:300 400;font-style:normal;font-display:swap}@font-face{font-family:Montserrat;src:url(/fonts/Montserrat-Italic.woff2) format("woff2");font-weight:300 400;font-style:italic;font-display:swap}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: oklch(.96 .008 80);--ink: oklch(.22 .05 155);--ink-mid: oklch(.33 .045 155);--ink-muted: oklch(.45 .04 155);--accent: oklch(.48 .14 195);--rule: 1px solid oklch(.75 .02 155);--font: "Karrik", "Helvetica Neue", sans-serif;--font-body: "Montserrat", "Helvetica Neue", sans-serif;--space-s: 1rem;--space-m: 2rem;--space-l: 4rem;--pad-x: clamp(1.5rem, 5vw, 5rem)}html{background:var(--bg);color:var(--ink);font-family:var(--font);font-size:clamp(14px,1.05vw,16px);-webkit-font-smoothing:antialiased;scroll-behavior:smooth}body{min-height:100dvh;display:flex;flex-direction:column}a{color:inherit;text-decoration:none}.hero{--hero-bg: oklch(.93 .015 90);--hero-ink: oklch(.18 .02 260);--hero-ink-muted: oklch(.5 .015 260);--hero-accent: oklch(.45 .16 260);--hero-rule: 1px solid oklch(.72 .02 90);height:100svh;background:var(--hero-bg);color:var(--hero-ink);display:grid;grid-template-columns:minmax(18rem,33%) 1fr;position:relative;overflow:hidden}.hero-main{display:flex;flex-direction:column;justify-content:center;gap:var(--space-m);padding:var(--space-l) var(--space-m) var(--space-l) var(--pad-x);min-width:0}.hero-name{font-family:"Velvelyne",var(--font);font-style:normal;line-height:.86;letter-spacing:-.01em;display:flex;flex-direction:column}.hero-name__given{font-size:clamp(3.2rem,9vw,8.5rem);font-weight:700;color:var(--hero-ink)}.hero-name__family{font-size:clamp(3.2rem,9vw,8.5rem);font-weight:500;color:transparent;-webkit-text-stroke:1.5px var(--hero-ink);text-stroke:1.5px var(--hero-ink);margin-left:clamp(1rem,6vw,4rem)}.hero-bio-frag{font-family:"Velvelyne",var(--font);font-weight:300;font-style:normal;font-size:clamp(.9rem,1.3vw,1.05rem);color:var(--hero-ink-muted);border-left:2px solid var(--hero-accent);padding-left:var(--space-s)}.hero-side{display:flex;flex-direction:column;border-left:var(--hero-rule)}.hero-nav{display:flex;flex-direction:column;align-items:flex-end;gap:.9rem;padding:var(--space-m);border-bottom:var(--hero-rule)}.hero-nav a{font-family:"Lineal",var(--font-body);font-size:.78rem;font-weight:400;letter-spacing:.1em;text-transform:uppercase;color:var(--hero-ink-muted);transition:color .15s}.hero-nav a:hover{color:var(--hero-accent)}.hero-portrait{flex:1;display:flex;align-items:center;justify-content:center;background:#dedad0;position:relative}.hero-portrait span{font-family:var(--font-body);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--hero-ink-muted);opacity:.6}.hero-portrait img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.2s ease}.hero-portrait img.active{opacity:1}.lang-switcher{display:flex;align-items:baseline}.lang-btn{background:none;border:none;cursor:pointer;font-family:var(--font-body);font-size:.65rem;letter-spacing:.08em;text-transform:uppercase;padding:.15rem .2rem;line-height:1}.hero-nav .lang-switcher{margin-top:calc(var(--space-s) / 2);padding-top:var(--space-s);border-top:1px solid oklch(.72 .02 90 / .7)}.hero-nav .lang-btn{font-family:"Lineal",var(--font-body);color:var(--hero-ink-muted);transition:color .15s}.hero-nav .lang-btn:hover,.hero-nav .lang-btn.active{color:var(--hero-accent)}.group-nav .lang-btn{color:var(--ink-muted);transition:color .15s}.group-nav .lang-btn:hover,.group-nav .lang-btn.active{color:var(--ink)}.portfolio{padding:var(--space-l) var(--pad-x);border-top:var(--rule);min-height:100dvh}.about-activity-row{display:flex;min-height:100dvh;border-top:var(--rule)}.about{flex:1;padding:var(--space-l) var(--pad-x)}.activity{flex:2;padding:var(--space-l) var(--pad-x);border-left:var(--rule)}.section-label{font-size:.85rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted);margin-bottom:var(--space-l)}.timeline-cols{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-l);align-items:start}.about-text{font-family:var(--font);font-size:clamp(1rem,1.5vw,1.1rem);line-height:1.8;color:var(--ink-muted)}.about-text a{color:var(--ink);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}.about-text--placeholder{color:var(--ink-muted);font-style:italic}.about-text p,.group-intro-text p{margin-bottom:1.4em}.about-text p:last-child,.group-intro-text p:last-child{margin-bottom:0}.about-text strong,.group-intro-text strong{font-weight:600}.about-text u,.group-intro-text u{text-decoration:underline}.timeline-heading{font-size:.85rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted);margin-bottom:var(--space-m)}.timeline{list-style:none}.tl-group{list-style:none;padding:0 .4rem;transition:background .5s ease}.tl-group-entries{list-style:none}.tl-category-heading{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted);padding-top:var(--space-m)}.timeline-entry{display:grid;grid-template-columns:5.5rem 1fr;gap:.75rem;padding:.65rem 0;border-top:var(--rule)}.timeline-entry:last-child{border-bottom:var(--rule)}.tl-period{font-size:.7rem;color:var(--ink-muted);padding-top:.15em;white-space:nowrap;letter-spacing:.02em}.tl-body{display:flex;flex-direction:column;gap:.2rem}.tl-title{font-size:.88rem;font-style:italic;font-family:var(--font)}.tl-detail{font-size:.72rem;color:var(--ink-muted);line-height:1.5}.portfolio-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(254px,338px));gap:calc(var(--space-m) * 2.5);justify-content:center}.works-card{display:block;text-decoration:none;position:relative}.works-card__thumb{display:block;width:100%;aspect-ratio:1 / 1;object-fit:cover;border:var(--rule)}.works-card__thumb--placeholder{width:100%;aspect-ratio:1 / 1;border:var(--rule);background:#e2ddd5;display:flex;align-items:center;justify-content:center}.works-card__thumb--placeholder span{font-size:2.5rem;font-style:italic;color:var(--ink-muted);opacity:.4}.works-card__body{margin-top:.6rem;display:flex;flex-direction:row;justify-content:space-between;align-items:baseline}.works-card__number{font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted)}.works-card__city{font-size:.95rem;font-style:italic}.works-card__years{font-size:.75rem;color:var(--ink-muted)}.works-card:hover .works-card__thumb,.works-card:hover .works-card__thumb--placeholder{outline:2px solid var(--ink);outline-offset:-1px}.modal{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg);z-index:200;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .2s ease}.modal.open{opacity:1;pointer-events:all}.modal__inner{display:flex;flex-direction:column;align-items:center;gap:1.8rem;text-align:center}.modal__label{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted)}.contact-modal__reveal{font-family:var(--font);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;background:var(--ink);color:var(--bg);border:none;padding:.6rem 1.6rem;cursor:pointer}.contact-modal__reveal:hover{background:var(--accent)}.contact-modal__reveal:disabled{opacity:.4;cursor:default}.contact-modal__email{font-family:var(--font-body);font-size:1rem;color:var(--ink);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}.contact-modal__email:hover{color:var(--accent)}.modal__close{position:fixed;top:1.25rem;right:1.5rem;background:none;border:none;color:var(--ink);cursor:pointer;opacity:.45;font-size:1.1rem;padding:.5rem;transition:opacity .15s;line-height:1}.modal__close:hover{opacity:1}.credits-link{display:inline-block;margin-top:var(--space-m);font-family:var(--font-body);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted);border-bottom:1px solid oklch(.75 .02 155 / .6);transition:color .15s,border-color .15s}.credits-link:hover{color:var(--ink);border-color:var(--ink)}.modal__inner--credits{align-items:flex-start;text-align:left;max-width:min(90vw,26rem);gap:2.2rem}.credits-group{display:flex;flex-direction:column;gap:.7rem}.credits-role{font-family:var(--font-body);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted)}.credits-list{list-style:none;display:flex;flex-direction:column;gap:.55rem}.credits-list li{font-family:var(--font-body);font-size:.85rem;line-height:1.5;color:var(--ink-mid)}.credits-name{font-family:var(--font);font-style:italic;color:var(--ink)}.credits-list a,.credits-dev a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;color:var(--ink)}.credits-list a:hover,.credits-dev a:hover{color:var(--accent)}.credits-dev{font-family:var(--font-body);font-size:.85rem;color:var(--ink-mid)}.group-nav{padding:var(--space-s) var(--pad-x);border-bottom:var(--rule);display:flex;align-items:center;justify-content:space-between}.group-back{font-size:.8rem;letter-spacing:.03em;color:var(--ink-muted)}.group-back:hover{color:var(--ink);text-decoration:none}.group-header{padding:var(--space-l) var(--pad-x) var(--space-m);display:flex;flex-direction:column;gap:.3rem}.group-city{font-size:clamp(2.2rem,5vw,3.8rem);font-weight:400;font-style:italic;line-height:1;letter-spacing:-.01em}.group-years{font-size:.85rem;color:var(--ink-muted)}.group-intro{padding:0 var(--pad-x) var(--space-l)}.intro-cols{display:grid;grid-template-columns:1.4fr 1fr;gap:var(--space-l);align-items:start}.group-intro-img{display:block;width:100%;height:auto}.group-intro-text{font-family:var(--font-body);font-weight:300;font-size:clamp(.9rem,1.3vw,1rem);line-height:1.85;color:var(--ink-muted)}.works-grid{padding-top:var(--space-l);padding-bottom:var(--space-xl);padding-left:8rem;padding-right:8rem;display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-l) var(--space-m);align-items:start}.work{display:flex;flex-direction:column}.work--clickable{cursor:pointer}.work-image-wrap{overflow:hidden}.work-img{display:block;width:100%;height:auto;transition:opacity .2s}.work--clickable:hover .work-img{opacity:.82}.work-caption{margin-top:.45rem;display:flex;flex-direction:column;gap:.1rem}.work-title{font-family:var(--font-body);font-size:.82rem;font-weight:400;font-style:italic;display:flex;align-items:center;gap:.6rem}.sold-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#c0392b;flex-shrink:0;position:relative;cursor:default}.sold-dot:after{content:"sold";position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);background:#c0392b;color:#fff;font-family:var(--font-body);font-size:.65rem;font-weight:400;font-style:normal;letter-spacing:.04em;padding:2px 7px;border-radius:3px;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .15s ease}.sold-dot:hover:after{opacity:1}.work-meta{font-family:var(--font-body);font-weight:300;font-size:.7rem;color:var(--ink-muted)}.group-divider{border:none;border-top:var(--rule);margin:0 var(--pad-x)}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg);z-index:200;display:flex;align-items:center;justify-content:center;padding:2rem;opacity:0;pointer-events:none;transition:opacity .2s ease}.lightbox.open{opacity:1;pointer-events:all}.lb-inner{display:flex;flex-direction:column;align-items:center;gap:.9rem;max-width:min(90vw,1100px)}.lb-img{display:block;max-width:100%;max-height:78vh;object-fit:contain}.lb-caption{text-align:center;color:var(--ink)}.lb-title{font-family:var(--font-body);font-size:1rem;font-weight:400;font-style:italic;display:flex;align-items:center;justify-content:center;gap:.6rem}.lb-title .sold-dot{width:10px;height:10px}.lb-meta{font-family:var(--font-body);font-weight:300;font-size:.75rem;color:var(--ink-muted);margin-top:.2rem}.lb-note{font-family:var(--font-body);font-weight:300;font-size:.72rem;color:var(--ink-muted);font-style:italic;margin-top:.2rem}.lb-close,.lb-prev,.lb-next{position:fixed;background:none;border:none;color:var(--ink);cursor:pointer;opacity:.45;transition:opacity .15s;line-height:1;padding:.5rem}.lb-close:hover,.lb-prev:hover,.lb-next:hover{opacity:1}.lb-close{top:1.25rem;right:1.5rem;font-size:1.1rem}.lb-prev{left:1.25rem;top:50%;transform:translateY(-50%);font-size:2rem}.lb-next{right:1.25rem;top:50%;transform:translateY(-50%);font-size:2rem}@media (max-width: 768px){.about-activity-row{flex-direction:column}.activity{border-left:none;border-top:var(--rule)}.timeline-cols,.intro-cols{grid-template-columns:1fr;gap:var(--space-l)}}@media (max-width: 600px){.hero{grid-template-columns:1fr;grid-template-rows:auto auto;height:auto;min-height:100svh}.hero-main{padding:var(--space-l) var(--pad-x) var(--space-m)}.hero-name__family{margin-left:.5rem}.hero-side{border-left:none;border-top:var(--hero-rule)}.hero-nav{flex-direction:row;flex-wrap:wrap;align-items:baseline;justify-content:flex-start;gap:var(--space-s)}.hero-nav .lang-switcher{margin-top:0;padding-top:0;border-top:none}.hero-portrait{min-height:40vh}.portfolio-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-s)}.works-grid{grid-template-columns:repeat(2,1fr);gap:var(--space-m);padding-left:var(--space-m);padding-right:var(--space-m)}.lb-prev{left:.5rem}.lb-next{right:.5rem}}@media (max-width: 420px){.portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
