:root{--bg: #e7e7e7;--bg-soft: #efefef;--surface: #f8f8f8;--ink: #111111;--ink-soft: #464646;--line: #cfcfcf;--brand: #0f0f0f;--section-space: 68px}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:Public Sans,Segoe UI,sans-serif;background:var(--bg);color:var(--ink);line-height:1.55}h1,h2,h3{font-family:Sora,sans-serif;letter-spacing:-.02em}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid #111;outline-offset:2px}.container{width:min(calc(100% - 42px),1120px);margin:0 auto}.site-header,.admin-header{position:sticky;top:0;z-index:60;background:#e7e7e7f5;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.nav,.admin-nav{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:18px}.brand{font-family:Sora,sans-serif;font-weight:700;font-size:1.04rem}nav{display:flex;gap:14px;flex-wrap:wrap}nav a{font-size:.82rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:#3f3f3f;padding-bottom:2px;border-bottom:1px solid transparent;transition:color .16s ease,border-color .16s ease}nav a:hover{color:#000}nav a.is-active{color:#111;border-color:#111}.hero-stage{padding:28px 0 0;border-bottom:1px solid var(--line);background:#e5e5e5}.hero-v2{position:relative;padding-bottom:16px}.hero-v2:before{content:"";position:absolute;top:-36px;right:210px;width:310px;height:220px;background:radial-gradient(circle at 20% 30%,#46bcffb3,#fff578a6 43%,#ff8ac4a1 70%);filter:blur(20px);pointer-events:none;opacity:.9}.hero-topbar{position:relative;z-index:2;display:flex;justify-content:space-between;align-items:flex-start;gap:30px;margin-bottom:22px}.hero-menu-toggle{display:none}.its-me{font-family:Sora,sans-serif;font-size:2rem;line-height:1;border-bottom:2px solid #111;padding-bottom:6px;margin-top:8px}.hero-links{display:flex;justify-content:flex-end;align-items:flex-start;flex-wrap:nowrap;gap:16px;max-width:none;margin-left:auto}.hero-link-card{display:block;width:230px;border-top:2px solid #111;padding-top:8px;border-bottom:none;padding-bottom:0;position:relative;transition:opacity .14s ease;text-align:left}.hero-link-card:after{content:"↗";position:absolute;top:8px;right:0;line-height:1}.hero-link-card:hover{opacity:.75}.hero-links .hero-link-card.is-active{opacity:1}.hero-links h3{font-size:1rem;margin-bottom:4px;display:block;padding-right:18px;font-family:Sora,sans-serif;font-weight:400}.hero-link-title{min-width:0;text-transform:none;color:#111}.hero-links p{font-size:.92rem;color:#3f3f3f;line-height:1.35;text-transform:none;letter-spacing:normal;font-weight:400;margin-left:0}.hero-shell{display:grid;grid-template-columns:1.05fr .95fr;gap:8px;align-items:center}.label-mini{font-size:.72rem;text-transform:uppercase;letter-spacing:.18em;color:#6b6b6b;margin-bottom:12px}.hero-copy h1{font-size:clamp(2.2rem,6vw,3rem);line-height:1.03;margin-bottom:8px}.hero-copy h1 span{font-weight:800}.hero-wave{font-size:1.75rem;margin-bottom:10px}.hero-role-wrap{display:flex;align-items:center;gap:16px;margin-bottom:18px}.hero-role-line{width:105px;height:1px;background:#2b2b2b}.hero-role{font-size:2.5rem;font-weight:400;line-height:1}.hero-role-star{font-size:1.9rem;line-height:1}.hero-text{max-width:560px;color:var(--ink-soft);margin-bottom:16px;font-size:1.1rem}.hero-list{list-style:none;display:grid;gap:7px;margin-bottom:18px}.hero-list li{font-size:.9rem;color:#2d2d2d;padding-left:24px;position:relative}.hero-list li:before{content:"✓";position:absolute;left:0;top:-1px;font-size:.95rem;font-weight:700}.hero-actions{display:flex;gap:10px;flex-wrap:wrap}.btn-solid-dark,.btn-outline-dark{border-radius:1px;padding:10px 18px;font-size:.83rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;border:1px solid #111}.btn-solid-dark{background:#111;color:#fff}.btn-outline-dark{background:transparent;color:#111;border-color:transparent;border-bottom-color:#111;border-radius:0;padding-inline:4px}.hero-visual{position:relative;min-height:640px;display:grid;align-items:end}.glow{position:absolute;top:45px;left:16px;width:240px;height:150px;background:radial-gradient(circle at 20% 40%,#46b4ff61,#ff788257 52%,#ffd2784d);filter:blur(22px);opacity:.5}.portrait{position:relative;max-width:760px;margin-left:auto;border-bottom:0px solid #111}.portrait img{width:100%;display:block;filter:grayscale(8%)}.bubble{position:absolute;left:-36px;bottom:196px;width:146px;height:146px;border-radius:50%;background:#0f0f0f;color:#fff;display:grid;place-items:center;font-weight:600;font-family:Sora,sans-serif;font-size:2rem;transform:rotate(-9deg)}.ticker-band{background:#111;color:#fff;border-top:1px solid #202020;border-bottom:1px solid #202020;background-image:radial-gradient(circle at 1px 1px,rgba(255,255,255,.14) 1px,transparent 0);background-size:18px 18px}.ticker-line{min-height:70px;display:flex;align-items:center;justify-content:center;gap:16px;overflow-x:auto;white-space:nowrap;padding:0 10px}.ticker-line span{font-size:1.2rem;font-family:Sora,sans-serif;letter-spacing:.02em;text-transform:uppercase;opacity:.98;line-height:1;font-weight:700}.ticker-line i{font-size:1rem;opacity:.8;font-style:normal}.portfolio-block{padding:var(--section-space) 0}.portfolio-block.alt{background:#ececec;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.block-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:22px}.block-head.center{flex-direction:column;justify-content:center;align-items:center;text-align:center}.block-head h2{font-size:clamp(1.8rem,4vw,2.5rem);line-height:1}.block-sub{max-width:640px;font-size:.95rem;color:#636363;line-height:1.45}.services-cta{border:1px solid #111;border-radius:1px;padding:10px 16px;font-size:.74rem;text-transform:uppercase;letter-spacing:.1em;font-weight:700;background:#111;color:#fff;transition:transform .15s ease}.services-cta:hover{transform:translateY(-1px)}.offer-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.course-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.course-card{background:#f8f8f8;border:1px solid #222;padding:18px;display:grid;gap:10px;position:relative}.course-card small{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:#666}.course-card h3{font-size:1.12rem;line-height:1.2}.course-year{position:absolute;top:10px;right:10px;font-size:.72rem;line-height:1;border:1px solid #222222;background:transparent;color:#454545;padding:4px 7px;border-radius:1px}.course-card p{color:#4a4a4a;font-size:.9rem}.offer-card{background:#f6f6f6;border:1px solid #202020;padding:22px;min-height:205px;display:flex;flex-direction:column;justify-content:space-between;transition:transform .18s ease,box-shadow .18s ease}.offer-card:hover{transform:translateY(-3px);box-shadow:0 10px 18px #00000014}.offer-card.active{background:#111;color:#fff}.offer-kicker{text-transform:uppercase;font-size:.7rem;letter-spacing:.12em;color:#676767}.offer-card.active .offer-kicker{color:#bcbcbc}.offer-card h3{font-size:1.42rem;line-height:1.16}.offer-card a{font-size:.75rem;text-transform:uppercase;letter-spacing:.09em;font-weight:700}.exp-list{display:grid;gap:10px}.exp-row{background:#f6f6f6;border:1px solid #262626;padding:14px 16px;display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:14px}.exp-row:first-child{background:#111;color:#fff;border-color:#111}.exp-row .idx{width:30px;height:30px;border:1px solid currentColor;display:grid;place-items:center;font-size:.82rem;font-weight:700}.exp-row h3{font-size:1rem}.exp-row p{font-size:.84rem;color:#696969}.exp-row:first-child p{color:#ccc}.exp-tech-badges{margin-top:6px;display:flex;flex-wrap:wrap;gap:6px}.exp-tech-badge{display:inline-flex;align-items:center;border:1px solid #b8b8b8;background:#f1f1f1;color:#4d4d4d;border-radius:2px;padding:3px 8px;font-size:.68rem;line-height:1}.exp-row:first-child .exp-tech-badge{border-color:#5a5a5a;background:#1b1b1b;color:#c7c7c7}.exp-meta{display:grid;justify-items:end;gap:2px}.exp-meta span{font-size:.64rem;text-transform:uppercase;letter-spacing:.12em;color:#7a7a7a}.exp-meta small{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;font-weight:600}.exp-row:first-child .exp-meta span{color:#aeaeae}.cases-swiper{padding-bottom:6px}.cases-swiper .swiper-wrapper{align-items:stretch}.cases-swiper-footer{margin-top:16px;display:flex;align-items:center;justify-content:space-between;gap:12px}.cases-swiper .swiper-pagination{position:static;display:flex;gap:8px}.cases-swiper .swiper-pagination-bullet{width:8px;height:8px;margin:0!important;border-radius:2px;background:#a7a7a7;opacity:1}.cases-swiper .swiper-pagination-bullet-active{width:20px;background:#111}.cases-swiper-nav{display:flex;gap:8px}.cases-swiper .swiper-button-prev,.cases-swiper .swiper-button-next{position:static;width:40px;height:40px;margin:0;border:1px solid #111;background:#f3f3f3;color:#111}.cases-swiper .swiper-button-prev:after,.cases-swiper .swiper-button-next:after{font-size:14px;font-weight:800}.cases-swiper .swiper-button-disabled{opacity:.35}.case-item{display:grid;grid-template-columns:1.1fr 1fr;gap:10px;align-items:stretch;border:1px solid #d0d0d0;background:#f4f4f4;min-height:310px}.swiper-slide .case-item{height:100%}.case-media{min-height:220px;background:linear-gradient(155deg,#191919 8%,#666 65%,#c2c2c2);overflow:hidden}.case-media img{width:100%;height:100%;object-fit:cover;display:block}.case-info{background:#f8f8f8;padding:16px;display:grid;gap:9px;align-content:center}.badge{width:fit-content;background:#111;color:#fff;font-size:.68rem;padding:4px 10px;border-radius:1px;letter-spacing:.08em;text-transform:uppercase}.case-info h3{font-size:1.4rem}.case-info p{color:#fff;line-height:1.45}.case-info a{text-transform:uppercase;letter-spacing:.08em;font-size:.77rem}.testimonial-band{background:#e9e9e9;border-top:1px solid #d3d3d3;border-bottom:1px solid #d3d3d3}.testi-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:24px;align-items:center}.testi-grid h2{font-size:clamp(1.72rem,3.35vw,2.65rem);line-height:1.05;margin-bottom:18px}.testi-copy{position:relative}.testi-copy:before{content:"“";position:absolute;top:-26px;left:-10px;font-family:Sora,sans-serif;font-size:4.2rem;color:#1a1a1a;opacity:.18}.testi-sign{display:grid;gap:3px}.sig-name{font-size:1rem;font-weight:700;letter-spacing:.01em}.sig{color:#626262;font-size:.86rem}.testi-photo{min-height:300px;position:relative;border:1px solid #222;background:#d8d8d8;clip-path:polygon(16% 0,84% 0,100% 16%,100% 84%,84% 100%,16% 100%,0 84%,0 16%);overflow:hidden}.testi-photo img{width:100%;height:100%;object-fit:cover;display:block;filter:grayscale(12%)}.stats-band{border-top:1px solid #cfcfcf;border-bottom:1px solid #cfcfcf;background:#efefef}.stats-grid-pro{display:grid;grid-template-columns:repeat(4,1fr)}.stats-grid-pro article{border-right:1px solid #cfcfcf;padding:18px 16px;display:grid;gap:6px;background:linear-gradient(180deg,#ffffff59,#fff0)}.stats-grid-pro article:last-child{border-right:none}.stats-icon{font-size:.94rem;color:#1f1f1f}.stats-grid-pro strong{font-size:2rem;line-height:1}.stats-grid-pro span{font-size:.74rem;text-transform:uppercase;letter-spacing:.09em;color:#636363}.contact-pro .block-head p{color:#626262}.contact-title span{color:#949494}.form-duo{display:grid;grid-template-columns:1fr 1fr;gap:16px}.line-form{background:#f8f8f8;border:1px solid #bbb;padding:18px;display:grid;gap:10px}.line-form h3{font-size:1rem;text-transform:uppercase;letter-spacing:.09em}.chip-field{display:grid;gap:8px;margin-top:2px}.chip-field p{font-size:.74rem;text-transform:uppercase;letter-spacing:.1em;color:#616161}.chip-list{display:flex;flex-wrap:wrap;gap:8px}.chip-option{border:1px solid #a6a6a6;background:#f3f3f3;color:#222;border-radius:1px;padding:7px 12px;font-size:.74rem;line-height:1;text-transform:uppercase;letter-spacing:.06em;cursor:pointer;transition:background .14s ease,color .14s ease,border-color .14s ease}.chip-option.is-selected{background:#111;color:#fff;border-color:#111}.submit-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.submit-row small{color:#696969;font-size:.76rem;text-transform:uppercase;letter-spacing:.09em}.line-form input,.line-form textarea,.form-box input,.form-box textarea,.form-box select,input,textarea,select{width:100%;border:none;border-bottom:1px solid #888;background:transparent;padding:8px 2px;font:inherit;transition:border-color .14s ease}.line-form input:focus,.line-form textarea:focus,.form-box input:focus,.form-box textarea:focus,.form-box select:focus,input:focus,textarea:focus,select:focus{border-bottom-color:#111}.line-form button,.form-box button,button,.button-link{width:fit-content;border:1px solid #111;background:#111;color:#fff;border-radius:1px;padding:10px 16px;text-transform:uppercase;letter-spacing:.08em;font-size:.77rem;font-weight:700;cursor:pointer}.alert{border:1px solid #222;background:#f4f4f4;padding:12px 14px;margin-top:10px}.alert.success{border-color:#3f7c4d}.alert.danger{border-color:#a53a3a}.alert ul{padding-left:18px}.site-footer{border-top:1px solid #cfcfcf;padding:20px 0 26px}.site-footer p{color:#626262;font-size:.83rem;line-height:1.45}.back-to-top{position:fixed;right:16px;bottom:16px;width:44px;height:44px;border:1px solid #111;background:#111;color:#fff;border-radius:50%;display:grid;place-items:center;font-size:1.2rem;cursor:pointer;opacity:0;transform:translateY(10px);pointer-events:none;transition:opacity .17s ease,transform .17s ease}.back-to-top.is-visible{opacity:1;transform:translateY(0);pointer-events:auto}.section{padding:52px 0}.form-box{background:#f8f8f8;border:1px solid #bbb;padding:18px;display:grid;gap:8px}.checkbox{display:flex;align-items:center;gap:8px}.checkbox input{width:auto}.card{background:#f8f8f8;border:1px solid #bbb;padding:14px}.stats-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:10px;margin-bottom:16px}.stats-grid .card p{font-size:1.2rem;font-weight:700}.table-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}table{width:100%;border-collapse:collapse;background:#f8f8f8;border:1px solid #bbb}th,td{text-align:left;padding:10px;border-bottom:1px solid #ddd;font-size:.88rem}td.actions{display:flex;gap:8px;align-items:center}td.actions form{display:inline}.link-danger{border:none;background:transparent;color:#b13636;padding:0;cursor:pointer}.project-thumb{width:88px;height:58px;object-fit:cover;border:1px solid #d4d4d4;border-radius:6px;display:block}.muted{color:#6a6a6a;font-size:.82rem}.images-pane{border:1px solid #d8d8d8;background:#fff;padding:10px;display:grid;gap:8px}.project-gallery-admin{display:flex;flex-wrap:nowrap;overflow-x:auto;gap:10px;margin-bottom:8px;padding-bottom:6px}.gallery-item{border:1px solid #ddd;padding:6px;display:grid;gap:6px;min-width:145px;background:#fff;cursor:grab}.gallery-item.dragging{opacity:.55;cursor:grabbing}.gallery-item img{width:100%;height:90px;object-fit:cover;display:block}.gallery-item span{font-size:.78rem;color:#444;display:flex;align-items:center;gap:6px;word-break:break-all}.remove-temp{border:1px solid #b33;background:#fff;color:#b33;border-radius:4px;padding:4px 8px;font-size:.72rem;cursor:pointer}.page-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.inline-form{margin-top:10px;display:flex;gap:8px;align-items:center}.auth-page{min-height:100vh;display:grid;place-items:center}.auth-card{width:min(94%,430px);background:#f8f8f8;border:1px solid #bbb;padding:20px}.auth-card p{margin-bottom:10px;color:#555}.back-link{display:inline-block;margin-top:12px;color:#555}@media(max-width:980px){html{scroll-behavior:auto}:root{--section-space: 54px}.container{width:min(calc(100% - 28px),1120px)}.hero-links{grid-template-columns:1fr;width:100%;max-width:100%;display:none}.hero-topbar{align-items:center;gap:12px;flex-wrap:wrap}.hero-menu-toggle{width:42px;height:38px;border:2px solid #111;background:transparent;display:inline-flex;flex-direction:column;justify-content:center;gap:4px;padding:0 10px;margin-left:auto;cursor:pointer}.hero-menu-toggle span{display:block;height:1px;background:#111;width:100%;transition:transform .17s ease,opacity .17s ease}.hero-topbar.is-menu-open .hero-menu-toggle span:nth-child(1){transform:translateY(5px) rotate(45deg)}.hero-topbar.is-menu-open .hero-menu-toggle span:nth-child(2){opacity:0}.hero-topbar.is-menu-open .hero-menu-toggle span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}.hero-topbar.is-menu-open .hero-links{display:grid}.hero-v2:before{right:30px;top:-18px;width:210px;height:160px}.its-me{font-size:1.5rem}.hero-shell,.testi-grid,.form-duo,.table-grid,.stats-grid,.stats-grid-pro,.offer-grid,.course-grid,.case-item{grid-template-columns:1fr}.exp-row{grid-template-columns:34px 1fr}.exp-meta{justify-items:start;grid-column:2}.cases-swiper-footer{flex-direction:column;align-items:flex-start}.nav,.admin-nav{flex-wrap:wrap;padding:10px 0}.hero-visual{min-height:360px}.hero-copy h1{font-size:clamp(1.95rem,10vw,3rem)}.hero-text{font-size:1rem}.hero-actions{width:100%}.hero-actions a{flex:1 1 auto;text-align:center}.hero-role-wrap{gap:10px}.hero-role-line{width:60px}.hero-role{font-size:1.32rem}.hero-role-star{font-size:1.3rem}.bubble{left:10px;bottom:16px;width:90px;height:90px;font-size:1.2rem}.ticker-line span{font-size:1.15rem}.ticker-line i{font-size:.82rem}.ticker-line{justify-content:flex-start;min-height:58px}.line-form{padding:14px}.line-form button,.submit-row,.submit-row small{width:100%}.testi-copy:before{top:-18px;left:-4px;font-size:3rem}.back-to-top{right:12px;bottom:12px;width:40px;height:40px}}@media(max-width:640px){:root{--section-space: 46px}.nav{min-height:auto;gap:10px}.brand{font-size:.95rem}nav a{font-size:.72rem;letter-spacing:.06em}.hero-stage{padding-top:18px}.hero-copy h1{line-height:1.06}.hero-list li{font-size:.84rem}.btn-solid-dark,.btn-outline-dark{padding:9px 12px;font-size:.72rem}.portrait{border-bottom-width:0px}.ticker-line span{font-size:.92rem}.offer-card,.course-card,.line-form{min-height:auto}.case-info h3{font-size:1.15rem}.testi-grid h2{font-size:clamp(1.55rem,8.2vw,2rem)}.stats-grid-pro strong{font-size:1.7rem}.chip-option{font-size:.68rem;padding:6px 10px}}.portfolio-home{--home-bg: #ececec;--home-surface: #ffffff;--home-surface-soft: #f5f5f5;--home-ink: #0f0f0f;--home-muted: #555555;--home-line: #141414;--home-line-soft: #c6c6c6;background:var(--home-bg);color:var(--home-ink)}.portfolio-home .container{width:min(calc(100% - 56px),1180px)}.portfolio-home .hero-stage{padding:26px 0 0;border-bottom:1px solid var(--home-line);background:var(--home-bg)}.portfolio-home .hero-v2:before,.portfolio-home .glow{display:none}.portfolio-home .hero-v2{padding-bottom:18px}.portfolio-home .hero-topbar{display:flex;align-items:flex-start;gap:18px;margin-bottom:26px}.portfolio-home .its-me{display:inline-flex;align-items:center;min-height:62px;font-size:clamp(2rem,2.2vw,2.3rem);font-weight:700;text-transform:lowercase;border-bottom:3px solid var(--home-line);padding-bottom:4px;margin-top:0;white-space:nowrap}.portfolio-home .hero-links{margin-left:auto;width:min(100%,790px);display:grid;grid-template-columns:repeat(3,minmax(185px,1fr));justify-content:end;gap:14px}.portfolio-home .hero-link-card{width:100%;min-height:120px;border:1px solid var(--home-line);border-top-width:3px;padding:10px 12px 14px;background:var(--home-surface);position:relative;text-align:left;transition:transform .18s ease,background-color .18s ease}.portfolio-home .hero-link-card:after{content:"↗";position:absolute;top:10px;right:10px;font-size:1rem}.portfolio-home .hero-link-card:hover{transform:translateY(-2px);background:#f1f1f1;opacity:1}.portfolio-home .hero-link-card.is-active{background:var(--home-surface);opacity:1}.portfolio-home .hero-link-kicker{display:inline-block;font-size:.66rem;line-height:1;text-transform:uppercase;letter-spacing:.14em;margin-bottom:9px;color:#2f2f2f;border-bottom:1px solid #7d7d7d;padding-bottom:3px}.portfolio-home .hero-links h3{margin:0 16px 6px 0;font-size:1.2rem;line-height:1;font-weight:700;padding-right:0}.portfolio-home .hero-link-title{color:var(--home-ink)}.portfolio-home .hero-links p{margin:0;color:#404040;font-size:.93rem;line-height:1.35}.portfolio-home .hero-shell{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);border:1px solid var(--home-line);background:var(--home-surface-soft)}.portfolio-home .hero-copy,.portfolio-home .hero-visual{padding:clamp(20px,3vw,38px)}.portfolio-home .hero-copy{border-right:1px solid var(--home-line-soft)}.portfolio-home .hero-copy h1{font-size:clamp(2.4rem,5.1vw,4.2rem);line-height:.95;margin-bottom:10px}.portfolio-home .hero-copy h1 span{font-weight:700}.portfolio-home .hero-role-wrap{gap:14px;margin-bottom:20px}.portfolio-home .hero-role-line{width:94px;background:#222}.portfolio-home .hero-role{font-size:clamp(1.3rem,2.2vw,2rem);line-height:1.1}.portfolio-home .hero-text{max-width:60ch;color:#3f3f3f;font-size:1.08rem;margin-bottom:14px}.portfolio-home .hero-list{gap:8px;margin-bottom:24px}.portfolio-home .hero-list li{font-size:1rem;color:#2c2c2c}.portfolio-home .hero-actions{gap:10px}.portfolio-home .btn-solid-dark,.portfolio-home .btn-outline-dark{border-radius:0;border-width:1px;padding:12px 16px;font-size:.78rem;letter-spacing:.1em}.portfolio-home .btn-outline-dark{border-color:var(--home-line);border-bottom-width:1px;background:transparent}.portfolio-home .hero-visual{min-height:570px;display:flex;align-items:flex-end;justify-content:center;background:#e1e1e1}.portfolio-home .portrait{width:min(94%,720px);margin-left:0}.portfolio-home .portrait img{width:100%;height:auto;display:block;object-fit:contain;filter:grayscale(100%)}.portfolio-home .ticker-band{background:#111;border-top:1px solid #111;border-bottom:1px solid #111;background-image:linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px),linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px);background-size:20px 20px}.portfolio-home .ticker-line{min-height:62px;justify-content:center;gap:14px}.portfolio-home .portfolio-block{padding:clamp(56px,7vw,84px) 0}.portfolio-home .portfolio-block.alt{background:#e8e8e8;border-color:#cfcfcf}.portfolio-home .label-mini{color:#666;margin-bottom:10px}.portfolio-home .block-head{margin-bottom:24px}.portfolio-home .block-head h2{font-size:clamp(1.9rem,3.9vw,2.7rem)}.portfolio-home .services-cta{border-radius:0}.portfolio-home .offer-grid{gap:14px}.portfolio-home .offer-card,.portfolio-home .course-card,.portfolio-home .exp-row,.portfolio-home .line-form,.portfolio-home .case-item,.portfolio-home .testi-photo,.portfolio-home .stats-grid-pro article{border-radius:0}.portfolio-home .offer-card{min-height:220px;border:1px solid var(--home-line);background:var(--home-surface);padding:20px}.portfolio-home .offer-card:hover{box-shadow:none;transform:translateY(-2px)}.portfolio-home .offer-card.active{background:#111}.portfolio-home .course-grid{gap:14px}.portfolio-home .course-card{border:1px solid var(--home-line);background:#f7f7f7}.portfolio-home .course-year{border-radius:0;border-color:var(--home-line);color:#222}.portfolio-home .exp-list{gap:12px}.portfolio-home .exp-row{grid-template-columns:44px minmax(0,1fr) auto;padding:16px;border:1px solid var(--home-line);background:#f8f8f8}.portfolio-home .exp-row h3{font-size:1.06rem}.portfolio-home .exp-row:first-child{background:#111;color:#fff}.portfolio-home .exp-tech-badge{border-radius:0}.portfolio-home .cases-swiper{padding-bottom:4px}.portfolio-home .case-item{grid-template-columns:minmax(0,1fr);min-height:100%;border:1px solid var(--home-line);overflow:hidden;background:#111}.portfolio-home .case-media{min-height:230px;background:#d3d3d3}.portfolio-home .case-info{background:#111;color:#fff;padding:18px}.portfolio-home .case-info h3{font-size:1.3rem}.portfolio-home .case-info p{color:#fff}.portfolio-home .case-info a{color:#fff;border-bottom:1px solid #fff;width:fit-content;padding-bottom:2px}.portfolio-home .cases-swiper .swiper-button-prev,.portfolio-home .cases-swiper .swiper-button-next{border-radius:0;background:#fff}.portfolio-home .testimonial-band{background:#e6e6e6}.portfolio-home .testi-grid{gap:28px}.portfolio-home .testi-grid h2{font-size:clamp(1.55rem,3vw,2.25rem)}.portfolio-home .testi-photo{clip-path:none;border:1px solid var(--home-line)}.portfolio-home .stats-band{border-top:1px solid var(--home-line);border-bottom:1px solid var(--home-line)}.portfolio-home .stats-grid-pro{grid-template-columns:repeat(4,minmax(0,1fr))}.portfolio-home .stats-grid-pro article{border-right:1px solid var(--home-line);background:#f3f3f3;padding:20px 16px}.portfolio-home .stats-grid-pro span,.portfolio-home .contact-pro .block-head p{color:#4a4a4a}.portfolio-home .contact-title span{color:#7a7a7a}.portfolio-home .form-duo{gap:14px}.portfolio-home .line-form{border:1px solid var(--home-line);background:#f8f8f8;padding:20px}.portfolio-home .line-form h3{font-size:.95rem}.portfolio-home .line-form input,.portfolio-home .line-form textarea,.portfolio-home .line-form select{border-bottom-color:#4a4a4a}.portfolio-home .line-form input:focus,.portfolio-home .line-form textarea:focus,.portfolio-home .line-form select:focus{border-bottom-color:#111}.portfolio-home .back-to-top{border-radius:0}@media(max-width:1140px){.portfolio-home .hero-links{width:min(100%,660px);grid-template-columns:repeat(3,minmax(170px,1fr))}.portfolio-home .hero-copy h1{font-size:clamp(2.15rem,4.8vw,3.5rem)}.portfolio-home .hero-visual{min-height:500px}}@media(max-width:980px){.portfolio-home .container{width:min(calc(100% - 30px),1180px)}.portfolio-home .hero-stage{padding-top:18px}.portfolio-home .hero-topbar{align-items:center;flex-wrap:wrap;margin-bottom:16px}.portfolio-home .its-me{min-height:auto;font-size:1.6rem}.portfolio-home .hero-menu-toggle{width:42px;height:38px;border:1px solid var(--home-line);background:#fff;display:inline-flex;flex-direction:column;justify-content:center;gap:4px;padding:0 10px;margin-left:auto;cursor:pointer}.portfolio-home .hero-menu-toggle span{display:block;height:1px;width:100%;background:#111;transition:transform .17s ease,opacity .17s ease}.portfolio-home .hero-topbar.is-menu-open .hero-menu-toggle span:nth-child(1){transform:translateY(5px) rotate(45deg)}.portfolio-home .hero-topbar.is-menu-open .hero-menu-toggle span:nth-child(2){opacity:0}.portfolio-home .hero-topbar.is-menu-open .hero-menu-toggle span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}.portfolio-home .hero-links{margin-left:0;width:100%;grid-template-columns:1fr;display:none}.portfolio-home .hero-topbar.is-menu-open .hero-links{display:grid}.portfolio-home .hero-link-card{min-height:0}.portfolio-home .hero-shell{grid-template-columns:1fr}.portfolio-home .hero-copy{border-right:none;border-bottom:1px solid var(--home-line-soft)}.portfolio-home .hero-visual{min-height:0;padding-top:0}.portfolio-home .portrait{width:100%;max-width:600px;margin-inline:auto}.portfolio-home .offer-grid,.portfolio-home .course-grid,.portfolio-home .testi-grid,.portfolio-home .form-duo,.portfolio-home .stats-grid-pro{grid-template-columns:1fr}.portfolio-home .stats-grid-pro article{border-right:none;border-bottom:1px solid var(--home-line)}.portfolio-home .stats-grid-pro article:last-child{border-bottom:none}.portfolio-home .cases-swiper-footer{align-items:flex-start;gap:10px}.portfolio-home .exp-row{grid-template-columns:36px 1fr;gap:10px}.portfolio-home .exp-meta{justify-items:start;grid-column:2}.portfolio-home .hero-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.portfolio-home .hero-actions a{text-align:center}}@media(max-width:640px){.portfolio-home .container{width:min(calc(100% - 20px),1180px)}.portfolio-home .hero-copy,.portfolio-home .hero-visual,.portfolio-home .line-form{padding:16px}.portfolio-home .hero-copy h1{font-size:clamp(2rem,11vw,2.6rem)}.portfolio-home .hero-role{font-size:1.18rem}.portfolio-home .hero-role-line{width:54px}.portfolio-home .hero-text,.portfolio-home .hero-list li{font-size:.95rem}.portfolio-home .hero-actions{grid-template-columns:1fr}.portfolio-home .block-head h2{font-size:clamp(1.55rem,8.5vw,2rem)}.portfolio-home .ticker-line{justify-content:flex-start}.portfolio-home .ticker-line span{font-size:.94rem}.portfolio-home .testi-grid h2{font-size:clamp(1.25rem,7.3vw,1.7rem)}}.project-page{--project-bg: #ececec;--project-surface: #f8f8f8;--project-ink: #111;--project-line: #141414;background:var(--project-bg);color:var(--project-ink)}.project-page .container{width:min(calc(100% - 56px),1140px)}.project-page .project-hero{padding:28px 0 36px}.project-page .project-topbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px}.project-page .project-topbar a{font-size:.82rem;text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid #111;padding-bottom:3px}.project-page .project-hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);border:1px solid var(--project-line);background:var(--project-surface)}.project-page .project-copy,.project-page .project-cover{padding:clamp(16px,2.6vw,30px)}.project-page .project-copy{border-right:1px solid #cfcfcf}.project-page h1{font-family:Sora,sans-serif;font-size:clamp(2rem,4.6vw,3.4rem);line-height:.98;margin-bottom:10px}.project-page .project-summary{color:#444;font-size:1.05rem;line-height:1.5;margin-bottom:16px}.project-page .project-badges{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}.project-page .project-badges span{border:1px solid var(--project-line);background:#fff;padding:5px 9px;font-size:.74rem;text-transform:lowercase;border-radius:0}.project-page .project-links{display:flex;flex-wrap:wrap;gap:8px}.project-page .project-cover{background:#e1e1e1;display:grid;place-items:center}.project-page .project-cover img{width:100%;max-height:520px;object-fit:contain;filter:grayscale(100%)}.project-page .project-content{padding-bottom:18px}.project-page .project-content-grid{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.project-page .project-block{border:1px solid var(--project-line);background:var(--project-surface);padding:18px}.project-page .project-block h2{font-size:1.1rem;margin-bottom:8px}.project-page .project-block p{color:#444;line-height:1.55}.project-page .project-features{grid-column:1 / -1}.project-page .project-features ul{list-style:none;display:grid;gap:7px}.project-page .project-features li{padding-left:18px;position:relative}.project-page .project-features li:before{content:"■";position:absolute;left:0;top:1px;font-size:.58rem}.project-page .project-gallery-section,.project-page .project-related{padding:28px 0 8px}.project-page .project-gallery-full{width:100vw;margin-left:calc(50% - 50vw);padding-inline:clamp(10px,3vw,30px)}.project-page .project-gallery-track{display:flex;flex-wrap:nowrap;gap:10px;overflow-x:auto;overflow-y:hidden;padding-bottom:6px;scroll-snap-type:x proximity}.project-page .project-gallery-item{border:1px solid var(--project-line);background:#f0f0f0;min-width:min(38vw,430px);height:240px;padding:0;cursor:zoom-in;flex:0 0 auto;scroll-snap-align:start}.project-page .project-gallery-item img{width:100%;height:100%;object-fit:cover;display:block}.project-page .project-lightbox{position:fixed;inset:0;background:#000000e0;z-index:1200;display:grid;place-items:center;padding:24px}.project-page .project-lightbox[hidden]{display:none}.project-page .project-lightbox img{max-width:min(94vw,1260px);max-height:88vh;object-fit:contain;border:1px solid #fff;background:#111;touch-action:pan-y;-webkit-user-select:none;user-select:none;cursor:grab}.project-page .project-lightbox.is-dragging img{cursor:grabbing}.project-page .project-lightbox-close{position:absolute;top:14px;right:14px;width:42px;height:42px;border:1px solid #fff;background:#0000004d;color:#fff;font-size:1.8rem;line-height:1;padding:0}.project-page .project-lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);width:42px;height:64px;border:1px solid #fff;background:#0000004d;color:#fff;font-size:2rem;line-height:1;padding:0}.project-page .project-lightbox-nav.prev{left:14px}.project-page .project-lightbox-nav.next{right:14px}.project-page .related-grid{display:grid;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr))}.project-page .related-grid article{border:1px solid var(--project-line);background:var(--project-surface);display:grid;gap:10px;padding:12px}.project-page .related-media{border:1px solid #cdcdcd;min-height:130px;overflow:hidden;background:#e4e4e4}.project-page .related-media img{width:100%;height:100%;object-fit:cover}.project-page .related-grid h3{font-size:1.02rem;line-height:1.2}.project-page .related-grid p{color:#444;font-size:.9rem}.project-page .related-grid a{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid #111;width:fit-content;padding-bottom:2px}@media(max-width:980px){.project-page .container{width:min(calc(100% - 30px),1140px)}.project-page .project-hero-grid,.project-page .project-content-grid,.project-page .related-grid{grid-template-columns:1fr}.project-page .project-gallery-item{min-width:84vw;max-width:84vw;height:220px}.project-page .project-gallery-full{padding-inline:10px}.project-page .project-copy{border-right:none;border-bottom:1px solid #cfcfcf}.project-page .project-topbar{flex-wrap:wrap}}@media(max-width:640px){.project-page .container{width:min(calc(100% - 20px),1140px)}.project-page .project-copy,.project-page .project-cover,.project-page .project-block,.project-page .related-grid article{padding:14px}.project-page .project-topbar a{font-size:.72rem}.project-page .project-lightbox{padding:10px}.project-page .project-lightbox-nav{width:36px;height:52px}.project-page .project-lightbox-close{width:38px;height:38px}}
