@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@600;700;800&display=swap');
:root{--ink:#17211b;--cream:#f3f0e7;--lime:#c9ef67;--orange:#ef6948;--white:#fffdf8;--muted:#68716b}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:"DM Sans",sans-serif}a{color:inherit;text-decoration:none}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.site-header{height:82px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(24px,6vw,92px);border-bottom:1px solid #17211b20;position:relative;z-index:10}.brand{display:flex;align-items:center;gap:10px;font:800 20px Manrope,sans-serif}.brand-mark{width:34px;height:34px;display:grid;place-items:center;background:var(--ink);color:var(--lime);border-radius:50%;font-size:15px}.main-nav{display:flex;align-items:center;gap:28px;font-size:14px;font-weight:600}.main-nav a{padding:10px 0}.main-nav a.active:not(.nav-cta){color:var(--orange)}.nav-cta{padding:11px 20px!important;border:1px solid;border-radius:100px}.nav-cta:hover,.nav-cta.active{background:var(--ink);color:white}.menu-button{display:none;border:0;background:none}.menu-button span:not(.sr-only){display:block;width:24px;height:2px;margin:5px;background:var(--ink)}.language-control{position:relative}.language-select{appearance:none;border:1px solid #17211b40;background:transparent;color:var(--ink);border-radius:100px;padding:8px 28px 8px 12px;font:700 11px "DM Sans",sans-serif;cursor:pointer;background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:calc(100% - 13px) 13px,calc(100% - 9px) 13px;background-size:4px 4px,4px 4px;background-repeat:no-repeat}.language-select:focus-visible{outline:2px solid var(--orange);outline-offset:2px}
.hero{min-height:calc(100vh - 82px);display:grid;grid-template-columns:1.05fr .95fr;align-items:center;padding:70px clamp(24px,8vw,120px);overflow:hidden}.hero-copy{z-index:2}.eyebrow{display:flex;align-items:center;gap:10px;margin:0 0 28px;text-transform:uppercase;letter-spacing:.15em;font-size:11px;font-weight:700}.eyebrow span{width:28px;height:2px;background:var(--orange)}h1,h2{font-family:Manrope,sans-serif;letter-spacing:-.055em;line-height:.98;margin:0}h1{font-size:clamp(50px,6.5vw,96px)}h1 em,h2 em{font-family:Georgia,serif;font-weight:400;color:var(--orange)}.hero-text,.page-intro{max-width:600px;color:var(--muted);font-size:18px;line-height:1.7;margin:30px 0}.hero-actions{display:flex;align-items:center;gap:30px}.button{display:inline-flex;gap:24px;padding:16px 22px;border-radius:100px;font-weight:700;transition:.2s}.button:hover{transform:translateY(-3px)}.button-primary{background:var(--ink);color:white}.button-light{background:white;color:var(--ink)}.text-link{font-weight:700;border-bottom:1px solid;padding-bottom:4px}
.hero-art{min-height:480px;position:relative}.code-window,.terminal-large{background:#101713;color:#e9eee9;border-radius:16px;box-shadow:0 30px 80px #17211b2d;overflow:hidden}.code-window{position:absolute;width:min(540px,44vw);right:-3%;top:16%;transform:rotate(3deg)}.window-bar{height:48px;display:flex;align-items:center;gap:7px;padding:0 18px;background:#202923;color:#849087;font-size:11px}.window-bar i{width:9px;height:9px;border-radius:50%;background:#ef6948}.window-bar i:nth-child(2){background:#efd867}.window-bar i:nth-child(3){background:#88c96e}.window-bar span{margin-left:8px}.code-window pre,.terminal-large pre{margin:0;padding:38px;line-height:1.8;font-size:15px}.code-window b,.terminal-large b{color:#ed765b}.code-window em{color:#d5ef8f}.code-window strong,.terminal-large strong{color:#83d191}.float-tag{position:absolute;padding:10px 16px;background:white;border-radius:100px;box-shadow:0 10px 30px #17211b24;font:600 12px monospace}.tag-a{left:3%;top:10%}.tag-b{right:2%;bottom:10%;background:var(--lime)}
.home-projects,.skills-section{background:var(--white);padding:110px clamp(24px,8vw,120px)}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:55px}.section-heading h2,.about-copy h2,.case-content h2{font-size:clamp(40px,5vw,68px)}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.project-card{min-height:470px;padding:32px;display:flex;flex-direction:column;justify-content:space-between;position:relative;transition:.25s}.project-card:hover{transform:translateY(-6px)}.project-dark{background:var(--ink);color:white}.project-lime{background:var(--lime)}.project-card>span,.project-card p{font-size:11px;text-transform:uppercase;letter-spacing:.12em}.project-card h3{font:800 clamp(38px,4vw,60px) Manrope;margin:10px 0}.project-card small{display:block;max-width:360px;font-size:16px;line-height:1.6;opacity:.7}.circle-arrow{position:absolute;right:28px;bottom:28px;width:48px;height:48px;border:1px solid #ffffff70;border-radius:50%;display:grid;place-items:center;font-size:20px}.project-lime .circle-arrow{border-color:#17211b60}.cta-strip{text-align:center;background:var(--orange);color:white;padding:100px 24px}.cta-strip p{font-weight:700}.cta-strip h2{font-size:clamp(48px,7vw,90px);margin:12px 0 35px}.site-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:40px clamp(24px,6vw,92px);background:var(--ink);color:white;font-size:13px}.site-footer>div{display:flex;gap:22px}.site-footer .brand-mark{background:var(--lime);color:var(--ink)}
.page-hero{padding:110px clamp(24px,10vw,150px) 90px}.page-hero h1{max-width:1000px}.about-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(50px,9vw,140px);padding:30px clamp(24px,10vw,150px) 120px;align-items:center}.portrait-placeholder{aspect-ratio:4/5;background:var(--lime);display:flex;flex-direction:column;align-items:center;justify-content:center}.portrait-placeholder span{font:800 clamp(100px,16vw,220px) Manrope;color:var(--ink)}.portrait-placeholder small{font-weight:700}.about-copy p,.case-content p{font-size:16px;line-height:1.8;color:var(--muted)}.about-copy .lead,.case-content .lead{font-size:21px;color:var(--ink)}.about-copy .button{margin-top:20px}.skill-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.skill-grid article{border-top:2px solid;padding:25px 8px;min-height:280px}.skill-grid article>span,.project-info>span{font-size:11px;color:var(--orange);text-transform:uppercase;letter-spacing:.1em}.skill-grid h3{font:700 23px Manrope;margin-top:55px}.skill-grid p{color:var(--muted);line-height:1.6}.chips{display:flex;gap:7px;flex-wrap:wrap}.chips b{font-size:11px;padding:7px 10px;border:1px solid #17211b30;border-radius:100px}
.projects-list{padding:0 clamp(24px,8vw,120px) 120px}.project-row{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(35px,8vw,110px);align-items:center;padding:70px 0;border-top:1px solid #17211b30}.project-row.reverse .project-visual{order:2}.project-visual{min-height:430px;display:grid;place-items:center}.lanctl-visual{background:var(--ink)}.git-visual{background:var(--lime)}.terminal-mini{background:#0d120f;color:#eee;padding:30px;border-radius:9px;width:72%;font-family:monospace;line-height:2;box-shadow:0 25px 50px #0005}.terminal-mini span{color:#8bd390}.phone-mini,.phone-card{background:#18201a;color:white;border:6px solid #303a32;border-radius:28px}.phone-mini{width:190px;height:330px;padding:28px 18px;display:flex;flex-direction:column;gap:12px;box-shadow:0 24px 50px #17211b38}.phone-mini span{color:#9ba59e;font-size:11px}.phone-mini i{height:48px;background:#303a32;border-radius:8px}.project-info h2{font-size:clamp(45px,6vw,78px);margin:10px 0;font-family:Manrope}.project-info p{color:var(--muted);font-size:17px;line-height:1.7}.project-info strong{display:inline-block;margin-top:30px;border-bottom:1px solid;padding-bottom:5px}
.case-hero{min-height:850px;padding:55px clamp(24px,9vw,140px);position:relative;overflow:hidden}.dark-case{background:var(--ink);color:white}.lime-case{background:var(--lime)}.back-link{display:inline-block;margin-bottom:80px;font-size:13px}.case-hero h1{font-size:clamp(80px,14vw,200px)}.case-hero>p:not(.eyebrow){font-size:20px}.case-meta{display:flex;gap:60px;margin-top:60px}.case-meta div{display:flex;flex-direction:column;gap:6px}.case-meta span{font-size:10px;text-transform:uppercase;letter-spacing:.14em;opacity:.6}.case-meta b{font-size:13px}.terminal-large{position:absolute;width:min(660px,48vw);right:-2%;bottom:0;transform:rotate(-2deg)}.phones-showcase{position:absolute;right:8%;bottom:-80px;width:42%;height:620px}.phone-card{position:absolute;width:270px;height:540px;padding:34px 25px}.phone-card.back{right:0;top:0;transform:rotate(8deg);display:flex;flex-direction:column;gap:14px}.phone-card.back i{height:85px;background:#354037;border-radius:10px}.phone-card.front{left:0;bottom:0;transform:rotate(-6deg);background:var(--white);color:var(--ink)}.phone-card.front h3{font:800 32px Manrope;margin-top:90px}.phone-card.front button{border:0;background:var(--ink);color:white;border-radius:100px;padding:14px 20px}.case-content{display:grid;grid-template-columns:220px 1fr;gap:80px 70px;padding:120px clamp(24px,12vw,180px)}.case-aside{font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:var(--orange)}.feature-list{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.feature-list article{border-top:2px solid;padding-top:20px}.feature-list article>b{color:var(--orange);font-size:12px}.feature-list h3{font:700 20px Manrope;margin-top:45px}.next-project{background:var(--orange);color:white;padding:80px clamp(24px,10vw,150px);display:flex;flex-direction:column}.next-project span{text-transform:uppercase;font-size:11px;letter-spacing:.14em}.next-project a{font:800 clamp(48px,8vw,110px) Manrope;letter-spacing:-.06em}.next-project a b{font-weight:400}
.contact-page{min-height:680px;display:grid;grid-template-columns:1.1fr .9fr;gap:9vw;padding:110px clamp(24px,9vw,140px)}.contact-page h1{font-size:clamp(55px,7vw,100px)}.contact-links{border-top:1px solid}.contact-links a{display:grid;grid-template-columns:1fr auto;position:relative;padding:25px 42px 25px 0;border-bottom:1px solid;transition:.2s}.contact-links a:hover{padding-left:12px;background:#ffffff50}.contact-links span{font-size:11px;text-transform:uppercase;color:var(--muted)}.contact-links b{grid-row:2;font:700 21px Manrope;margin-top:7px}.contact-links i{grid-row:1/3;grid-column:2;align-self:center;font-style:normal;font-size:22px}.contact-note{background:var(--lime);display:flex;align-items:center;justify-content:center;gap:12px;padding:32px}.contact-note p{font-weight:700}.status-dot{width:9px;height:9px;background:#278b4b;border-radius:50%}
.architecture{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:10px 0 32px}.architecture span{flex:1;min-height:100px;display:grid;place-items:center;text-align:center;padding:18px 10px;background:var(--ink);color:white;border-radius:4px;font-weight:700}.architecture span small{display:block;margin-top:5px;color:#9aa59e;font-weight:500}.architecture>b{color:var(--orange);font-size:22px}
@media(max-width:850px){.menu-button{display:block}.main-nav{display:none;position:absolute;top:82px;left:0;right:0;background:var(--white);padding:25px;flex-direction:column;align-items:stretch;box-shadow:0 20px 40px #0002}.main-nav.open{display:flex}.nav-cta{text-align:center}.language-control{display:flex;justify-content:center}.language-select{min-width:90px}.hero,.about-layout,.project-row,.contact-page{grid-template-columns:1fr}.hero-art{min-height:360px}.code-window{width:92%;right:0}.project-grid,.skill-grid{grid-template-columns:1fr}.project-row.reverse .project-visual{order:0}.case-hero{padding-bottom:500px}.terminal-large{width:90%;right:-5%}.phones-showcase{width:85%;height:500px;right:5%}.phone-card{width:220px;height:440px}.case-content{grid-template-columns:1fr;gap:25px}.feature-list{grid-template-columns:1fr}.case-meta{gap:25px;flex-wrap:wrap}.project-visual{min-height:350px}.section-heading{align-items:start;flex-direction:column}}
@media(max-width:520px){.site-header{height:72px}.main-nav{top:72px}.hero,.page-hero,.contact-page{padding-top:65px}.hero-actions{align-items:flex-start;flex-direction:column}.project-card{min-height:390px}.site-footer{flex-direction:column;text-align:center}.case-hero{min-height:760px;padding-bottom:390px}.case-meta{margin-top:35px}.terminal-large pre{padding:22px;font-size:11px}.phones-showcase{height:370px}.phone-card{width:165px;height:330px;padding:20px}.phone-card.front h3{font-size:20px;margin-top:50px}.about-layout{padding-bottom:80px}.architecture{flex-direction:column}.architecture span{width:100%}.architecture>b{transform:rotate(90deg)}}
.project-card{overflow:hidden}.project-card::before{content:"";position:absolute;width:230px;height:230px;right:22px;top:55px;background:center/contain no-repeat;filter:drop-shadow(0 18px 24px #0004);transition:transform .3s}.project-card:hover::before{transform:scale(1.04) rotate(2deg)}.project-dark::before{background-image:url('images/lanctl.png')}.project-lime::before{background-image:url('images/gitdroid.png')}.project-card>span,.project-card>div,.project-card .circle-arrow{position:relative;z-index:1}
.project-visual{position:relative;overflow:hidden}.project-visual::before{content:"";position:absolute;width:72%;height:72%;background:center/contain no-repeat;opacity:.9}.lanctl-visual::before{background-image:url('images/lanctl.png')}.git-visual::before{background-image:url('images/gitdroid.png')}.portwaver-visual{background:#0b1311}.portwaver-visual::before{display:none}.project-icon{position:absolute;width:64%;height:64%;border-radius:22%;object-fit:contain;opacity:.9}.terminal-mini,.phone-mini{position:relative;z-index:1}.terminal-mini{background:#0d120fe8;transform:translateY(90px)}.phone-mini{transform:translateX(105px) rotate(4deg)}
.case-hero::after{content:"";position:absolute;width:250px;height:250px;right:7%;top:100px;background:center/contain no-repeat;opacity:.88;filter:drop-shadow(0 24px 35px #0005)}.dark-case::after{background-image:url('images/lanctl.png')}.lime-case::after{background-image:url('images/gitdroid.png')}
@media(max-width:850px){.case-hero::after{width:150px;height:150px;right:5%;top:125px}.project-card::before{width:170px;height:170px;opacity:.85}.phone-mini{transform:translateX(70px) rotate(4deg)}}
@media(max-width:520px){.case-hero::after{width:105px;height:105px;top:145px}.project-card::before{width:130px;height:130px;right:15px}.terminal-mini{transform:translateY(65px)}.phone-mini{transform:translateX(45px) rotate(4deg)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* LANCTL case study */
.lanctl-hero{min-height:760px;padding:64px clamp(24px,8vw,120px) 80px;background:#0e1813;color:var(--white);display:grid;grid-template-columns:minmax(0,1.05fr) minmax(420px,.95fr);gap:clamp(50px,8vw,120px);align-items:center;overflow:hidden}.lanctl-hero .back-link{display:inline-block;margin-bottom:72px;color:#cbd5ce}.lanctl-hero .eyebrow{margin-bottom:30px}.lanctl-hero h1{font-size:clamp(88px,11vw,168px);line-height:.8}.lanctl-tagline{max-width:680px;margin:38px 0 0;color:#c8d0cb;font-size:clamp(18px,2vw,25px);line-height:1.5}.lanctl-hero .case-meta{margin:44px 0 0;display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.lanctl-hero .case-meta div{padding-top:16px;border-top:1px solid #ffffff2e}.lanctl-github{margin-top:42px;background:var(--lime);color:var(--ink)}.lanctl-showcase{position:relative;min-height:570px;display:flex;align-items:flex-end;justify-content:center}.lanctl-showcase>img{position:absolute;width:min(360px,75%);top:0;right:7%;border-radius:25%;filter:drop-shadow(0 30px 45px #0007)}.lanctl-terminal{position:relative;width:100%;margin-bottom:12px;background:#080d0a;color:#e6eee9;border:1px solid #ffffff1f;border-radius:14px;box-shadow:0 30px 70px #0008;overflow:hidden}.lanctl-terminal pre{margin:0;padding:30px;font-size:13px;line-height:1.75;overflow:auto}.lanctl-terminal b{color:#ff7454}.lanctl-terminal em{color:#8e9b93;font-style:normal}.lanctl-terminal strong{color:#8bd390}
.lanctl-intro{padding:120px clamp(24px,12vw,180px);display:grid;grid-template-columns:190px minmax(0,850px);gap:clamp(40px,8vw,120px);justify-content:center}.section-kicker{margin:8px 0;color:var(--orange);font-size:11px;font-weight:700;letter-spacing:.15em;text-transform:uppercase}.lanctl-intro h2,.lanctl-architecture-section h2{font-size:clamp(42px,6vw,76px)}.lanctl-intro .lead{font-size:22px;color:var(--ink);line-height:1.65}.lanctl-intro p:not(.section-kicker){color:var(--muted);line-height:1.8}
.lanctl-capabilities{padding:110px clamp(24px,8vw,120px);background:var(--white)}.lanctl-capabilities .section-heading>p{max-width:440px;color:var(--muted);line-height:1.7}.lanctl-feature-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #17211b30;border-left:1px solid #17211b30}.lanctl-feature-grid article{min-height:260px;padding:28px;border-right:1px solid #17211b30;border-bottom:1px solid #17211b30}.lanctl-feature-grid span{color:var(--orange);font-size:11px}.lanctl-feature-grid h3{margin:55px 0 12px;font:700 22px Manrope}.lanctl-feature-grid p{margin:0;color:var(--muted);line-height:1.65}
.lanctl-architecture-section{padding:115px clamp(24px,8vw,120px);background:#172018;color:white}.architecture-heading{display:grid;grid-template-columns:190px 1fr;gap:clamp(40px,8vw,120px);margin-bottom:70px}.architecture-heading>div>p{max-width:720px;color:#9fa9a2;line-height:1.7}.lanctl-architecture{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;align-items:stretch;gap:15px}.lanctl-architecture article{min-height:180px;padding:24px;background:#0d1511;border:1px solid #ffffff18;display:flex;flex-direction:column;justify-content:flex-end}.lanctl-architecture article>span{margin-bottom:auto;color:var(--orange);font-size:10px;text-transform:uppercase;letter-spacing:.14em}.lanctl-architecture article>b{font:700 19px Manrope}.lanctl-architecture article>small{margin-top:8px;color:#8f9a93;line-height:1.5}.lanctl-architecture>i{align-self:center;color:var(--lime);font-style:normal;font-size:22px}.lanctl-security{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:55px}.lanctl-security>div{padding-top:22px;border-top:2px solid var(--lime)}.lanctl-security span{display:block;color:#8f9a93;font-size:10px;text-transform:uppercase;letter-spacing:.14em}.lanctl-security b{display:block;margin:13px 0;font:700 22px Manrope}.lanctl-security p{margin:0;color:#9fa9a2;line-height:1.65}
@media(max-width:980px){.lanctl-hero{grid-template-columns:1fr;min-height:auto}.lanctl-hero .back-link{margin-bottom:50px}.lanctl-showcase{min-height:530px;max-width:680px;width:100%;margin:auto}.lanctl-showcase>img{width:280px}.lanctl-feature-grid{grid-template-columns:repeat(2,1fr)}.lanctl-architecture{grid-template-columns:1fr 1fr}.lanctl-architecture>i{display:none}.lanctl-security{grid-template-columns:1fr}}
@media(max-width:620px){.lanctl-hero{padding-top:42px}.lanctl-hero h1{font-size:clamp(68px,23vw,105px)}.lanctl-hero .case-meta{grid-template-columns:1fr}.lanctl-showcase{min-height:420px}.lanctl-showcase>img{width:210px;right:4%}.lanctl-terminal pre{padding:22px;font-size:10px}.lanctl-intro,.architecture-heading{grid-template-columns:1fr}.lanctl-intro{padding-top:85px;padding-bottom:85px}.lanctl-feature-grid{grid-template-columns:1fr}.lanctl-architecture{grid-template-columns:1fr}.lanctl-capabilities,.lanctl-architecture-section{padding-top:85px;padding-bottom:85px}}

.lanctl-toc{position:sticky;top:0;z-index:8;display:flex;justify-content:center;gap:30px;padding:18px 24px;background:#f3f0e7ed;border-bottom:1px solid #17211b20;backdrop-filter:blur(14px)}.lanctl-toc a{font-size:12px;font-weight:700}.lanctl-toc a:hover{color:var(--orange)}.lanctl-workflow{padding:110px clamp(24px,8vw,120px)}.workflow-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.workflow-grid article{padding:30px;background:var(--white);border:1px solid #17211b20}.workflow-grid article>span{color:var(--orange);font-size:11px}.workflow-grid h3{font:700 24px Manrope;margin:28px 0 14px}.workflow-grid code,.command-line{display:block;padding:13px 15px;background:#17211b;color:#c9ef67;border-radius:4px;white-space:normal}.workflow-grid p{color:var(--muted);line-height:1.65}.interfaces-strip{display:grid;grid-template-columns:repeat(4,1fr);margin-top:45px;border-top:1px solid #17211b30}.interfaces-strip>div{padding:25px 20px;border-right:1px solid #17211b30}.interfaces-strip b,.interfaces-strip span{display:block}.interfaces-strip b{font:700 22px Manrope}.interfaces-strip span{margin-top:8px;color:var(--muted);font-size:13px;line-height:1.5}
.lanctl-formats{display:grid;grid-template-columns:1fr 1fr}.format-card{padding:100px clamp(28px,7vw,105px)}.format-card h2{font-size:clamp(40px,5vw,68px)}.format-card>p:not(.section-kicker),.format-card li{line-height:1.7}.format-card ul{padding-left:20px;margin:30px 0}.format-card li{margin-bottom:10px}.format-vlf{background:var(--lime)}.format-lcp{background:#172018;color:white}.format-lcp>p:not(.section-kicker),.format-lcp li{color:#aab3ad}.format-lcp .command-line{background:#080d0a}
.lanctl-security-section{padding:115px clamp(24px,8vw,120px);display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(45px,8vw,120px);background:var(--white)}.security-copy h2{font-size:clamp(42px,6vw,76px)}.security-copy>p:not(.section-kicker){color:var(--muted);font-size:18px;line-height:1.75}.security-points{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:45px}.security-points>div{padding-top:18px;border-top:2px solid var(--ink)}.security-points b,.security-points span{display:block}.security-points b{font:700 19px Manrope}.security-points span{margin-top:8px;color:var(--muted);line-height:1.5}.cisco-panel{padding:38px;background:#172018;color:white;align-self:start}.cisco-panel>span{color:var(--lime);font-size:11px;text-transform:uppercase;letter-spacing:.14em}.cisco-panel h3{font:700 30px Manrope}.cisco-panel p,.cisco-panel li{color:#aab3ad;line-height:1.65}.cisco-panel code{display:block;margin-top:25px;padding:14px;background:#090e0b;color:var(--lime);font-size:12px}
.lanctl-release{padding:110px clamp(24px,8vw,120px);background:var(--orange);color:white}.release-number{font:800 clamp(70px,13vw,180px) Manrope;letter-spacing:-.07em;line-height:.9}.release-number span{font-size:.22em;letter-spacing:0}.release-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:65px;border-top:1px solid #ffffff60;padding-top:28px}.release-facts b,.release-facts span{display:block}.release-facts b{font:700 26px Manrope}.release-facts span{margin-top:7px;color:#ffe1d8;font-size:13px;line-height:1.5}.release-note{max-width:790px;margin:50px 0 0;font-size:18px;line-height:1.7}
.lanctl-install{padding:115px clamp(24px,8vw,120px);display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(50px,9vw,140px);align-items:center}.lanctl-install h2{font-size:clamp(42px,5vw,68px)}.lanctl-install p:not(.section-kicker){color:var(--muted);line-height:1.7}.install-code{background:#0a100c;color:#e9eee9;border-radius:14px;overflow:hidden;box-shadow:0 30px 70px #17211b35}.install-code pre{margin:0;padding:32px;overflow:auto;line-height:1.8;font-size:13px}
.lanctl-apps-section{padding:110px clamp(24px,8vw,120px);background:#eef0e8}.lanctl-apps-section .section-heading>p{max-width:500px;color:var(--muted);line-height:1.7}.lanctl-app-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:#17211b24;border:1px solid #17211b24}.lanctl-app-grid article{min-height:250px;padding:28px;background:#f8f6ef;display:flex;flex-direction:column}.lanctl-app-grid article:nth-child(4n+2),.lanctl-app-grid article:nth-child(4n+4){background:#172018;color:white}.lanctl-app-grid span{color:var(--orange);font-size:10px;font-weight:700;letter-spacing:.13em;text-transform:uppercase}.lanctl-app-grid h3{margin:36px 0 12px;font:800 25px Manrope}.lanctl-app-grid p{margin:0 0 25px;color:var(--muted);line-height:1.6}.lanctl-app-grid article:nth-child(4n+2) p,.lanctl-app-grid article:nth-child(4n+4) p{color:#aab3ad}.lanctl-app-grid code{margin-top:auto;color:#537008;font-size:12px}.lanctl-app-grid article:nth-child(4n+2) code,.lanctl-app-grid article:nth-child(4n+4) code{color:var(--lime)}
.rack-section{padding:115px clamp(24px,8vw,120px);background:#d9e3ff}.rack-heading{display:grid;grid-template-columns:1.1fr .9fr;gap:70px;align-items:end;margin-bottom:60px}.rack-heading h2{font-size:clamp(48px,7vw,88px)}.rack-heading>p{color:#4d5969;line-height:1.7}.rack-grid{display:grid;grid-template-columns:repeat(3,1fr);border-left:1px solid #17211b30;border-top:1px solid #17211b30}.rack-grid article{min-height:200px;padding:25px;border-right:1px solid #17211b30;border-bottom:1px solid #17211b30}.rack-grid span{font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:#526071}.rack-grid b{display:block;margin-top:42px;font:700 22px Manrope}.rack-grid p{color:#526071;line-height:1.55}.rack-separation{margin-top:38px;padding:25px 30px;background:#172018;color:white;display:grid;grid-template-columns:140px 1fr;gap:25px}.rack-separation b{color:var(--lime);text-transform:uppercase;letter-spacing:.12em}.rack-separation p{margin:0;color:#bdc6c0;line-height:1.6}
@media(max-width:900px){.lanctl-toc{justify-content:flex-start;overflow-x:auto}.lanctl-toc a{white-space:nowrap}.lanctl-formats,.lanctl-security-section,.lanctl-install,.rack-heading{grid-template-columns:1fr}.interfaces-strip,.release-facts,.lanctl-app-grid{grid-template-columns:repeat(2,1fr)}.rack-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.lanctl-toc{gap:22px}.workflow-grid,.security-points,.rack-grid,.lanctl-app-grid{grid-template-columns:1fr}.interfaces-strip,.release-facts{grid-template-columns:1fr}.interfaces-strip>div{border-right:0;border-bottom:1px solid #17211b30}.format-card,.lanctl-workflow,.lanctl-security-section,.lanctl-release,.lanctl-install,.rack-section,.lanctl-apps-section{padding-top:80px;padding-bottom:80px}.rack-separation{grid-template-columns:1fr}.lanctl-app-grid article:nth-child(even){background:#172018;color:white}.lanctl-app-grid article:nth-child(even) p{color:#aab3ad}.lanctl-app-grid article:nth-child(even) code{color:var(--lime)}}
.project-subnav {
  display: flex;
  gap: .6rem;
  flex-wrap: wrap;
  margin: 1.5rem 0 2rem;
}

.project-subnav a {
  padding: .65rem .9rem;
  border: 1px solid rgba(23, 33, 27, .18);
  border-radius: 999px;
  color: inherit;
  font-size: .82rem;
  font-weight: 700;
  text-decoration: none;
}

.project-subnav a:hover,
.project-subnav a[aria-current="page"] {
  background: var(--lime);
  border-color: var(--ink);
  color: var(--ink);
}

.docs-page {
  width: min(100%, 1120px);
  margin: 0 auto;
  padding: clamp(3rem, 7vw, 7rem) clamp(24px, 7vw, 92px);
}

.docs-page > header {
  max-width: 52rem;
  margin-bottom: 3rem;
}

.docs-page > header h1 {
  margin: .4rem 0 1rem;
  font-size: clamp(2.8rem, 7vw, 5.5rem);
  line-height: .98;
}

.docs-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.docs-card {
  padding: clamp(1.3rem, 3vw, 2rem);
  border: 1px solid rgba(23, 33, 27, .16);
  border-radius: 1.1rem;
  background: var(--white);
}

.docs-card.wide { grid-column: 1 / -1; }
.docs-card h2, .docs-card h3 { margin-top: 0; }
.docs-card p:last-child { margin-bottom: 0; }

.download-panel {
  padding: clamp(1.5rem, 4vw, 3rem);
  border-radius: 1.3rem;
  color: var(--white);
  background: var(--ink);
}

.download-panel .button { margin: .5rem .5rem .5rem 0; }
.download-status { color: rgba(255,255,255,.68); font-size: .9rem; }

.channel-list {
  display: grid;
  gap: 1rem;
}

.channel-list a {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: .5rem 1rem;
  align-items: center;
  min-height: 82px;
  padding: 1.3rem;
  border: 1px solid rgba(23, 33, 27, .16);
  border-radius: 1rem;
  color: inherit;
  background: var(--white);
  text-decoration: none;
}

.channel-list a span { color: var(--muted); }
.channel-list a:hover,
.channel-list a:focus-visible {
  border-color: var(--ink);
  box-shadow: 0 0 0 1px var(--ink);
  outline: none;
}

@media (max-width: 720px) {
  .docs-grid { grid-template-columns: 1fr; }
  .docs-card.wide { grid-column: auto; }
}
.portwaver-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(20rem, .9fr);
  gap: clamp(2rem, 7vw, 7rem);
  align-items: center;
  padding: clamp(4rem, 8vw, 8rem) clamp(24px, 8vw, 120px);
  color: var(--white);
  background: var(--ink);
}

.portwaver-hero h1 {
  margin: .5rem 0 1rem;
  font-size: clamp(4rem, 10vw, 8rem);
  line-height: .86;
  letter-spacing: -.07em;
}

.portwaver-console {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 1.2rem;
  background: #0c1210;
  box-shadow: 0 2rem 5rem rgba(0,0,0,.35);
}

.portwaver-console > img {
  display: block;
  width: 8rem;
  height: 8rem;
  margin: 2rem auto;
  border-radius: 1.4rem;
  object-fit: cover;
}

.portwaver-console pre {
  min-height: 12rem;
  margin: 0;
  padding: 1.5rem;
  overflow: auto;
  color: rgba(255,255,255,.75);
  background: #080d0b;
  line-height: 1.8;
}

.portwaver-console strong,
.portwaver-console em { color: var(--lime); }

@media (max-width: 820px) {
  .portwaver-hero { grid-template-columns: 1fr; }
}

/* LANCTL hero actions */
.lanctl-actions {
  display: grid;
  grid-template-columns: minmax(230px, 1.08fr) minmax(220px, .92fr);
  gap: 10px;
  max-width: 650px;
  margin-top: 34px;
}

.lanctl-actions a {
  color: inherit;
  text-decoration: none;
  transition: border-color .2s, background-color .2s, transform .2s;
}

.lanctl-actions small,
.lanctl-actions b {
  display: block;
}

.lanctl-actions small {
  margin-bottom: 7px;
  color: #96a199;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.lanctl-actions b {
  font: 700 15px Manrope, sans-serif;
  letter-spacing: -.015em;
}

.lanctl-action-primary,
.lanctl-action-secondary a,
.lanctl-repository {
  border: 1px solid #ffffff24;
  border-radius: 14px;
}

.lanctl-action-primary {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  min-height: 132px;
  padding: 23px;
  color: var(--ink) !important;
  background: var(--lime);
}

.lanctl-action-primary small { color: #45532a; }

.lanctl-action-primary i {
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  border-radius: 50%;
  background: #17211b18;
  font-style: normal;
  font-size: 20px;
}

.lanctl-action-secondary {
  display: grid;
  gap: 10px;
}

.lanctl-action-secondary a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 61px;
  padding: 13px 17px;
  background: #ffffff08;
}

.lanctl-action-secondary i,
.lanctl-repository > i {
  color: var(--lime);
  font-style: normal;
  font-size: 18px;
}

.lanctl-repository {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: auto 1fr auto;
  gap: 14px;
  align-items: center;
  padding: 13px 16px;
  background: #07100b;
}

.lanctl-repository-mark {
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  border: 1px solid #ffffff2b;
  border-radius: 50%;
  color: var(--lime);
  font: 800 10px Manrope, sans-serif;
  letter-spacing: .04em;
}

.lanctl-repository small { margin-bottom: 3px; }
.lanctl-repository b { font-size: 13px; }

.lanctl-actions a:hover,
.lanctl-actions a:focus-visible {
  border-color: #c9ef6780;
  transform: translateY(-2px);
  outline: none;
}

.lanctl-action-primary:hover,
.lanctl-action-primary:focus-visible {
  border-color: var(--lime);
  background: #d7fa7c;
}

@media (max-width: 620px) {
  .lanctl-actions { grid-template-columns: 1fr; }
  .lanctl-action-primary { min-height: 112px; }
  .lanctl-repository { grid-column: auto; }
}
