:root{color-scheme:light;--bg:#f7f6f2;--surface:#fdfcf9;--line:rgba(30,29,25,.14);--text:#1c1c19;--muted:#65655e;--accent:#c83e22;--green:#34734b;--radius:20px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,Arial,sans-serif;font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}button{background:none}button:disabled{cursor:default}::selection{background:var(--accent);color:#fff}:focus-visible{outline:2px solid var(--accent);outline-offset:5px}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:500}svg{flex-shrink:0}i[data-lucide]{display:inline-block;width:18px;height:18px}svg.lucide{width:18px;height:18px}button svg,a svg{pointer-events:none}.wrap{width:min(1240px,calc(100% - 80px));margin-inline:auto}.muted{color:var(--muted)}.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.13em;font-weight:550}.row{display:flex;align-items:center;gap:12px}.between{justify-content:space-between}.skip{position:fixed;top:10px;left:20px;transform:translateY(-150%);background:var(--text);color:var(--bg);padding:12px;z-index:100}.skip:focus{transform:none}
.header{position:sticky;top:0;z-index:20;background:rgba(247,246,242,.9);backdrop-filter:blur(18px)}.header-inner{min-height:80px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:25px}.brand{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:650;letter-spacing:-.03em}.brand-mark{font-size:27px;color:var(--accent);line-height:1}.nav{display:flex;gap:28px;font-size:12px;color:var(--muted)}.nav a{padding:10px 0;transition:color .2s}.nav a:hover,.nav a[aria-current]{color:var(--text)}.header-contact{font-size:12px;display:flex;gap:12px;align-items:center}.menu-toggle{display:none;border:1px solid var(--line);width:44px;height:44px;border-radius:12px;align-items:center;justify-content:center}
.hero{padding:28px 0 76px;position:relative}.hero-meta{display:flex;justify-content:space-between;align-items:center;gap:20px}.status{font-size:11px;color:#416348;display:inline-flex;align-items:center;gap:9px}.dot{width:6px;height:6px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px #34734b0b;animation:pulse 3s ease-in-out infinite}@keyframes pulse{50%{box-shadow:0 0 0 7px #34734b14}}.hero h1{font-size:clamp(44px,6.8vw,91px);line-height:1.06;letter-spacing:-.07em;margin:76px 0 35px;max-width:1120px;overflow-wrap:anywhere}.hero h1 .intro{display:block;font-size:.47em;letter-spacing:-.055em;line-height:1.4;margin-bottom:15px;color:var(--muted)}.accent{color:var(--accent)}.hero-bottom{display:flex;justify-content:space-between;align-items:end;gap:40px}.hero-copy{max-width:495px;color:var(--muted);line-height:1.75}.actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.btn{min-height:48px;padding:12px 20px;border:1px solid var(--line);border-radius:9px;display:inline-flex;align-items:center;justify-content:center;gap:20px;font-size:12px;font-weight:550;transition:background .2s,transform .2s,border-color .2s}.btn:hover{background:#eae8e1;border-color:#aaa79c;transform:translateY(-2px)}.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-primary:hover{background:#a93019;border-color:#a93019}.hero-foot{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);margin-top:58px;padding-top:18px;color:var(--muted);font-size:10px;letter-spacing:.07em}.hero-foot a{display:flex;gap:10px;align-items:center}.hero-foot svg{width:13px;height:13px}
.section{padding:28px 0 78px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:24px;border-top:1px solid var(--line);padding-top:24px;margin-bottom:30px}.section-label{display:flex;gap:16px;align-items:center}.section-label .number{color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}.section-label .dash{width:22px;height:1px;background:#575752}.section-label h2{font-size:12px;letter-spacing:.08em;text-transform:uppercase}.section-note{font-size:11px;color:var(--muted)}.about-grid{display:grid;grid-template-columns:1.65fr 1fr 1fr;gap:14px}.panel{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:29px}.about-main{background:#eeeee5}.about-main h3{font-size:27px;line-height:1.25;letter-spacing:-.045em;max-width:370px;margin-bottom:20px}.about-main p{font-size:13px;color:var(--muted);max-width:410px}.panel-top{display:flex;justify-content:space-between;align-items:center;color:var(--muted);margin-bottom:24px}.panel-top svg{color:var(--green)}.experience{font-size:clamp(23px,2.6vw,35px);line-height:1.3;letter-spacing:-.05em;overflow-wrap:anywhere}.panel-small p{font-size:12px;color:var(--muted);margin-top:13px}.approach{font-size:19px;letter-spacing:-.04em;line-height:1.4}.tiny-tags{display:flex;gap:6px;margin-top:22px;flex-wrap:wrap}.tiny-tags span,.tag{font-size:10px;padding:4px 9px;border:1px solid var(--line);border-radius:5px;color:#5e5d55}
.filters{display:flex;gap:5px;flex-wrap:wrap}.filter{border:1px solid transparent;padding:8px 13px;border-radius:7px;color:var(--muted);font-size:11px;min-height:38px}.filter:hover{color:var(--text)}.filter[aria-pressed=true]{background:var(--text);border-color:var(--text);color:var(--bg)}.projects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 20px}.project{min-width:0;border:1px solid var(--line);background:var(--surface);border-radius:20px;overflow:hidden;transition:transform .3s,border-color .3s,box-shadow .3s}.project:hover{transform:scale(1.02);border-color:#c83e224a;box-shadow:0 14px 40px #30271612}.project[hidden]{display:none}.preview{height:300px;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;border-bottom:1px solid var(--line)}.preview-label{position:absolute;top:20px;left:23px;color:#ffffffac;font-size:10px;letter-spacing:.07em}.preview-number{position:absolute;top:17px;right:22px;font-size:12px;color:#ffffff7a}.preview-dashboard{background:#1d2520;background-image:radial-gradient(ellipse at 75% 10%,#46533a77,transparent 60%)}.mock-window{width:82%;margin-top:65px;transform:rotate(-5deg);background:#111714;border:1px solid #65725a77;border-radius:9px;box-shadow:0 25px 40px #0008;padding:14px;color:#d2d9cd}.mock-bar{display:flex;justify-content:space-between;font-size:9px;padding-bottom:12px;border-bottom:1px solid #ffffff10}.window-dots{color:#829079;letter-spacing:3px}.mock-body{display:grid;grid-template-columns:65px 1fr;gap:14px;margin-top:14px}.mock-sidebar{font-size:7px;color:#879282;line-height:3}.mock-sidebar b{color:#d6e6b4;background:#d4e5b815;border-radius:4px;padding:5px}.mock-main h4{font-size:12px;font-weight:500;margin:0 0 12px}.mock-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.mock-metrics div{border:1px solid #ffffff10;border-radius:5px;padding:7px;font-size:6px;color:#94a18d}.mock-metrics strong{font-size:14px;color:#dce9ce;font-weight:500;display:block;margin-top:3px}.chart{width:100%;height:92px;margin-top:10px}.project-info{padding:24px}.project-title{display:flex;align-items:start;justify-content:space-between;gap:15px}.project-title h3{font-size:22px;letter-spacing:-.045em;overflow-wrap:anywhere}.project-info p{color:var(--muted);font-size:12px;margin:11px 0 19px;max-width:440px}.project-bottom{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.tags{display:flex;gap:6px;flex-wrap:wrap}.project-links{display:flex;gap:16px;font-size:10px}.project-links a{display:flex;align-items:center;gap:5px;min-height:32px}.project-links svg{width:12px;height:12px}.round-link{width:36px;height:36px;border:1px solid var(--line);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .2s}.round-link:hover{background:var(--accent);color:#fff}.preview-store{background:#c9b6a0}.preview-store .preview-label,.preview-store .preview-number{color:#594c3e}.store-sheet{position:relative;width:80%;height:235px;margin-top:75px;background:#ece5d9;transform:rotate(5deg);border-radius:4px;box-shadow:0 20px 40px #4b311b45;color:#42372d;padding:17px 24px}.store-nav{display:flex;justify-content:space-between;font-size:7px;border-bottom:1px solid #42372d30;padding-bottom:9px}.store-brand{font-weight:700;font-size:12px;letter-spacing:.15em}.store-content{display:grid;grid-template-columns:1.2fr 1fr;align-items:center;height:165px;gap:15px}.store-content strong{font-family:Georgia,serif;font-size:28px;font-weight:400;line-height:1.05;display:block}.store-content small{display:block;font-size:7px;margin-top:12px}.vase{height:112px;width:82px;margin:auto;border-radius:30% 30% 42% 42%;background:repeating-linear-gradient(90deg,#946f4e 0,#b69570 3px,#c0a17d 6px);box-shadow:15px 15px 20px #745d3f40;position:relative}.vase:before{content:'';position:absolute;top:-14px;left:24px;width:34px;height:25px;border-radius:8px 8px 0 0;background:#a88662}.vase:after{content:'';position:absolute;width:60px;height:75px;border:3px solid #9f7a56;border-radius:50%;left:53px;top:7px;z-index:-1}.preview-mobile{background:#23252e;background-image:radial-gradient(ellipse at 20% 100%,#555a7366,transparent 70%)}.phone{width:155px;height:254px;transform:rotate(-9deg);margin-top:80px;padding:21px 13px;background:#ededdf;color:#343d32;border:5px solid #17191b;border-radius:25px;box-shadow:14px 20px 35px #0006}.phone-top{font-size:7px;display:flex;justify-content:space-between;margin-bottom:19px}.phone h4{font-size:16px;letter-spacing:-.05em;line-height:1.2;margin:0}.phone-ring{width:87px;height:87px;border:10px solid #b5c2a1;border-right-color:#dce1d0;border-radius:50%;margin:16px auto;text-align:center;padding-top:13px;font-size:15px;line-height:1.1}.phone-ring small{display:block;font-size:6px;margin-top:4px}.phone-row{background:#dce3d0;border-radius:6px;padding:9px;font-size:7px}.mobile-note{position:absolute;left:calc(50% + 70px);top:135px;background:#dbe6c9;transform:rotate(7deg);padding:14px;border-radius:12px;color:#34402b;width:120px;box-shadow:0 12px 30px #0003;font-size:8px}.mobile-note strong{display:block;font-size:19px;line-height:1.5}.preview-system{background:#28201f;background-image:radial-gradient(ellipse at top right,#68433766,transparent 65%)}.system-board{width:78%;margin-top:58px;transform:rotate(4deg);display:grid;grid-template-columns:1.15fr 1fr;gap:9px}.system-tile{background:#191615;border:1px solid #ffffff12;border-radius:9px;padding:15px}.type-sample{font-size:49px;letter-spacing:-.08em;line-height:1;color:#efd4c0}.type-caption{font-size:7px;color:#bda79c;margin-top:12px}.swatches{display:flex;gap:6px;margin-top:17px}.swatches span{height:25px;flex:1;border-radius:4px;background:#f3d7c0}.swatches span:nth-child(2){background:#bf7258}.swatches span:nth-child(3){background:#594439}.swatches span:nth-child(4){background:#a1a28c}.system-controls{font-size:8px;display:grid;gap:10px;align-content:center}.sample-btn{padding:9px;border-radius:6px;background:#edd0bb;color:#32231d;text-align:center}.sample-input{padding:8px;border:1px solid #ffffff25;border-radius:6px;color:#bda79c}.sample-toggle{width:31px;height:17px;border-radius:20px;background:#c4775b;margin-top:2px}.sample-toggle:after{content:'';display:block;width:11px;height:11px;border-radius:50%;background:#f2dbc8;transform:translate(17px,3px)}.system-bottom{grid-column:1/-1;display:flex;justify-content:space-between;font-size:8px;color:#bda79c}
.skills-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.skill-head{display:flex;align-items:center;gap:12px;margin-bottom:25px}.skill-head svg{color:var(--accent)}.skill-head h3{font-size:15px}.skill-chips{display:flex;gap:8px;flex-wrap:wrap}.skill-chip{display:flex;gap:7px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:7px;font-size:11px;color:#4d4d45;background:#f2f1eb}.skill-chip svg{width:13px;height:13px;color:#6b6b61}.skills-note{color:var(--muted);font-size:11px;max-width:600px;margin-top:20px}.contact{padding:54px 0 35px;border-top:1px solid var(--line)}.contact-top{display:flex;align-items:center;justify-content:space-between;gap:20px}.contact h2{font-size:clamp(40px,6.1vw,80px);letter-spacing:-.065em;line-height:1.1;margin:37px 0 27px}.contact h2 span{color:var(--muted)}.contact h2 .accent{color:var(--accent)}.contact-bottom{display:flex;justify-content:space-between;align-items:end;gap:30px}.contact-copy{max-width:390px;font-size:13px;color:var(--muted);margin-bottom:25px}.socials{display:flex;gap:8px;flex-wrap:wrap}.social{display:flex;gap:9px;align-items:center;font-size:11px;border:1px solid var(--line);padding:11px 14px;border-radius:8px;transition:background .2s}.social:hover{background:#eae8e1}.social svg{width:14px;height:14px}.contact-arrow{color:var(--accent);width:110px!important;height:110px!important;stroke-width:1}.footer{border-top:1px solid var(--line);margin-top:58px;padding:22px 0;display:flex;justify-content:space-between;gap:20px;font-size:10px;color:var(--muted);flex-wrap:wrap}.footer a{display:flex;align-items:center;gap:8px}.footer svg{width:12px;height:12px}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
dialog{width:min(650px,calc(100% - 32px));max-height:85dvh;padding:0;border:1px solid var(--line);border-radius:20px;background:var(--surface);color:var(--text);box-shadow:0 30px 100px #29241840}dialog::backdrop{background:#24231e66;backdrop-filter:blur(7px)}.dialog-inner{padding:32px}.dialog-top{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:25px}.dialog-close{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid var(--line);border-radius:50%}dialog h2{font-size:30px;line-height:1.2;letter-spacing:-.045em;overflow-wrap:anywhere}dialog h3{font-size:14px;margin:23px 0 8px}dialog p{color:var(--muted);font-size:13px;line-height:1.8;overflow-wrap:anywhere}.dialog-links{display:flex;gap:10px;flex-wrap:wrap;margin-top:25px}.dialog-note{padding:14px;background:#eeeee5;border:1px solid var(--line);border-radius:10px;margin-top:20px}.dialog-placeholder{color:var(--green);font-family:monospace}.locked{overflow:hidden}
@media(min-width:1500px){.hero h1{font-size:98px}}
@media(max-width:1000px){.wrap{width:calc(100% - 48px)}.hero-bottom{align-items:start;flex-direction:column;gap:26px}.hero h1{margin-top:58px}.about-grid{grid-template-columns:1fr 1fr}.about-main{grid-column:1/-1}.about-main h3,.about-main p{max-width:600px}.preview{height:260px}.skills-grid{grid-template-columns:1fr}.skill-head{margin-bottom:18px}.skills-grid .panel{padding:24px}.nav{gap:18px}.header-contact{display:none}.mobile-note{left:calc(50% + 30px)}.project-info{padding:20px}.project-title h3{font-size:19px}}
@media(max-width:640px){html{scroll-padding-top:90px}.wrap{width:calc(100% - 36px)}.header-inner{min-height:70px}.menu-toggle{display:flex}.nav{display:none;position:absolute;top:70px;left:18px;right:18px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:15px;box-shadow:0 15px 30px #3027161a;flex-direction:column;gap:0}.nav.open{display:flex}.nav a{padding:12px}.hero{padding:23px 0 42px}.hero-meta{align-items:start}.hero-meta .eyebrow{font-size:9px}.status{font-size:9px;gap:7px}.hero h1{margin-top:52px;font-size:clamp(36px,8.4vw,54px);letter-spacing:-.06em;line-height:1.12}.hero h1 .intro{font-size:21px;margin-bottom:19px;line-height:1.5}.hero-copy{font-size:13px}.btn{padding:11px 15px;gap:12px}.hero-foot{margin-top:37px;font-size:8px;gap:20px}.hero-foot span{max-width:180px}.section{padding:20px 0 44px}.section-head{align-items:start;flex-wrap:wrap;margin-bottom:23px;gap:18px}.section-note{display:none}.about-grid{grid-template-columns:1fr}.about-main{grid-column:auto}.panel{padding:24px}.about-main h3{font-size:25px}.panel-top{margin-bottom:18px}.experience{font-size:31px}.projects{grid-template-columns:1fr;gap:20px}.preview{height:270px}.filters{gap:3px}.filter{padding:7px 11px}.contact{padding-top:35px}.contact-top .status{max-width:160px}.contact h2{margin-top:31px}.contact-bottom{align-items:start}.contact-arrow{display:none}.social{padding:11px 13px}.footer{margin-top:40px}.dialog-inner{padding:23px}.dialog-links .btn{width:100%}.dialog-top{margin-bottom:20px}.project:hover{transform:none}}
.panel p,.project-info p,.skills-note{overflow-wrap:anywhere}.mock-metrics strong{white-space:nowrap}
@media(min-width:641px) and (max-width:900px){.mock-window{width:420px;flex-shrink:0;transform:rotate(-5deg) scale(.66)}.system-board{width:360px;flex-shrink:0;transform:rotate(4deg) scale(.78)}}
@media(max-width:360px){.hero h1{font-size:29px}.mock-body{grid-template-columns:45px 1fr;gap:8px}.mock-window{padding:10px}.mock-metrics strong{font-size:10px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.project:hover,.btn:hover{transform:none}}

/* Избранные проекты: редакционный список с превью при наведении. */
#projects .section-head{border-top:0;border-bottom:1px solid var(--text);padding:0 0 22px;margin-bottom:0}
.projects{display:block}
.project{position:relative;isolation:isolate;display:grid;grid-template-columns:64px minmax(0,1fr) 170px 90px 36px;gap:8px 22px;padding:30px 0;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;overflow:visible;transition:background .2s}
.project:hover{transform:none;border-color:var(--line);box-shadow:none;background:#eeede64d}
.project-info,.project-title,.project-bottom{display:contents}
.project-index{grid-column:1;grid-row:1;font-size:11px;padding-top:8px;color:var(--muted)}
.project-category{grid-column:3;grid-row:1;font-size:10px;text-transform:uppercase;letter-spacing:.03em;padding-top:8px}
.project-year{grid-column:4;grid-row:1;font-size:11px;padding-top:8px;overflow-wrap:anywhere;color:var(--muted)}
.project-title h3{grid-column:2;grid-row:1;font-size:28px;line-height:1.25;letter-spacing:-.045em;transition:color .2s}
.project:hover h3,.project:focus-within h3{color:var(--accent)}
.project-info p{grid-column:2;grid-row:2;font-size:13px;line-height:1.65;max-width:490px;margin:0}
.project .tags{display:none}
.project-links{grid-column:2;grid-row:3;position:relative;z-index:4;justify-self:start;gap:20px;margin-top:3px;color:var(--muted)}
.project-links a:hover{color:var(--accent)}
.project .round-link{grid-column:5;grid-row:1;border:0;border-radius:0;width:36px;height:36px}
.project .round-link::after{content:'';position:absolute;inset:0;z-index:1}
.project .round-link:hover{background:transparent;color:var(--accent)}
.project .round-link:focus-visible{outline:none}
.project .round-link:focus-visible::after{outline:2px solid var(--accent);outline-offset:4px}
.project>.preview{position:absolute;right:14%;top:24px;width:300px;height:200px;border:0;border-radius:3px;z-index:3;pointer-events:none;opacity:0;visibility:hidden;transform:translateY(12px) rotate(-3deg);transition:opacity .2s,transform .25s,visibility .2s;box-shadow:0 15px 35px #211b2926}
.project>.preview .preview-label,.project>.preview .preview-number{display:none}
.project>.preview .mock-window{width:400px;flex-shrink:0;transform:rotate(-5deg) scale(.65);margin-top:0}
.project>.preview .store-sheet{width:380px;flex-shrink:0;transform:rotate(5deg) scale(.7);margin-top:25px}
.project>.preview .system-board{width:350px;flex-shrink:0;transform:rotate(4deg) scale(.72);margin-top:0}
.project>.preview .phone{margin-top:38px;transform:rotate(-9deg) scale(.8)}
.project>.preview .mobile-note{left:175px;top:90px;transform:rotate(7deg) scale(.8)}
@media(hover:hover) and (pointer:fine) and (min-width:901px){.project:hover>.preview,.project:focus-within>.preview{opacity:1;visibility:visible;transform:translateY(0) rotate(-3deg)}}
.dialog-preview{height:250px;margin:22px 0;border-radius:10px}
@media(max-width:1000px){.project{grid-template-columns:45px minmax(0,1fr) 125px 75px 30px;column-gap:14px}.project-title h3{font-size:24px}}
@media(max-width:700px){.project{grid-template-columns:36px minmax(0,1fr) 36px;gap:9px 10px;padding:24px 0}.project-title h3{font-size:22px}.project .round-link{grid-column:3}.project-category{grid-column:2;grid-row:3;padding-top:5px;font-size:9px}.project-year{grid-column:2;grid-row:4;padding:0;font-size:10px}.project-links{grid-row:5}.project-info p{grid-column:2/-1;font-size:12px}.project>.preview{display:none}.dialog-preview{height:220px}}

.interactive-dot{color:var(--green);display:block;font-size:9px;letter-spacing:.08em}.interactive-dot:before{content:"● ";}.preview-eventra{background:#101214}.preview-eventra img{width:100%;height:100%;object-fit:contain}.project-links a[aria-disabled=true],.social[aria-disabled=true]{opacity:.6;cursor:default}button:disabled{opacity:.5}
/* Portfolio: visible project evidence and compact editorial hierarchy. */
.hero{padding-bottom:32px}.hero h1{font-size:clamp(38px,5.8vw,84px);line-height:1.05;margin:48px 0 32px;letter-spacing:-.055em}.hero h1 .intro{font-size:clamp(15px,1.5vw,20px);line-height:1.5;letter-spacing:0;margin-bottom:24px}.hero-copy{max-width:580px}.hero-foot{margin-top:32px}.section{padding-top:64px;padding-bottom:0}.projects{display:block}.project{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:10px 48px;padding:36px 0;position:relative}.project-index{grid-column:2;grid-row:1}.project-category{grid-column:2;grid-row:2;padding:0;font-size:11px}.project-year{display:none}.project-info{display:block;grid-column:2;grid-row:3;align-self:start}.project-title{display:flex;align-items:center;justify-content:space-between}.project-title h3{font-size:36px;margin:12px 0 18px}.project-info p{font-size:15px;line-height:1.7;max-width:440px}.project-bottom{display:block}.project-links{display:flex;flex-wrap:wrap;gap:12px 24px;margin-top:24px}.project-links a{font-size:12px;min-height:44px;display:inline-flex;align-items:center}.project .round-link{position:relative;flex:none;min-width:44px;min-height:44px}.project .round-link::after{display:none}.project .round-link:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.work-cover{grid-column:1;grid-row:1/5;aspect-ratio:1.45;overflow:hidden;display:flex;align-items:center;justify-content:center;background:#e9ece1;border-radius:12px;padding:24px}.work-cover img{display:block;width:100%;height:100%;object-fit:cover;object-position:top;border-radius:6px}.cover-kcalibra img{box-shadow:0 8px 24px #263e2515}.cover-eventra{background:#171a20}.cover-eventra img{object-fit:contain}.cover-soboy{background:#e0e6df;gap:18px;padding:24px 50px}.cover-soboy img{width:44%;height:100%;object-fit:cover;object-position:top;border-radius:20px;box-shadow:0 9px 22px #22352b20}.cover-soboy img:first-child{transform:translateY(18px)}.cover-soboy img:last-child{transform:translateY(-10px)}.about-grid h3{font-size:25px;line-height:1.2;margin:24px 0 16px}.skills-grid p{font-size:15px;line-height:1.7;color:var(--muted)}.interactive-dot{font-size:10px;margin-top:7px}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:5px}.contact{margin-top:80px}
@media(max-width:850px){.project{column-gap:24px}.project-title h3{font-size:29px}.cover-soboy{padding:20px}.section{padding-top:48px}.hero h1{font-size:clamp(36px,6.8vw,62px)}}
@media(max-width:600px){.project{display:flex;flex-direction:column;gap:10px;padding:28px 0}.work-cover{order:-1;width:100%;aspect-ratio:1.3;padding:18px;margin-bottom:10px}.cover-soboy{padding:20px 36px}.project-index{display:none}.project-category{font-size:11px}.project-title h3{margin:6px 0 12px;font-size:30px}.project-info p{font-size:15px}.project-links{margin-top:12px}.hero h1{font-size:clamp(34px,8.5vw,50px);margin-top:30px}.hero h1 .intro{font-size:14px}.hero-meta{gap:12px;flex-wrap:wrap}.hero-foot{font-size:9px}.section-note{font-size:11px}.section-head{gap:15px;flex-wrap:wrap}.about-grid,.skills-grid{grid-template-columns:1fr}.contact h2{font-size:clamp(34px,9vw,60px)}.contact{margin-top:48px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

.project-info{padding:0}.cover-soboy img{object-fit:contain;background:#fff}.cover-eventra img{object-fit:cover;object-position:left top}
.cover-eventra img{object-fit:contain}.cover-soboy img{width:auto;max-width:47%;background:transparent}.work-cover:focus-visible{outline:2px solid var(--accent);outline-offset:4px}

/* Expressive process and service cards. */
.hero-meta{justify-content:flex-end}.hero h1{font-size:clamp(38px,5.4vw,76px)}.hero h1 .accent{color:var(--accent)}
#projects .section-label h2{font-size:clamp(22px,2.8vw,38px);letter-spacing:-.04em;text-transform:none;line-height:1.15}#projects .section-label{align-items:center}
.process-cards,.service-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.process-card,.service-card{padding:28px;border-radius:18px;overflow:hidden;min-width:0}.process-card{background:#efeee7;border:1px solid #deddd4;display:flex;flex-direction:column}.process-card:nth-child(2){background:#f4e7df;border-color:#e8d8ce}.process-card:nth-child(3){background:#e7ece4;border-color:#d7dfd2}.card-top{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:10px;letter-spacing:.09em;font-weight:600}.card-top svg{width:22px;height:22px;flex-shrink:0}.process-visual{height:128px;display:flex;align-items:center;justify-content:center;gap:8px;margin:16px 0}.visual-focus span,.visual-focus b{font-size:11px;border:1px solid #c6c5b9;padding:10px;border-radius:50%;width:75px;height:75px;display:grid;place-items:center}.visual-focus b{background:#20231d;color:#fff;border:0;width:87px;height:87px;margin:0 -16px;z-index:1;font-size:17px}.visual-layout>div{width:64px;height:85px;border:1px solid #d9bbaa;border-radius:7px;background:#fff9f4;padding:9px;transform:rotate(-7deg)}.visual-layout>div:nth-child(2){transform:translateY(-10px);background:#c83e22;border-color:#c83e22}.visual-layout>div:last-child{transform:rotate(7deg)}.visual-layout b{display:block;height:29px;background:#dec4b5;border-radius:3px}.visual-layout span{display:block;height:4px;background:#dec4b5;margin-top:9px}.visual-layout>div:nth-child(2) b,.visual-layout>div:nth-child(2) span{background:#f1bda8}.visual-ready span{font-size:12px;color:#53634f}.visual-ready>svg{width:20px;color:#62785b}.visual-ready b{display:flex;gap:7px;align-items:center;border-radius:50px;background:#385741;color:#fff;padding:14px;font-size:13px}.visual-ready b svg{width:16px;height:16px}.process-cards h3{margin:0 0 14px;font-size:29px;letter-spacing:-.04em}.process-card p{font-size:14px;line-height:1.7;margin:0 0 24px;color:#54564f}.card-result{margin-top:auto;border-top:1px solid #25251c20;padding-top:18px;font-size:11px;color:#64665c}.card-result strong{display:block;color:#24271f;font-size:13px;font-weight:500;margin-top:6px}.service-card{background:#efeee8;border:0;display:flex;flex-direction:column}.service-card h3{font-size:clamp(24px,2.3vw,32px);letter-spacing:-.045em;line-height:1.15;margin:28px 0 16px}.service-card p{font-size:14px;line-height:1.7;margin:0;min-height:95px}.service-art{height:190px;margin:26px 0;position:relative}.browser-art{background:#faf9f4;border:1px solid #d6d4ca;border-radius:9px;padding:18px;overflow:hidden}.browser-dots{font-size:7px;letter-spacing:3px;color:#aaa89e;border-bottom:1px solid #deddd4;padding-bottom:12px;margin-bottom:17px}.browser-art strong{display:block;font-size:20px;font-weight:500;line-height:1.2;letter-spacing:-.05em;position:relative;z-index:1}.art-button{display:inline-block;margin-top:17px;font-size:9px;background:#c83e22;color:white;padding:8px 11px;border-radius:4px}.art-orbit{position:absolute;right:-12px;bottom:6px;font-size:110px;line-height:1;color:#dad8cd}.service-app{background:#252b26;color:#f8f7f0}.service-app p{color:#c1c9be}.service-app .card-top{color:#cfdbc8}.phone-art{display:flex;align-items:center;gap:18px}.mini-phone{width:128px;min-width:128px;background:#e9eddf;color:#222a20;border:5px solid #4b5749;padding:16px 10px;border-radius:20px;transform:rotate(-6deg)}.mini-phone small{font-size:8px}.mini-phone b{display:block;font-size:14px;line-height:1.2;margin:13px 0}.mini-phone>span{display:block;height:12px;border-radius:4px;background:#cbd6bd;margin:6px 0}.mini-phone em{display:block;font-style:normal;font-size:8px;border-top:1px solid #a7b39e;padding-top:9px;margin-top:12px}.phone-caption{font-size:13px;line-height:1.6;color:#c9d8bf}.service-demo{background:#f0e3db}.flow-art{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px}.flow-art span{border:1px solid #d7bbab;border-radius:6px;background:#f8f0eb;padding:9px 15px;font-size:11px}.flow-art b{background:#be4027;color:#fff;border-radius:8px;padding:15px;font-size:13px;font-weight:500}.flow-art svg{width:16px;height:16px;color:#a0755e}.service-foot{margin-top:auto;border-top:1px solid #24251d20;padding-top:17px;font-size:11px}.service-app .service-foot{border-color:#ffffff25;color:#c9d8bf}
@media(max-width:950px){.process-card,.service-card{padding:20px}.process-cards,.service-cards{gap:12px}.phone-caption{display:none}.phone-art{justify-content:center}.visual-focus span,.visual-focus b{width:60px;height:60px;font-size:10px}.visual-focus b{width:70px;height:70px;font-size:15px}.visual-ready{gap:5px}.visual-ready b{padding:9px;font-size:11px}}
@media(max-width:700px){.process-cards,.service-cards{grid-template-columns:1fr}.process-card,.service-card{padding:26px}.process-visual{height:110px}.service-card p{min-height:0}.service-card h3{font-size:32px}.phone-caption{display:block}.phone-art{justify-content:space-evenly}.hero h1{font-size:clamp(34px,7.7vw,54px)}#projects .section-label{gap:12px}#projects .dash{display:none}.process-cards h3{font-size:28px}}

/* Customer problem, evidence and engagement scope. */
.service-foot a{display:inline-flex;align-items:center;min-height:44px;font-size:12px;text-decoration:underline;text-underline-offset:4px}.service-card h3{font-size:clamp(23px,2.2vw,30px)}.start-layout{display:grid;grid-template-columns:1fr 1.2fr;gap:70px;padding:20px 0 25px}.start-lead h3{font-size:clamp(34px,4.2vw,58px);line-height:1.08;letter-spacing:-.05em;margin:0 0 24px}.start-lead p{max-width:360px;font-size:15px;line-height:1.8;color:var(--muted)}.start-steps{list-style:none;margin:0;padding:0}.start-steps li{display:grid;grid-template-columns:32px 1fr;gap:16px;padding:25px 0;border-top:1px solid var(--line)}.start-steps li>span{font-size:11px;color:var(--accent);padding-top:5px}.start-steps h3{font-size:20px;letter-spacing:-.025em;margin:0 0 10px}.start-steps p{font-size:14px;line-height:1.8;color:var(--muted);margin:0}.case-proof h2{font-size:clamp(29px,4vw,54px);max-width:900px;letter-spacing:-.04em}.proof-intro{font-size:18px;line-height:1.7;max-width:760px;margin:24px 0 36px;color:var(--muted)}.proof-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.proof-grid article{border-top:2px solid var(--accent);padding:24px 0}.proof-grid article>span{font-size:10px;letter-spacing:.09em;color:var(--muted)}.proof-grid h3{font-size:22px;letter-spacing:-.03em;margin:18px 0 14px}.proof-grid p{font-size:15px;line-height:1.8;color:var(--muted)}.proof-grid .text-link{display:inline-flex;margin-top:18px;min-height:44px;align-items:center}
@media(max-width:700px){.start-layout{grid-template-columns:1fr;gap:24px}.proof-grid{grid-template-columns:1fr;gap:10px}.proof-intro{font-size:16px}.hero h1{font-size:clamp(30px,7.4vw,52px)}}

.offer-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.offer-card{padding:28px;border:1px solid var(--line);border-radius:16px;display:flex;flex-direction:column;background:#fdfcf8}.offer-card h3{font-size:28px;line-height:1.15;letter-spacing:-.04em;margin:25px 0 16px}.offer-card>p,.offer-result p{font-size:14px;line-height:1.75;color:var(--muted)}.offer-card ul{padding-left:18px;font-size:14px;line-height:1.8;margin:22px 0}.offer-card li+li{margin-top:8px}.offer-result{border-top:1px solid var(--line);padding-top:18px;margin-top:auto}.offer-result>span{font-size:10px;letter-spacing:.08em;color:var(--muted)}.offer-card .btn{margin-top:25px;align-self:start;font-size:13px;white-space:normal}.offer-note{color:var(--muted);font-size:13px;line-height:1.7;margin:22px 0 0;max-width:650px}@media(max-width:800px){.offer-grid{grid-template-columns:1fr}.offer-card{padding:24px}.offer-card h3{font-size:27px}}

.expertise-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.expertise-card{padding:32px;border:1px solid var(--line);border-radius:16px;background:#efeee7}.expertise-card:last-child{background:#e7ece4}.expertise-card h3{font-size:clamp(24px,2.5vw,34px);letter-spacing:-.04em;line-height:1.2;margin:28px 0}.expertise-card ul{display:flex;flex-wrap:wrap;gap:10px;list-style:none;padding:0;margin:0}.expertise-card li{padding:10px 13px;border:1px solid #c9cec2;border-radius:6px;font-size:13px;line-height:1.5;background:#ffffff55}@media(max-width:700px){.expertise-grid{grid-template-columns:1fr}.expertise-card{padding:24px}}

.all-projects-link{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:24px;padding:22px 0}.all-projects-link p{font-size:14px;line-height:1.7;color:var(--muted);max-width:480px}@media(max-width:600px){.all-projects-link{align-items:start;flex-direction:column}}

/* Clear authorship and project scope for visitors from social posts. */
.brand-specialty{font-size:11px;font-weight:400;color:var(--muted);letter-spacing:0}.project-info .project-contribution{margin-top:20px;padding-top:16px;border-top:1px solid var(--line);font-size:12px;line-height:1.65;color:var(--muted)}.project-contribution span{display:block;margin-bottom:5px;font-size:10px;letter-spacing:.07em;text-transform:uppercase;color:var(--text)}
@media(max-width:380px){.brand{gap:7px}.brand-specialty{font-size:10px}}

.cover-admin{background:#dfe8e2;padding:16px}.cover-admin img{object-fit:contain;background:#f5f6f8}
