@font-face{font-family:Inter;font-style:normal;font-weight:400 600;font-display:swap;src:url(/assets/portfolio/inter-400-latin-ext.cf3eb50f.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:Inter;font-style:normal;font-weight:400 600;font-display:swap;src:url(/assets/portfolio/inter-400-latin.f11d729b.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Fraunces;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/portfolio/fraunces-600-latin-ext.e540e4f1.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:Fraunces;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/portfolio/fraunces-600-latin.4623d46f.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{color-scheme:light dark;--bg:#F0EEE6;--surface:#FCFBF7;--paper:#E9E6DA;--accent:#B0573C;--accent-hover:#9A4A31;--accent-text:#9A4A31;--on-accent:#fff;--ink:#1A1915;--muted:#4F4942;--line:#DDD8CA;--radius:12px;--shadow:0 6px 18px rgba(32,28,20,.07);--font:Inter,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--display:Fraunces,Georgia,"Times New Roman",serif;--max:1200px;--dot-live:#2F6B3A;--dot-beta:#8A5A14;--dot-other:#4F4942}
@media (prefers-color-scheme:dark){:root{--bg:#171612;--surface:#201E19;--paper:#2A2720;--accent:#CC785C;--accent-hover:#E0907A;--accent-text:#E0907A;--on-accent:#1A1915;--ink:#F0EEE6;--muted:#C4BEB1;--line:#3A362C;--shadow:none;--dot-live:#7FC08B;--dot-beta:#E0B060;--dot-other:#C4BEB1}}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:16px;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:400 1rem/1.6 var(--font)}
img{display:block;max-width:100%;height:auto}
a{color:var(--accent-text);text-underline-offset:3px}
a:hover{color:var(--ink)}
:focus-visible{outline:3px solid var(--accent-text);outline-offset:2px;border-radius:4px}
[hidden]{display:none!important}
h1,h2,h3{font-family:var(--display);font-weight:600;line-height:1.2;margin:0;color:var(--ink)}
p{margin:0}
ul{list-style:none;margin:0;padding:0}
.wrap{max-width:var(--max);margin:0 auto;padding:0 20px}
.skip{position:absolute;left:12px;top:-60px;background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:8px;z-index:20;text-decoration:none}
.skip:focus{top:12px}
.hdr{display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px;padding-block:14px}
.brand{font:600 1.2rem/1.2 var(--display);color:var(--ink);text-decoration:none;margin-right:auto}
.nav{display:flex;flex-wrap:wrap;align-items:center;gap:4px 18px;order:3;width:100%}
.nav a:not(.btn){color:var(--ink);text-decoration:none;padding:6px 0}
.nav a:not(.btn):hover{color:var(--accent-text);text-decoration:underline}
.nav .btn{margin-left:auto}
.nav .btn,.nav .btn:hover{text-decoration:none}
.lang{display:flex;gap:4px;order:2}
.lang a,.lang span{display:inline-block;min-width:44px;text-align:center;padding:8px 10px;border:1px solid var(--line);border-radius:8px;color:var(--ink);text-decoration:none;font-weight:500;font-size:.875rem}
.lang span{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.menu-btn{display:inline-flex;order:2;font:500 .875rem var(--font);color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:8px 14px;cursor:pointer}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:10px 20px;border-radius:10px;border:1px solid var(--accent);background:var(--accent);color:var(--on-accent);font:500 1rem var(--font);text-decoration:none;cursor:pointer}
.btn:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:var(--on-accent)}
.btn-alt{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn-alt:hover{background:var(--paper);color:var(--ink);border-color:var(--ink)}
.hero{display:grid;gap:20px 40px;padding:16px 0 28px;grid-template-areas:"head" "text" "facts"}
.hero-head{grid-area:head;display:flex;align-items:center;gap:16px}
.hero-head img{width:84px;height:84px;border-radius:50%;object-fit:cover;border:1px solid var(--line)}
.role{color:var(--muted);font-weight:500}
.hero-text{grid-area:text}
.hero h1{font-size:clamp(1.9rem,5.2vw,3.1rem);letter-spacing:-.01em;margin-bottom:16px}
.hero-text p{max-width:62ch;color:var(--muted);font-size:1.0625rem;margin-bottom:22px}
.cta{display:flex;flex-wrap:wrap;gap:12px}
.facts{grid-area:facts;display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:8px}
.facts li{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px}
.facts b{display:block;font:600 1.75rem/1.1 var(--display);color:var(--ink)}
.facts span{display:block;font-size:.875rem;line-height:1.35;color:var(--muted);margin-top:4px}
.sec{padding:36px 0}
.sec-h{margin-bottom:22px}
.sec-h h2{font-size:clamp(1.5rem,3.6vw,2.1rem)}
.sec-h p{color:var(--muted);margin-top:6px}
.cards{display:grid;gap:16px;grid-template-columns:1fr}
.card{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow)}
.card:hover{border-color:var(--accent)}
.card:focus-within{outline:3px solid var(--accent-text);outline-offset:2px}
.card :focus-visible{outline:none}
.card h3 a{color:var(--ink);text-decoration:none}
.card h3 a::after{content:"";position:absolute;inset:0;z-index:1}
.card h3 a:hover{text-decoration:underline}
.card img{width:100%;aspect-ratio:8/5;object-fit:cover;object-position:top;background:var(--paper);border-bottom:1px solid var(--line)}
.card-body{padding:16px 18px 18px;display:flex;flex-direction:column;gap:10px;flex:1}
.meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;font-size:.875rem;color:var(--muted)}
.badge{display:inline-flex;align-items:center;gap:6px;padding:2px 10px;border-radius:999px;background:var(--paper);border:1px solid var(--line);color:var(--ink);font-weight:500;font-size:.8125rem}
.badge::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--dot-other)}
.badge.live::before{background:var(--dot-live)}
.badge.beta::before,.badge.launch::before{background:var(--dot-beta)}
.card h3{font-size:1.25rem}
.card h3 .ln{font:400 .875rem var(--font);color:var(--muted)}
.card p{color:var(--muted);font-size:.9375rem}
.kfacts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:auto;padding-top:6px}
.kfacts li{border-top:2px solid var(--line);padding-top:8px}
.kfacts b{display:block;font:600 1.25rem/1.1 var(--display);color:var(--ink);overflow-wrap:anywhere}
.kfacts span{display:block;font-size:.8125rem;line-height:1.35;margin-top:3px;color:var(--muted)}
.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto}
.tags li{font-size:.75rem;padding:2px 8px;border-radius:6px;background:var(--paper);color:var(--muted)}
.extra{position:relative;z-index:2;font-size:.875rem;align-self:flex-start}
.go{font-weight:500;font-size:.9375rem;color:var(--accent-text)}
.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}
.filters button{font:500 .9375rem var(--font);min-height:44px;padding:8px 16px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer}
.filters button[aria-pressed=true]{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.group{margin-bottom:28px}
.group h3{font-size:1.2rem;margin-bottom:12px}
.catalog .card{flex-direction:row;align-items:stretch}
.catalog .card img{width:72px;height:auto;aspect-ratio:auto;object-fit:cover;object-position:top left;border-bottom:0;border-right:1px solid var(--line);flex:none}
.catalog .card-body{padding:12px 14px;gap:6px}
.catalog .card h3{font-size:1.05rem}
.catalog .card p{font-size:.875rem}
.panels{display:grid;gap:16px;grid-template-columns:1fr}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px;display:flex;flex-direction:column;gap:12px}
.panel h3{font-size:1.2rem}
.panel p{color:var(--muted)}
.panel .go{margin-top:auto}
.thumbs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.thumbs img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px;border:1px solid var(--line)}
.about{display:grid;gap:24px;grid-template-columns:1fr}
.about .text{display:flex;flex-direction:column;gap:14px;max-width:68ch}
.how dl{margin:0;display:grid;gap:12px}
.how dt{font-weight:600;font-size:.875rem;color:var(--muted)}
.how dd{margin:2px 0 0}
.contact{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:24px;display:flex;flex-direction:column;gap:14px}
.contact h2{font-size:clamp(1.5rem,3.6vw,2.1rem)}
.contact .avail{color:var(--muted)}
.ftr{border-top:1px solid var(--line);margin-top:36px;padding:22px 0 34px;color:var(--muted);font-size:.9375rem}
.ftr .wrap{display:flex;flex-wrap:wrap;gap:10px 22px;align-items:center}
.ftr a{color:var(--ink)}
.nf{padding:60px 0;display:flex;flex-direction:column;gap:16px;align-items:flex-start}
.nf h1{font-size:clamp(1.9rem,5vw,2.6rem)}
@media (max-width:759px){
.nav{order:4;flex-direction:column;align-items:flex-start;gap:0}
.nav a:not(.btn){padding:10px 0;width:100%}
.nav .btn{margin:6px 0 0;width:auto}
}
@media (min-width:560px){.catalog .card img{width:104px}.facts{grid-template-columns:repeat(4,1fr)}.panels{grid-template-columns:repeat(2,1fr)}}
@media (min-width:760px){
.hdr{flex-wrap:nowrap;padding-block:18px}
.nav{order:2;width:auto;flex-wrap:nowrap}
#site-nav[hidden]{display:flex!important}
.lang{order:3}
.menu-btn{display:none}
.cards.featured{grid-template-columns:repeat(2,1fr)}
.catalog .cards{grid-template-columns:repeat(2,1fr)}
.about{grid-template-columns:3fr 2fr}
}
@media (min-width:900px){
.hero{grid-template-columns:1fr 280px;grid-template-areas:"text head" "facts facts";align-items:center;padding:24px 0 32px}
.hero-head{flex-direction:column;align-items:flex-start;gap:14px}
.hero-head img{width:240px;height:240px;border-radius:var(--radius)}
.panels{grid-template-columns:repeat(3,1fr)}
}
@media (min-width:1000px){.catalog .cards{grid-template-columns:repeat(3,1fr)}}
@media (max-width:639px){
.catalog .card img{width:96px}
.card h3 a::after{inset:0}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
@media print{.nav,.lang,.menu-btn,.filters,.skip{display:none}}
.case{padding-top:8px;padding-bottom:12px}
.crumb{font-size:.9375rem;padding:6px 0 14px}
.case-head{display:flex;flex-direction:column;gap:12px;padding-bottom:20px;max-width:760px}
.case-head h1{font-size:clamp(2rem,6vw,3rem)}
.lead{font-size:1.125rem;color:var(--muted)}
.case h2{font-size:clamp(1.3rem,3vw,1.6rem);margin-bottom:8px}
.case-grid{display:grid;gap:28px;padding:12px 0 8px}
.case-text{display:flex;flex-direction:column;gap:22px;max-width:70ch}
.case-text section p,.case-text>p{color:var(--ink)}
.case-grid aside{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px;align-self:start}
.nums{display:grid;gap:14px;margin-top:10px}
.nums li{border-top:2px solid var(--line);padding-top:8px}
.nums b{display:block;font:600 1.5rem/1.1 var(--display);color:var(--ink);overflow-wrap:anywhere}
.nums span{display:block;font-size:.9375rem;color:var(--muted);margin-top:3px}
.note{font-size:.8125rem;color:var(--muted);margin-top:14px}
.case-sec{padding:28px 0 8px}
.shots{display:grid;gap:18px;margin-top:10px}
.shots figure{margin:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.shots img{width:100%;aspect-ratio:8/5;object-fit:cover;object-position:top;background:var(--paper);border-bottom:1px solid var(--line)}
.shots figcaption{padding:10px 14px;font-size:.875rem;color:var(--muted)}
.quote{margin:0;padding:12px 18px;border-left:4px solid var(--accent);background:var(--surface);border-radius:0 var(--radius) var(--radius) 0}
.quote p{font-weight:500}
.quote footer{font-size:.8125rem;color:var(--muted);margin-top:4px}
.case-sec .cta{margin-top:22px}
@media (min-width:760px){.shots{grid-template-columns:repeat(2,1fr)}.case-grid{grid-template-columns:minmax(0,1fr) 280px;gap:40px}}
