/* Polices locales — sous-ensemble latin, WOFF2. Voir README > Polices */
@font-face{font-family:Raleway;src:url('./assets/fonts/raleway-400.woff2') format('woff2');font-style:normal;font-display:swap}
@font-face{font-family:Raleway;src:url('./assets/fonts/raleway-600.woff2') format('woff2');font-style:normal;font-display:swap}
@font-face{font-family:Montserrat;src:url('./assets/fonts/montserrat-400.woff2') format('woff2');font-style:normal;font-display:swap}
@font-face{font-family:Montserrat;src:url('./assets/fonts/montserrat-600.woff2') format('woff2');font-style:normal;font-display:swap}
:root{--ink:#18362b;--muted:#69786f;--green:#18804c;--green-dark:#0f5e3c;--green-soft:#eaf4e9;--yellow:#ffd447;--royal:#2875dc;--line:#e6ebe5;--paper:#fff;--canvas:#e9e7df;--soft:#f6f8f4;--font-body:Raleway,Arial,sans-serif;--font-title:Montserrat,Arial,sans-serif;--shadow:0 24px 70px rgba(22,45,31,.12);--radius:22px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--canvas);color:var(--ink);font:400 15px/1.6 var(--font-body);letter-spacing:-.012em;-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit;color:inherit}a{color:inherit;text-decoration:none}button{cursor:pointer}img,svg{max-width:100%}h1,h2,h3,h4,p{margin-top:0}h1,h2,h3,h4{font-family:var(--font-title);font-weight:500;letter-spacing:-.045em;line-height:1.12}h1{font-size:clamp(2.5rem,5vw,4.8rem)}h2{font-size:clamp(1.75rem,3.2vw,2.65rem)}h3{font-size:1.2rem;font-weight:500}strong,b{font-weight:600}.muted{color:var(--muted)}.small{font-size:.85rem}.hidden{display:none!important}.skip-link{position:absolute;top:8px;left:-1000px;z-index:999;background:white;padding:12px}.skip-link:focus{left:8px}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #79bb8a;outline-offset:3px}.eyebrow{display:inline-flex;align-items:center;gap:8px;color:var(--green);font-size:.69rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase}.eyebrow .dot{width:7px;height:7px;border-radius:50%;background:#72b776}.text-link{color:var(--green);font-weight:600}.text-link:hover{color:var(--green-dark)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;border:1px solid transparent;border-radius:999px;background:var(--green);color:#fff;padding:12px 19px;font-weight:600;box-shadow:0 8px 20px rgba(24,128,76,.16);transition:transform .25s,background .25s,box-shadow .25s}.btn:hover{background:var(--green-dark);transform:translateY(-2px);box-shadow:0 13px 25px rgba(24,128,76,.2)}.btn.secondary{background:#fff;color:var(--ink);border-color:var(--line);box-shadow:none}.btn.secondary:hover{border-color:#a8c8ad;color:var(--green)}.btn.ghost{background:transparent;color:var(--green);box-shadow:none}.btn.small-btn{padding:9px 14px;font-size:.86rem}.btn.full{width:100%}.icon-btn{display:inline-grid;place-items:center;width:42px;height:42px;border:1px solid var(--line);border-radius:50%;background:rgba(255,255,255,.86);color:var(--ink)}.icon-btn:hover{background:var(--green-soft)}.tag{display:inline-flex;align-items:center;padding:5px 10px;border-radius:999px;background:#edf6ee;color:#33724a;font-size:.73rem;font-weight:600}.tag.teal{background:#e4f5ed;color:#32825d}.tag.orange{background:#fff2e5;color:#ac6940}.tag.purple{background:#f1eaf9;color:#7655a0}.status-pill{display:inline-flex;padding:5px 9px;border-radius:99px;background:#e7f5ec;color:#237747;font-size:.75rem;font-weight:600}.status-pill.pending{background:#fff3dd;color:#96671c}.status-pill.off{background:#f0f1ed;color:#667368}
/* Top navigation */
.public-header{position:relative;z-index:12;width:100%;background:rgba(246,246,241,.62);backdrop-filter:blur(13px);border-bottom:1px solid rgba(255,255,255,.5)}.public-nav{max-width:1480px;height:76px;margin:auto;padding:0 clamp(18px,4vw,56px);display:flex;align-items:center;gap:32px}.brand,.portal-brand{display:flex;align-items:center;gap:10px;font:500 1.02rem var(--font-title);white-space:nowrap}.brand-mark{width:39px;height:39px;display:inline-grid;place-items:center;flex:0 0 auto}.brand-mark svg{display:block;width:100%;height:100%}.brand b{color:var(--green);font-weight:600}.public-links{display:flex;align-items:center;gap:clamp(14px,2vw,27px);margin:auto;color:#5b6c5f;font-size:.86rem}.public-links a:hover{color:var(--green)}.public-actions{display:flex;align-items:center;gap:14px}.mobile-menu{display:none}.public-header .btn{font-size:.83rem}
/* Outer environment: pure vector hills, no bitmap artwork */
.ambient-page{position:relative;isolation:isolate;overflow:hidden;background:linear-gradient(180deg,#e9e7df 0,#f4f3ed 500px,#fff 780px);padding:0 clamp(14px,3.3vw,48px) 75px}.ambient-mountains{position:absolute;inset:0 0 auto;height:570px;z-index:-1;opacity:.76;pointer-events:none;overflow:hidden}.ambient-mountains svg{width:100%;height:100%;display:block}.outer-signature{max-width:1480px;margin:auto;height:68px;padding:0 7px;display:flex;justify-content:space-between;align-items:center;color:#465348;font-size:.72rem;letter-spacing:.1em;font-weight:600}.outer-signature i{font-style:normal;color:var(--green)}
/* Main glass portal */
.portal-shell{position:relative;max-width:1480px;margin:0 auto;background:rgba(255,255,255,.95);border:1px solid rgba(255,255,255,.9);border-radius:clamp(26px,4vw,55px);padding:12px;box-shadow:0 34px 100px rgba(42,48,40,.15);overflow:hidden}.portal-bar{height:64px;padding:0 clamp(14px,2vw,28px);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;background:rgba(255,255,255,.85);border-radius:40px}.portal-brand{font-size:.88rem;gap:9px}.portal-brand .brand-mark{width:34px;height:34px}.portal-brand span:last-child{display:flex;flex-direction:column;line-height:1.1}.portal-brand small{font:600 .48rem var(--font-body);letter-spacing:.13em;color:#819083;margin-top:4px}.portal-tabs{display:flex;align-items:center;gap:4px;padding:5px;background:#f2f4ef;border:1px solid #e7ebe4;border-radius:999px}.portal-tabs a{padding:8px 16px;border-radius:999px;color:#67756b;font-size:.77rem;transition:.2s}.portal-tabs a:hover,.portal-tabs a.active{background:#fff;color:#1e6640;box-shadow:0 4px 12px rgba(28,57,35,.08)}.portal-actions{display:flex;align-items:center;justify-content:flex-end;gap:13px}.portal-language{font-size:.68rem;color:#758178}.portal-language span{margin-left:5px}.portal-join{padding:10px 17px;border-radius:999px;background:#17804b;color:white;font-size:.76rem;font-weight:600;box-shadow:0 7px 18px rgba(21,113,66,.2)}.portal-join span{margin-left:8px}
.portal-hero{height:clamp(500px,48vw,650px);min-height:490px;position:relative;overflow:hidden;border-radius:clamp(20px,3.4vw,44px);isolation:isolate;background:linear-gradient(145deg,#96c7ce,#315f4b)}.hero-svg-scene{position:absolute;inset:0;z-index:0;overflow:hidden}.hero-svg-scene>svg{display:block;width:100%;height:100%;object-fit:cover}.hero-top-shade{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(12,43,35,.52) 0%,rgba(14,55,40,.13) 36%,rgba(12,44,34,.05) 56%,rgba(10,42,32,.35) 100%),linear-gradient(90deg,rgba(12,40,33,.12),transparent 60%);pointer-events:none}.hero-headline{position:absolute;z-index:2;top:8%;left:50%;transform:translateX(-50%);width:min(700px,72%);text-align:center;color:white;text-shadow:0 2px 20px rgba(8,35,29,.3)}.hero-kicker{display:inline-flex;align-items:center;gap:8px;font-size:.63rem;font-weight:600;letter-spacing:.16em;color:rgba(255,255,255,.9)}.hero-kicker i{width:6px;height:6px;border-radius:50%;background:#ffd447;box-shadow:0 0 0 5px rgba(255,212,71,.2)}.hero-headline h1{font-size:clamp(2.65rem,6vw,5.35rem);font-weight:400;line-height:.94;letter-spacing:-.065em;margin:14px 0 12px}.hero-headline h1 em{font-style:normal;color:#fff4b2}.hero-headline p{max-width:490px;margin:0 auto;color:rgba(255,255,255,.94);font-size:clamp(.88rem,1.15vw,1.02rem);line-height:1.55}.hero-cta-row{display:flex;justify-content:center;align-items:center;gap:20px;margin-top:18px}.hero-primary,.hero-secondary{display:inline-flex;align-items:center;gap:14px;font-size:.78rem;font-weight:600}.hero-primary{padding:11px 16px;background:#fff;color:#214b36;border-radius:999px;text-shadow:none;box-shadow:0 8px 22px rgba(10,40,29,.16)}.hero-primary span{font-size:1rem}.hero-secondary{color:white}.hero-secondary span{font-size:1rem}
.hero-rail{position:absolute;z-index:4;left:clamp(14px,2vw,27px);top:50%;transform:translateY(-22%);width:48px;padding:9px 6px;display:flex;flex-direction:column;align-items:center;gap:6px;border:1px solid rgba(255,255,255,.76);border-radius:999px;background:rgba(255,255,255,.78);backdrop-filter:blur(17px);box-shadow:0 12px 30px rgba(18,45,34,.14)}.hero-rail a{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;color:#63756a;font-size:1rem;transition:.2s}.hero-rail a:hover,.hero-rail a.rail-active{background:#e6f2e8;color:#187346;transform:scale(1.04)}.rail-separator{height:1px;width:22px;background:#dfe7df;margin:2px 0}
.hero-float-card{position:absolute;z-index:3;display:flex;align-items:center;gap:12px;padding:13px 15px;border:1px solid rgba(255,255,255,.85);border-radius:18px;background:rgba(255,255,255,.84);backdrop-filter:blur(18px);box-shadow:0 16px 38px rgba(15,46,34,.17);animation:card-float 6s ease-in-out infinite}.hero-project-card{left:clamp(72px,8vw,122px);bottom:7%;max-width:330px}.hero-project-card>div:nth-child(2){display:grid;gap:3px}.hero-project-card span:not(.brand-mark){font-size:.57rem;letter-spacing:.1em;color:#60806a}.hero-project-card strong{font:500 .82rem var(--font-title);letter-spacing:-.03em}.hero-project-card small{font-size:.66rem;color:#819083}.hero-project-card>a{margin-left:auto;width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:#edf5ed;color:var(--green)}.float-card-icon{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;background:#e8f3e7;color:#16804b;font-size:1.2rem}.hero-stat-card{right:clamp(35px,7vw,100px);bottom:9%;min-width:205px;animation-delay:-2.4s}.hero-stat-card>div:nth-child(2){display:grid;gap:2px}.hero-stat-card strong{font:500 .82rem var(--font-title)}.hero-stat-card small{font-size:.66rem;color:#7a887e}.stat-avatars{display:flex;align-items:center}.stat-avatars i{width:28px;height:28px;margin-left:-6px;display:grid;place-items:center;border:2px solid #fff;border-radius:50%;background:#d7ebda;color:#177748;font-size:.8rem;font-style:normal}.stat-avatars i:first-child{margin-left:0;background:#e6f0d9}.stat-avatars i:nth-child(2){background:#dbeafa;color:#2875dc}.stat-avatars i:nth-child(3){background:#fff0cb;color:#c68b18}.stat-pulse{width:8px;height:8px;margin-left:auto;border-radius:50%;background:#58ad6b;box-shadow:0 0 0 5px #dff0df}.hero-orbit-mark{position:absolute;left:50%;bottom:-25px;z-index:4;width:72px;height:72px;display:grid;place-items:center;transform:translateX(-50%);border:5px solid rgba(255,255,255,.45);border-radius:50%;background:#143e30;box-shadow:0 10px 25px rgba(9,39,27,.25)}.hero-orbit-mark .brand-mark{width:38px;height:38px}.hero-scroll-hint{position:absolute;z-index:3;left:50%;bottom:15px;transform:translateX(-50%);display:flex;align-items:center;gap:10px;color:rgba(255,255,255,.84);font-size:.58rem;letter-spacing:.16em}.hero-scroll-hint i{font-size:.9rem;font-style:normal;animation:scroll-bob 1.5s infinite}.hero-index{position:absolute;z-index:3;right:24px;bottom:18px;color:rgba(255,255,255,.8);font:500 .68rem var(--font-title);letter-spacing:.1em}.hero-index span{opacity:.5;margin:0 5px}.portal-bottom{height:48px;display:flex;align-items:center;justify-content:space-between;padding:0 20px;color:#758277;font-size:.58rem;font-weight:600;letter-spacing:.11em}.portal-bottom b{color:#e2bb32;font-size:.85rem;margin-left:7px}.green-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#56a968;margin-right:7px}
@keyframes card-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes scroll-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(4px)}}@keyframes float-shape{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-12px) rotate(4deg)}}@keyframes clouds{0%,100%{transform:translateX(-10px)}50%{transform:translateX(14px)}}@keyframes orbit{0%{transform:rotate(0) translateX(8px) rotate(0)}100%{transform:rotate(360deg) translateX(8px) rotate(-360deg)}}.orbit-one{transform-box:fill-box;transform-origin:center;animation:orbit 13s linear infinite}.orbit-two{transform-box:fill-box;transform-origin:center;animation:float-shape 5s ease-in-out infinite}.orbit-three{transform-box:fill-box;transform-origin:center;animation:float-shape 6s ease-in-out -2s infinite}.float-spark{transform-box:fill-box;transform-origin:center;animation:float-shape 7s ease-in-out infinite}.cloud-drift{animation:clouds 12s ease-in-out infinite}.workspace{animation:float-shape 8s ease-in-out infinite}
/* Editorial sections under the immersive hero */
.below-the-fold{max-width:1280px;margin:0 auto;padding:clamp(58px,8vw,106px) clamp(2px,2vw,22px) 30px}.section-title-line{display:flex;justify-content:space-between;align-items:flex-end;gap:22px;margin:0 0 25px}.section-title-line h2{font-size:clamp(1.8rem,3.3vw,2.7rem);margin:9px 0}.section-title-line p{color:var(--muted);margin:0}.section-title-line>.text-link{font-size:.86rem;white-space:nowrap;padding-bottom:6px}.editorial-intro-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.editorial-feature{position:relative;overflow:hidden;min-height:252px;padding:25px;border:1px solid #e7ece5;border-radius:23px;background:#fff;box-shadow:0 12px 36px rgba(23,51,31,.055);transition:.25s}.editorial-feature:hover{transform:translateY(-5px);box-shadow:0 20px 44px rgba(23,51,31,.12)}.editorial-feature h3{font-size:1.33rem;margin:16px 0 9px;max-width:340px}.editorial-feature p{max-width:360px;color:var(--muted);font-size:.9rem}.editorial-feature .text-link{font-size:.82rem}.editorial-icon{width:45px;height:45px;display:grid;place-items:center;border-radius:15px;font-size:1.25rem;margin-bottom:18px}.icon-green{background:#eaf4e8;color:#17804b}.icon-yellow{background:#fff6d9;color:#bc911c}.editorial-feature-dark{background:#173d30;color:#fff;border-color:#173d30}.editorial-feature-dark p{color:#d4e3d8}.editorial-feature-dark .tag{background:#2a5a43;color:#d9eddb}.editorial-feature-dark .text-link{color:#cce7ce}.editorial-feature-art{background:linear-gradient(140deg,#edf6ed,#e1ece3)}.vector-stamp{position:absolute;right:17px;top:10px;font:400 7rem/.9 var(--font-title);color:rgba(24,128,76,.12);transform:rotate(8deg)}.vector-stamp span{font-size:2rem;color:#f2c941;vertical-align:top}.content-section{padding:clamp(45px,6vw,73px) 0;border-top:1px solid #e7ece5}.course-news-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.level-card{padding:20px;border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:0 10px 32px rgba(23,51,31,.05);transition:transform .22s,box-shadow .22s}.level-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.level-card.featured{border-color:#8fbd91}.level-num{color:var(--green);font-size:.7rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase}.level-card h3{font-size:1.15rem;margin:10px 0}.level-card p{font-size:.84rem}.price{font:500 1.42rem var(--font-title);letter-spacing:-.04em}.price small{font:400 .76rem var(--font-body);color:var(--muted);letter-spacing:0}.check-list{list-style:none;padding:0;margin:14px 0}.check-list li{padding:6px 0 6px 21px;position:relative;color:#5f6f64;font-size:.8rem}.check-list li:before{content:'✓';position:absolute;left:0;color:#3d9a5b}.level-card .btn{width:100%;font-size:.78rem;padding:10px 12px}.news-primary-articles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.article-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.article-card{overflow:hidden;border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:0 10px 30px rgba(23,51,31,.05);transition:.2s}.article-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.article-art{height:155px;display:grid;place-items:center;background:linear-gradient(140deg,#e5f0e3,#f4f2d9);font-size:2.8rem}.article-card .pad{padding:18px}.article-card h3{font-size:1.05rem;margin:9px 0}.article-card p{font-size:.82rem}.challenge-banner{position:relative;overflow:hidden;margin:15px 0 30px;padding:clamp(28px,5vw,53px);border-radius:27px;background:linear-gradient(115deg,#123d2f,#1b6942 70%,#338655);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:24px;box-shadow:0 22px 50px rgba(17,62,42,.15)}.challenge-banner .eyebrow{color:#d8eddd}.challenge-banner h2{font-size:clamp(1.8rem,3.4vw,2.8rem);margin:12px 0}.challenge-banner p{max-width:560px;color:#dce9de}.challenge-banner .btn{background:#fff;color:#174e35;box-shadow:none}.challenge-art{position:relative;width:270px;height:190px;flex:0 0 auto;display:grid;place-items:center}.challenge-circle{width:108px;height:108px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.6);border-radius:50%;background:rgba(255,255,255,.12);backdrop-filter:blur(8px);font:400 2.6rem var(--font-title);color:#ffe17b}.challenge-orbit{position:absolute;font-size:2.5rem;animation:float-shape 5s ease-in-out infinite}.orbit-a{top:15px;left:35px;color:#ffda52}.orbit-b{right:30px;top:42px;color:#a7d8b4;animation-delay:-1.3s}.orbit-c{bottom:17px;left:72px;color:#79b3e9;animation-delay:-2s}.pricing-strip{margin:30px 0 15px;padding:26px 29px;border:1px solid #dfeade;border-radius:22px;background:linear-gradient(110deg,#f5faf3,#ebf5ec);display:flex;align-items:center;justify-content:space-between;gap:20px}.pricing-strip h2{font-size:1.6rem;margin:8px 0}.pricing-strip p{margin:0;color:var(--muted);font-size:.9rem}.footer{background:#f6f7f2;border-top:1px solid #e2e8df;padding:43px clamp(18px,4vw,55px) 22px}.footer-inner{max-width:1280px;margin:auto;display:flex;justify-content:space-between;gap:25px;flex-wrap:wrap}.footer-links{display:flex;gap:16px;flex-wrap:wrap;color:var(--muted);font-size:.83rem}.footer-bottom{max-width:1280px;margin:24px auto 0;padding-top:18px;border-top:1px solid var(--line);font-size:.78rem;color:var(--muted)}
/* App shell and learning pages */
.app-shell{min-height:100vh;background:#f2f5f0}.app-topbar{height:70px;padding:0 clamp(16px,3vw,34px);display:flex;align-items:center;gap:20px;position:sticky;top:0;z-index:15;background:rgba(255,255,255,.9);backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}.app-topbar .brand{min-width:205px}.global-search{position:relative;width:min(420px,38vw)}.global-search input,.field input,.field textarea,.field select,.searchbox input{width:100%;padding:11px 14px;border:1px solid #e1e9e1;border-radius:13px;background:#fbfdfb;color:var(--ink)}.global-search input{padding-left:40px}.search-icon{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:#829087}.top-spacer{flex:1}.top-actions{display:flex;align-items:center;gap:9px}.avatar{width:38px;height:38px;border:0;border-radius:50%;display:grid;place-items:center;background:#e4efe4;color:#28764a;font-weight:600}.app-layout{max-width:1540px;margin:auto;display:grid;grid-template-columns:235px minmax(0,1fr)}.sidebar{position:sticky;top:70px;height:calc(100vh - 70px);overflow:auto;padding:20px 13px;background:rgba(255,255,255,.88);border-right:1px solid var(--line)}.side-label{padding:12px 13px 6px;color:#98a49a;font-size:.65rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase}.side-link{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:12px;color:#637268;margin:3px 0;font-size:.88rem;font-weight:500}.side-link:hover,.side-link.active{background:#eaf4e9;color:#1b7042}.side-icon{width:20px;text-align:center}.side-bottom{position:absolute;bottom:15px;left:13px;right:13px}.plan-mini{padding:14px;border:1px solid #e2ece0;border-radius:16px;background:#f4f8f2}.plan-mini p{font-size:.76rem;color:var(--muted);margin:5px 0 10px}.plan-mini .btn{font-size:.75rem}.app-main{width:100%;max-width:1320px;margin:auto;padding:clamp(22px,3.5vw,44px) clamp(16px,3vw,42px) 80px}.page-title-row{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:24px}.page-title-row h1{font-size:2rem;margin:5px 0}.page-title-row p{margin:0;color:var(--muted)}.breadcrumb{font-size:.8rem;color:#869189;margin-bottom:10px}.card{padding:21px;border:1px solid var(--line);border-radius:19px;background:#fff;box-shadow:0 9px 28px rgba(21,53,32,.045)}.card-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:15px}.card-head h3{margin:0}.welcome-banner{position:relative;overflow:hidden;border-radius:24px;padding:27px 30px;background:linear-gradient(110deg,#195f3e,#258451);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:18px}.welcome-banner:after{content:'✳';position:absolute;right:20%;top:-66px;font-size:11rem;color:#ffffff15}.welcome-banner h2{font-size:1.75rem;margin:0 0 7px}.welcome-banner p{margin:0;color:#e1eee3}.welcome-banner .btn{position:relative;z-index:1;background:#fff;color:#17573a;box-shadow:none}.dashboard-grid{display:grid;grid-template-columns:1.4fr .9fr;gap:17px;margin-top:19px}.dashboard-col{display:grid;gap:16px;align-content:start}.resume-card{display:flex;align-items:center;gap:16px}.resume-icon{width:60px;height:60px;flex:0 0 auto;display:grid;place-items:center;border-radius:17px;background:#eaf4e8;color:#287d4c;font-size:1.7rem}.resume-copy{flex:1}.resume-copy h3{margin:0 0 5px}.resume-copy p{margin:0 0 10px;font-size:.83rem;color:var(--muted)}.progress-track{height:8px;overflow:hidden;border-radius:99px;background:#edf1ec}.progress-fill{height:100%;border-radius:99px;background:linear-gradient(90deg,#24824d,#7dbb70);transition:width .4s}.course-progress{display:flex;justify-content:space-between;margin:8px 0 6px;color:var(--muted);font-size:.8rem}.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.metric{padding:14px;border:1px solid var(--line);border-radius:14px}.metric strong{display:block;font:500 1.42rem var(--font-title)}.metric span{font-size:.76rem;color:var(--muted)}.activity-list{display:grid;gap:13px}.activity-item{display:flex;align-items:flex-start;gap:11px}.activity-dot{width:34px;height:34px;flex:0 0 auto;display:grid;place-items:center;border-radius:11px;background:#edf5eb}.activity-item p{flex:1;margin:0;font-size:.86rem}.activity-item small{color:var(--muted)}.empty-state{text-align:center;padding:30px 18px}.empty-icon{font-size:2.4rem;color:#77a77b;margin-bottom:9px}.course-list{display:grid;gap:10px}.course-row{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:13px;padding:13px;border:1px solid var(--line);border-radius:14px;background:#fff}.course-index{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:#eaf4e8;color:var(--green);font-weight:600}.course-row h3{font-size:.98rem;margin:0 0 4px}.course-row p{font-size:.8rem;color:var(--muted);margin:0}.locked{opacity:.68}.lesson-layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:20px}.lesson-main{min-width:0}.lesson-side{position:sticky;top:88px;align-self:start}.lesson-content{max-width:780px}.lesson-content p{color:#53645a;line-height:1.8}.lesson-visual{min-height:230px;margin:17px 0;border-radius:19px;background:linear-gradient(135deg,#eaf5e9,#f4f3df);display:grid;place-items:center;overflow:hidden}.lesson-visual svg{width:min(500px,94%)}.lesson-callout,.callout{padding:14px 17px;border-left:3px solid var(--green);border-radius:0 13px 13px 0;background:#eef6ed;color:#456451}.callout{border:0;border-radius:14px}.callout.warn{background:#fff4e4;color:#836425}.callout.good{background:#e9f6ed;color:#286d47}.interactive-box{margin:20px 0;padding:19px;border:1px solid var(--line);border-radius:17px;background:#f7faf6}.quiz-option{display:block;width:100%;margin:8px 0;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#fff;text-align:left}.quiz-option:hover{border-color:#91bd96}.quiz-option.correct{background:#eef8ed;border-color:#61a66c}.quiz-option.incorrect{background:#fff2e9;border-color:#e39b74}.searchbox{position:relative;max-width:470px}.filter-row{display:flex;flex-wrap:wrap;gap:8px;margin:17px 0}.filter-chip{padding:8px 13px;border:1px solid var(--line);border-radius:999px;background:white;color:#647268;font-weight:500}.filter-chip.active{background:var(--green);border-color:var(--green);color:white}.tab-row{display:flex;gap:6px;overflow:auto;margin-bottom:18px;border-bottom:1px solid var(--line)}.tab-btn{padding:11px 14px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);white-space:nowrap}.tab-btn.active{border-color:var(--green);color:var(--green)}.club-post{margin:12px 0;padding:18px;border:1px solid var(--line);border-radius:17px;background:#fff}.post-head{display:flex;align-items:center;gap:11px}.post-head .avatar{width:40px;height:40px}.post-body{margin:14px 0;color:#405348}.post-actions{display:flex;gap:8px;flex-wrap:wrap}.post-actions button{padding:7px 9px;border:0;border-radius:9px;background:transparent;color:#718075}.post-actions button:hover{background:#edf5eb}.message-box{display:flex;gap:8px;padding-top:12px;margin-top:13px;border-top:1px solid var(--line)}.message-box input{flex:1;min-width:0;padding:10px;border:1px solid var(--line);border-radius:11px}.file-pill{display:inline-flex;gap:6px;align-items:center;margin:5px;padding:7px 10px;border-radius:10px;background:#f0f5ef;font-size:.8rem}.challenge-days{display:grid;grid-template-columns:repeat(7,1fr);gap:7px;margin:17px 0}.day-cell{aspect-ratio:1;border:1px solid var(--line);border-radius:11px;background:#fff;color:#839086}.day-cell.done{background:#e5f4e7;border-color:#c8e2c9;color:#26764a}.day-cell.today{background:var(--green);border-color:var(--green);color:white}.day-cell.future{background:#f6f8f5}.portfolio-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.portfolio-card{padding:10px;border:1px solid var(--line);border-radius:17px;background:#fff}.portfolio-art{height:170px;border-radius:14px;display:grid;place-items:center;font-size:3rem}.portfolio-card h3{font-size:1rem;margin:12px 3px 4px}.portfolio-card p{margin:0 3px 9px;color:var(--muted);font-size:.82rem}.price-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.price-card{padding:18px;border:1px solid var(--line);border-radius:17px;background:#fff}.price-card.selected{border:1px solid #68a875;box-shadow:0 10px 27px rgba(24,128,76,.1)}.price-card h3{margin:9px 0}.price-card .price{margin:11px 0}.field{margin:13px 0}.field label{display:block;margin-bottom:6px;font-weight:600;font-size:.88rem}.field textarea{min-height:105px;resize:vertical}.field .hint{margin-top:5px;color:var(--muted);font-size:.78rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.divider{height:1px;margin:18px 0;background:var(--line)}.progress-ring{position:relative;width:70px;height:70px;display:grid;place-items:center;border-radius:50%;background:conic-gradient(var(--green) calc(var(--pct)*1%),#e8eee7 0)}.progress-ring:before{content:'';position:absolute;inset:7px;border-radius:50%;background:white}.progress-ring span{position:relative;font-weight:600;font-size:.87rem}.notice-bar{padding:12px 15px;border-radius:13px;background:#fff3e3;color:#886329;font-size:.85rem}
/* Modals, footer and mobile nav */
.modal-backdrop{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:18px;background:rgba(17,37,27,.45);backdrop-filter:blur(6px)}.modal{position:relative;width:min(480px,100%);max-height:90vh;overflow:auto;padding:27px;border:1px solid rgba(255,255,255,.8);border-radius:25px;background:#fff;box-shadow:0 28px 90px rgba(8,36,22,.27)}.modal-close{position:absolute;top:15px;right:15px}.modal h2{font-size:1.75rem;margin:10px 36px 8px 0}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}.toast{position:fixed;z-index:100;right:20px;bottom:20px;max-width:min(420px,calc(100vw - 35px));padding:13px 18px;border-radius:999px;background:#153c2c;color:white;box-shadow:var(--shadow);animation:toast-in .2s ease}@keyframes toast-in{from{transform:translateY(12px);opacity:0}to{transform:translateY(0);opacity:1}}.mobile-bottom{display:none}.accordion{border-bottom:1px solid var(--line)}.accordion summary{padding:15px 0;cursor:pointer;font-weight:600;list-style:none}.accordion summary::-webkit-details-marker{display:none}.accordion summary:after{float:right;content:'+';color:var(--green)}.accordion[open] summary:after{content:'−'}
/* Public inner pages */
.section{padding:55px clamp(18px,4vw,52px)}.section-inner{max-width:1230px;margin:auto}.section-heading{max-width:700px;margin:0 auto 34px;text-align:center}.section-heading h1,.section-heading h2{margin:12px 0}.section-heading p{color:var(--muted)}.level-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.page-title-row .btn{white-space:nowrap}.lesson-demo{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:22px;padding:24px;border-radius:23px;background:#eff5ed}.demo-poster{position:relative;height:280px;overflow:hidden;display:grid;place-items:center;border-radius:17px;background:#f0d648}.poster-shape{position:absolute;left:15%;top:20%;width:180px;height:180px;border-radius:50%;background:#2875dc}.poster-shape.two{left:54%;top:42%;width:125px;height:125px;background:#ef8b65}.poster-type{position:relative;z-index:1;color:#1a3226;text-align:center;font:600 clamp(2rem,5vw,4rem)/.9 var(--font-title);transform:rotate(-7deg);text-shadow:3px 3px white}.range-wrap{margin:17px 0}.range-wrap input{width:100%;accent-color:var(--green)}.path-line{display:grid;grid-template-columns:repeat(4,1fr);margin:28px 0}.path-step{position:relative;padding:16px;border-top:2px solid #dce8dc}.path-step:before{content:'';position:absolute;top:-8px;left:15px;width:12px;height:12px;border:3px solid white;border-radius:50%;background:var(--green);box-shadow:0 0 0 1px #bdd8be}.path-step strong{display:block;margin:4px 0;font-weight:600}.path-step span{color:var(--muted);font-size:.8rem}
@media(max-width:1050px){.portal-bar{grid-template-columns:1fr auto}.portal-tabs{display:none}.portal-actions{grid-column:2}.hero-headline{width:76%}.hero-project-card{max-width:295px}.hero-stat-card{right:25px}.course-news-grid,.level-grid,.price-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid{grid-template-columns:1fr}.lesson-layout{grid-template-columns:1fr}.lesson-side{position:static}.sidebar{width:220px}.app-layout{grid-template-columns:220px minmax(0,1fr)}}
@media(max-width:720px){body{font-size:14px}.public-header{background:rgba(246,246,241,.85)}.public-nav{height:65px;padding:0 14px;gap:8px}.public-links{display:none}.public-actions{margin-left:auto}.public-actions .text-link{display:none}.public-header .btn{padding:9px 12px;font-size:.75rem}.mobile-menu{display:inline-grid;width:36px;height:36px}.outer-signature{height:45px;font-size:.56rem;padding:0 3px}.ambient-page{padding:0 9px 40px}.portal-shell{padding:7px;border-radius:25px}.portal-bar{height:55px;padding:0 9px;gap:7px}.portal-brand{font-size:.78rem}.portal-brand .brand-mark{width:29px;height:29px}.portal-brand small{font-size:.42rem}.portal-language{display:none}.portal-join{padding:9px 12px;font-size:.69rem}.portal-hero{min-height:700px;height:calc(100svh - 155px);max-height:790px;border-radius:20px}.hero-svg-scene>svg{width:100%;height:100%;object-fit:cover}.hero-headline{top:7%;width:90%}.hero-kicker{font-size:.52rem;letter-spacing:.1em}.hero-headline h1{font-size:clamp(2.45rem,11vw,3.55rem);margin:11px 0}.hero-headline p{max-width:330px;font-size:.82rem}.hero-cta-row{gap:12px;margin-top:14px}.hero-primary,.hero-secondary{font-size:.69rem}.hero-primary{padding:10px 13px}.hero-rail{left:9px;top:52%;width:40px;padding:7px 4px;gap:4px}.hero-rail a{width:30px;height:30px;font-size:.9rem}.hero-project-card{left:57px;bottom:11%;max-width:calc(100% - 114px);padding:10px 11px;gap:8px}.hero-project-card strong{font-size:.72rem}.hero-project-card small{font-size:.57rem}.hero-project-card span:not(.brand-mark){font-size:.5rem}.hero-stat-card{right:12px;bottom:3%;min-width:172px;padding:9px 11px;gap:8px}.hero-stat-card strong{font-size:.69rem}.hero-stat-card small{font-size:.58rem}.stat-avatars i{width:23px;height:23px}.hero-orbit-mark{width:58px;height:58px;bottom:-20px}.hero-orbit-mark .brand-mark{width:32px;height:32px}.hero-scroll-hint{left:50%;bottom:14px;font-size:.49rem}.hero-index{right:12px;bottom:13px;font-size:.57rem}.portal-bottom{height:40px;padding:0 8px;font-size:.47rem;letter-spacing:.05em}.portal-bottom span:last-child{display:none}.below-the-fold{padding:53px 8px 15px}.section-title-line{align-items:flex-start;flex-direction:column;gap:8px}.section-title-line>.text-link{padding:0}.editorial-intro-grid{grid-template-columns:1fr}.editorial-feature{min-height:210px;padding:21px}.course-news-grid,.level-grid,.price-grid{grid-template-columns:1fr}.news-primary-articles,.article-grid{grid-template-columns:1fr}.news-primary-articles .article-card{display:grid;grid-template-columns:112px 1fr}.news-primary-articles .article-art{height:100%;min-height:130px}.news-primary-articles .article-card .pad{padding:12px}.news-primary-articles .article-card p{display:none}.challenge-banner{align-items:flex-start;flex-direction:column;padding:24px}.challenge-art{position:absolute;right:-30px;bottom:-45px;width:180px;height:150px;opacity:.65}.pricing-strip{align-items:flex-start;flex-direction:column;padding:22px}.pricing-strip .btn{width:100%}.footer{padding:32px 18px 20px}.footer-inner{display:block}.footer-links{margin-top:20px}.app-topbar{height:60px;padding:0 12px;gap:9px}.app-topbar .brand{min-width:auto}.app-topbar .brand-name{display:none}.global-search{width:auto;flex:1}.global-search input{padding:9px 9px 9px 34px;font-size:.82rem}.global-search .search-icon{left:10px}.app-topbar .top-actions .icon-btn{width:36px;height:36px}.app-layout{display:block}.sidebar{display:none}.app-main{padding:21px 14px 95px}.page-title-row{align-items:flex-start;flex-direction:column}.page-title-row h1{font-size:1.75rem}.welcome-banner{align-items:flex-start;flex-direction:column;padding:21px}.welcome-banner h2{font-size:1.5rem}.resume-card{align-items:flex-start;flex-wrap:wrap}.resume-copy{min-width:calc(100% - 82px)}.resume-card>.btn{margin-left:76px}.metric-grid{grid-template-columns:repeat(3,1fr);gap:7px}.metric{padding:11px 8px}.metric strong{font-size:1.13rem}.metric span{font-size:.68rem}.course-row{grid-template-columns:38px 1fr}.course-row>.btn{grid-column:2;justify-self:start}.portfolio-grid{grid-template-columns:1fr 1fr;gap:9px}.portfolio-art{height:125px}.form-row{grid-template-columns:1fr}.mobile-bottom{position:fixed;z-index:25;left:0;right:0;bottom:0;height:64px;padding-bottom:env(safe-area-inset-bottom);display:grid;grid-template-columns:repeat(5,1fr);background:rgba(255,255,255,.96);backdrop-filter:blur(16px);border-top:1px solid var(--line)}.mobile-bottom a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;color:#748177;font-size:.65rem;font-weight:600}.mobile-bottom a span:first-child{font-size:1.05rem}.mobile-bottom a.active{color:var(--green)}.side-bottom{display:none}.modal{padding:22px}.toast{right:10px;bottom:76px}.path-line{grid-template-columns:1fr 1fr}.lesson-demo{grid-template-columns:1fr;padding:16px}.demo-poster{height:220px}.challenge-days{gap:5px}.day-cell{border-radius:8px;font-size:.75rem}.community-preview{grid-template-columns:1fr}}
@media(max-width:390px){.portal-brand small{display:none}.hero-headline h1{font-size:2.3rem}.hero-headline p{font-size:.76rem}.hero-project-card{left:52px;max-width:calc(100% - 100px)}.hero-stat-card{min-width:155px}.hero-rail{left:6px}.feature-meta{display:none}.portfolio-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
.reduce-motion *,html.reduce-motion{scroll-behavior:auto!important;animation:none!important;transition:none!important}

/* Original vector portrait & vignette system — all art is inline SVG */
.vector-thumb-svg{display:block;width:100%;height:100%;min-height:100%;object-fit:cover;overflow:hidden}.course-art{height:150px;overflow:hidden;margin:-20px -20px 17px;border-radius:19px 19px 12px 12px;background:#e8f1e5}.course-art .vector-thumb-svg{height:150px}.article-art{overflow:hidden}.article-art .vector-thumb-svg{height:100%}.article-art-large{height:clamp(220px,34vw,380px);border-radius:24px!important;margin:12px 0 20px}.article-art-large .vector-thumb-svg{height:100%}.editorial-thumb{height:118px;margin:-25px -25px 20px;overflow:hidden;border-radius:22px 22px 13px 13px;background:#edf4e8}.editorial-thumb .vector-thumb-svg{height:118px}.editorial-feature-dark .editorial-thumb{opacity:.95}.portfolio-art{overflow:hidden;padding:0;background:#eaf2e8}.portfolio-art .vector-thumb-svg{height:100%}.empty-vector{width:min(340px,100%);height:155px;margin:0 auto 15px;border-radius:17px;overflow:hidden;background:#eaf2e8}.empty-vector .vector-thumb-svg{height:155px}.avatar-scene{overflow:hidden;padding:0;background:transparent!important}.avatar-vector{display:block;width:100%;height:100%;border-radius:50%;overflow:hidden}.member-mini{overflow:hidden;padding:0;border-radius:50%;background:transparent}.member-mini .avatar-vector{width:36px;height:36px}.resume-icon{overflow:hidden;padding:3px}.resume-icon .avatar-vector{width:54px;height:54px}.dashboard-challenge-art{height:112px;overflow:hidden;margin:8px -5px 12px;border-radius:14px;background:#edf5e9}.dashboard-challenge-art .vector-thumb-svg{height:112px}.challenge-people{width:min(260px,32%);height:154px;overflow:hidden;border-radius:17px;box-shadow:0 14px 28px rgba(11,48,29,.18);border:1px solid rgba(255,255,255,.32)}.challenge-people .vector-thumb-svg{height:100%}.hero-project-card .float-card-icon{overflow:hidden}.mentor-mini{display:flex;gap:10px;align-items:center;margin-top:16px;padding:12px;border:1px solid var(--line);border-radius:14px;background:#f8faf7}.mentor-mini p{margin:0}.mentor-avatar{width:44px;height:44px;flex:0 0 auto;overflow:hidden;border-radius:50%}.profile-header-illustration{display:flex;align-items:center;gap:11px;margin-bottom:13px;color:var(--muted);font-size:.8rem}.profile-header-illustration .avatar-vector{width:47px;height:47px;flex:0 0 auto}.help-illustration,.admin-illustration,.progress-illustration,.course-detail-art{height:180px;overflow:hidden;margin:0 0 20px;border:1px solid #e3ece1;border-radius:20px;background:#f1f6ed}.help-illustration .vector-thumb-svg,.admin-illustration .vector-thumb-svg,.progress-illustration .vector-thumb-svg,.course-detail-art .vector-thumb-svg{height:100%}.progress-illustration{height:155px;margin-top:-5px}.admin-illustration{height:145px;margin-top:15px}.course-detail-art{height:190px}.art-float{transform-box:fill-box;transform-origin:center;animation:art-drift 6s ease-in-out infinite}.person-figure{transform-box:fill-box;transform-origin:center bottom;animation:person-breathe 5.8s ease-in-out infinite}.art-sparkles{animation:spark-glow 3.6s ease-in-out infinite alternate}@keyframes art-drift{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-5px) rotate(-2deg)}}@keyframes person-breathe{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px)}}@keyframes spark-glow{from{opacity:.45}to{opacity:1}}
@media(max-width:720px){.course-art{height:175px}.course-art .vector-thumb-svg{height:175px}.editorial-thumb{margin:-21px -21px 17px;height:130px}.editorial-thumb .vector-thumb-svg{height:130px}.challenge-people{width:100%;height:140px;max-width:320px}.help-illustration,.admin-illustration,.course-detail-art{height:140px}.progress-illustration{height:125px}.article-art-large{height:220px}}
@media(prefers-reduced-motion:reduce){.art-float,.person-figure,.art-sparkles{animation:none!important}}
.lesson-character-strip{width:min(460px,100%);height:125px;overflow:hidden;margin:0 0 20px auto;border-radius:16px;background:#ecf5e9}.lesson-character-strip .vector-thumb-svg{height:125px}
@media(max-width:720px){.lesson-character-strip{width:100%;height:112px}.lesson-character-strip .vector-thumb-svg{height:112px}}

/* Student portfolio showcase — editorial art-direction inspired by the references */
.pf-toolbar-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.pf-preview-note{display:flex;align-items:center;gap:8px;margin:-7px 0 14px;color:#697a6c;font-size:.68rem;letter-spacing:.07em}.pf-preview-note a{margin-left:auto;color:var(--green);font-weight:600}.pf-preview-note .green-dot{flex:0 0 auto}
.student-portfolio{--pf-accent:#ef4b24;position:relative;overflow:hidden;border:1px solid #33231b;border-radius:27px;background:#110c0a;color:#fff;box-shadow:0 28px 70px rgba(21,18,14,.21);font-family:var(--font-body)}.pf-nav{position:relative;z-index:4;min-height:68px;padding:10px clamp(16px,3vw,34px);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:18px;border-bottom:1px solid rgba(255,255,255,.11);background:#17100d}.pf-brand{display:flex;align-items:center;gap:9px;font:500 .82rem var(--font-title)}.pf-brand .brand-mark{width:31px;height:31px}.pf-brand>span:last-child{display:grid;line-height:1.1}.pf-brand small{margin-top:4px;color:#b7a99d;font:600 .48rem var(--font-body);letter-spacing:.11em}.pf-nav nav{display:flex;gap:5px;padding:5px;border:1px solid rgba(255,255,255,.17);border-radius:999px;background:rgba(255,255,255,.055)}.pf-nav nav a{padding:7px 12px;border-radius:999px;color:#ddd5ce;font-size:.65rem;transition:.2s}.pf-nav nav a:hover{background:#fff;color:#24150e}.pf-contact-button{justify-self:end;padding:9px 14px;border-radius:999px;background:var(--pf-accent);color:#fff;font-size:.66rem;font-weight:600;transition:filter .2s}.pf-contact-button:hover{filter:brightness(1.12)}.pf-contact-button span{margin-left:8px}
.pf-hero{position:relative;min-height:clamp(470px,48vw,630px);overflow:hidden;background:radial-gradient(ellipse at 72% 40%,color-mix(in srgb,var(--pf-accent),#32170d 33%),#22120d 58%,#130d0b 100%);isolation:isolate}.pf-hero-backdrop{position:absolute;inset:0;z-index:-2;opacity:.79;mix-blend-mode:screen}.pf-hero-backdrop .vector-thumb-svg{height:100%;object-fit:cover}.pf-hero-overlay{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#140c09 2%,rgba(20,12,9,.94) 29%,rgba(20,12,9,.52) 57%,rgba(20,12,9,.12) 100%),linear-gradient(0deg,#100a08 0%,transparent 38%)}.pf-hero-copy{position:relative;z-index:2;width:min(56%,650px);padding:clamp(55px,7vw,94px) 0 135px clamp(25px,5.5vw,76px)}.pf-kicker{display:inline-flex;align-items:center;gap:8px;color:#f6ded3;font-size:.59rem;font-weight:600;letter-spacing:.15em}.pf-kicker i{width:6px;height:6px;border-radius:50%;background:var(--pf-accent);box-shadow:0 0 0 5px color-mix(in srgb,var(--pf-accent),transparent 75%)}.pf-hero-copy h2{font:400 clamp(2.6rem,5.4vw,5.7rem)/.93 var(--font-title);letter-spacing:-.075em;margin:17px 0 15px}.pf-hero-copy h2 em{font-style:normal;color:var(--pf-accent)}.pf-hero-copy>p{max-width:410px;color:#d1c2b8;font-size:.9rem;line-height:1.7}.pf-hero-actions{display:flex;align-items:center;gap:20px;margin-top:21px}.pf-white-button{display:inline-flex;align-items:center;gap:14px;padding:11px 15px;border:0;border-radius:999px;background:#fff6e9;color:#25140e;font-size:.72rem;font-weight:600;cursor:pointer;transition:transform .2s}.pf-white-button:hover{transform:translateY(-2px)}.pf-white-button span{width:22px;height:22px;display:grid;place-items:center;border-radius:50%;background:var(--pf-accent);color:white}.pf-text-button{color:#f1e7dd;font-size:.71rem}.pf-metrics{display:flex;gap:9px;margin-top:32px}.pf-metrics>div{min-width:120px;padding:12px 14px;border:1px solid rgba(255,255,255,.19);border-radius:13px;background:rgba(255,255,255,.08);backdrop-filter:blur(12px)}.pf-metrics strong{display:block;font:400 1.55rem var(--font-title);letter-spacing:-.07em}.pf-metrics small{display:block;color:#d5c7bd;font-size:.53rem;letter-spacing:.08em}
.pf-profile-card{position:absolute;z-index:3;right:clamp(20px,5vw,68px);top:25%;width:205px;padding:13px;border:1px solid rgba(255,255,255,.45);border-radius:17px;background:rgba(255,249,239,.92);color:#2a211c;box-shadow:0 20px 45px rgba(0,0,0,.25);backdrop-filter:blur(14px);transform:rotate(2deg);animation:pf-card-float 6s ease-in-out infinite}.pf-profile-card>.avatar-vector{width:100%;height:112px;margin-bottom:11px;border-radius:11px;background:#eed8c7}.pf-profile-card>div{display:grid;gap:4px}.pf-profile-card span{font-size:.49rem;letter-spacing:.11em;color:var(--pf-accent)}.pf-profile-card strong{font:500 .85rem var(--font-title)}.pf-profile-card small{font-size:.61rem;color:#756a60}.pf-profile-card>a{position:absolute;right:12px;bottom:12px;width:26px;height:26px;display:grid;place-items:center;border-radius:50%;background:var(--pf-accent);color:white}.pf-hero-stamp{position:absolute;z-index:3;right:39%;bottom:-25px;width:66px;height:66px;display:grid;place-items:center;border:4px solid #271a13;border-radius:50%;background:var(--pf-accent);box-shadow:0 12px 28px rgba(0,0,0,.25);animation:pf-stamp 12s linear infinite}.pf-hero-stamp .brand-mark{width:34px;height:34px;filter:brightness(1.1)}.pf-index{position:absolute;right:20px;bottom:16px;color:#dfd1c7;font:500 .6rem var(--font-title);letter-spacing:.12em}.pf-index i{color:#ae9f94;font-style:normal;margin:0 5px}@keyframes pf-card-float{0%,100%{transform:translateY(0) rotate(2deg)}50%{transform:translateY(-8px) rotate(1deg)}}@keyframes pf-stamp{to{rotate:360deg}}
.pf-about{padding:clamp(32px,5vw,68px);background:#110d0b}.pf-about-label{display:flex;justify-content:space-between;color:#a89b91;font-size:.54rem;letter-spacing:.14em}.pf-about>h2{margin:25px 0 31px;font:400 clamp(2.1rem,4.5vw,4.4rem)/.98 var(--font-title);letter-spacing:-.07em}.pf-about>h2 em{font-style:normal;color:var(--pf-accent)}.pf-about-grid{display:grid;grid-template-columns:minmax(260px,.9fr) minmax(300px,1.1fr);gap:clamp(18px,4vw,52px);align-items:center}.pf-about-art{height:300px;overflow:hidden;border-radius:17px;background:#27201b}.pf-about-art .vector-thumb-svg{height:100%}.pf-about-copy{max-width:590px}.pf-kicker-dark{font-size:.58rem;letter-spacing:.15em;color:var(--pf-accent)}.pf-about-copy>p{color:#d2c6bd;font-size:.84rem;line-height:1.8}.pf-approach{display:flex;gap:10px;margin:22px 0;flex-wrap:wrap}.pf-approach span{padding:9px 12px;border:1px solid rgba(255,255,255,.13);border-radius:10px;color:#c0b3a9;font-size:.63rem}.pf-approach b{margin-left:8px;color:white;font-weight:500}.pf-outline-button{display:inline-flex;padding:10px 14px;border:1px solid rgba(255,255,255,.36);border-radius:999px;font-size:.68rem}
.pf-services{padding:clamp(35px,5vw,65px);background:#17100d}.pf-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:22px}.pf-section-heading h2{margin:7px 0 0;font:400 clamp(1.8rem,3.4vw,3.1rem)/1 var(--font-title);letter-spacing:-.065em}.pf-section-heading>p{max-width:310px;margin:0;color:#b8aaa0;font-size:.75rem}.pf-services-grid{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:minmax(180px,auto);gap:10px}.pf-services-grid article{position:relative;grid-column:span 2;min-height:185px;padding:18px;border-radius:15px;background:#fff5e7;color:#241811;transition:transform .25s,background .25s}.pf-services-grid article:nth-child(4){grid-column:2/span 2}.pf-services-grid article:nth-child(5){grid-column:4/span 2}.pf-services-grid article:hover{transform:translateY(-5px)}.pf-services-grid article.pf-service-accent{background:var(--pf-accent);color:white}.pf-service-index{font-size:.56rem;letter-spacing:.13em;opacity:.7}.pf-services-grid h3{max-width:190px;margin:24px 0 9px;font:500 clamp(1.1rem,1.8vw,1.65rem)/.98 var(--font-title);letter-spacing:-.055em}.pf-services-grid p{max-width:220px;margin:0;font-size:.68rem;line-height:1.5;opacity:.76}.pf-services-grid article>b{position:absolute;right:13px;top:13px;width:24px;height:24px;display:grid;place-items:center;border-radius:50%;background:rgba(0,0,0,.1);font-weight:500}
.pf-works{padding:clamp(35px,5vw,65px);background:#0e0b09}.pf-works .pf-section-heading{align-items:flex-start;flex-direction:column}.pf-works .pf-section-heading>p{max-width:none}.pf-work-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.pf-work-card{overflow:hidden;border:1px solid rgba(255,255,255,.11);border-radius:17px;background:#19120e}.pf-work-art{height:230px;overflow:hidden;background:#dedccd}.pf-work-art .vector-thumb-svg{height:100%}.pf-work-copy{padding:16px}.pf-work-copy>span,.pf-empty-work>div:last-child>span{font-size:.54rem;letter-spacing:.12em;color:var(--pf-accent)}.pf-work-copy h3,.pf-empty-work h3{margin:7px 0;font:500 1.1rem var(--font-title)}.pf-work-copy p,.pf-empty-work p{font-size:.75rem;color:#b9aca2}.pf-work-copy>a{font-size:.68rem;color:#fff}.pf-empty-work{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:center;padding:15px;border:1px solid rgba(255,255,255,.13);border-radius:19px;background:#1a120e}.pf-empty-art{height:230px;overflow:hidden;border-radius:13px;background:#e8eddf}.pf-empty-art .vector-thumb-svg{height:100%}.pf-empty-work>div:last-child{padding:16px;max-width:420px}.pf-empty-work .btn{background:var(--pf-accent);margin-top:8px}.pf-works-footer{display:flex;justify-content:space-between;gap:15px;margin-top:17px;padding-top:14px;border-top:1px solid rgba(255,255,255,.12);color:#a89b91;font-size:.55rem;letter-spacing:.1em}.pf-works-footer a{color:#fff;letter-spacing:0;font-size:.66rem}
.pf-contact{position:relative;overflow:hidden;padding:clamp(36px,6vw,75px);background:var(--pf-accent);color:white}.pf-contact .pf-kicker{color:#fff2e8}.pf-contact h2{max-width:700px;margin:16px 0;font:400 clamp(2.5rem,5vw,5rem)/.96 var(--font-title);letter-spacing:-.07em}.pf-contact p{max-width:430px;color:rgba(255,255,255,.83);font-size:.86rem}.pf-contact .pf-white-button{margin-top:9px}.pf-contact-mark{position:absolute;right:8%;bottom:-32px;width:150px;height:150px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.35);border-radius:50%;background:rgba(255,255,255,.12);animation:pf-stamp 22s linear infinite}.pf-contact-mark .brand-mark{width:75px;height:75px}.pf-footer{display:flex;justify-content:space-between;gap:15px;padding:14px 22px;background:#0b0807;color:#a99b90;font-size:.53rem;letter-spacing:.1em}.pf-footer b{color:var(--pf-accent)}
/* Portfolio settings and accessible chromatic wheel */
.portfolio-settings-layout{display:grid;grid-template-columns:1fr 1fr;gap:17px;align-items:start}.pf-settings-card,.pf-profile-settings{padding:24px}.pf-settings-card>p{font-size:.84rem}.pf-color-swatch{width:30px;height:30px;border:4px solid #fff;border-radius:50%;background:var(--chosen);box-shadow:0 0 0 1px var(--line),0 3px 9px rgba(0,0,0,.12)}.color-picker-layout{display:grid;grid-template-columns:250px minmax(150px,1fr);gap:24px;align-items:center;padding:15px 0}.color-wheel{position:relative;width:clamp(190px,22vw,245px);aspect-ratio:1;justify-self:center;border:1px solid rgba(40,48,39,.09);border-radius:50%;background:radial-gradient(circle at center,#fff 0%,rgba(255,255,255,.96) 9%,rgba(255,255,255,.05) 69%),conic-gradient(from 0deg,#ff3b30,#ffcf33,#5bd34c,#33d5d1,#2677f4,#8852e8,#ed46c1,#ff3b30);box-shadow:inset 0 0 0 1px rgba(255,255,255,.8),0 12px 25px rgba(20,44,28,.11);cursor:crosshair;touch-action:none;user-select:none}.color-wheel:before{content:'';position:absolute;inset:26%;border-radius:50%;background:rgba(255,255,255,.94);box-shadow:0 3px 16px rgba(30,43,29,.11)}.wheel-core{position:absolute;z-index:1;left:50%;top:50%;width:45px;height:45px;transform:translate(-50%,-50%);display:grid;place-items:center;border-radius:50%;background:#fff}.wheel-core .brand-mark{width:34px;height:34px}.wheel-knob{position:absolute;z-index:2;left:var(--knob-x,85%);top:var(--knob-y,50%);width:20px;height:20px;transform:translate(-50%,-50%);border:3px solid #fff;border-radius:50%;background:var(--pf-accent,#ef4b24);box-shadow:0 2px 8px rgba(0,0,0,.4);pointer-events:none}.color-picker-info{display:grid;gap:8px}.color-picker-info>strong{font:500 1.22rem var(--font-title);letter-spacing:.04em}.pf-color-preview{height:95px;margin:4px 0 9px;padding:13px;border-radius:14px;background:linear-gradient(135deg,var(--chosen),color-mix(in srgb,var(--chosen),#35170e 35%));color:white;display:flex;align-items:flex-start;justify-content:space-between;font:500 .78rem/1.1 var(--font-title);box-shadow:0 8px 18px color-mix(in srgb,var(--chosen),transparent 73%)}.pf-color-preview i{width:24px;height:24px;display:grid;place-items:center;border-radius:50%;background:#fff;color:var(--chosen);font-style:normal}.color-picker-info input[type=range]{width:100%;accent-color:var(--green)}.pf-palette-presets{display:flex;gap:8px;margin-top:4px}.pf-palette-presets button{width:24px;height:24px;border:2px solid #fff;border-radius:50%;background:var(--preset);box-shadow:0 0 0 1px #d8e0d7;transition:transform .2s}.pf-palette-presets button:hover{transform:scale(1.15)}.pf-settings-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:18px}.pf-settings-footer>div{display:flex;align-items:center;gap:12px}.pf-settings-footer .avatar-vector{width:46px;height:46px;flex:0 0 auto}.pf-settings-footer p{margin:3px 0 0}
@media(max-width:1000px){.pf-profile-card{right:25px;width:180px}.pf-hero-copy{width:65%}.pf-services-grid{grid-template-columns:repeat(6,1fr)}.pf-services-grid article{grid-column:span 3}.pf-services-grid article:nth-child(4){grid-column:2/span 2}.pf-services-grid article:nth-child(5){grid-column:4/span 2}.portfolio-settings-layout{grid-template-columns:1fr}.color-picker-layout{grid-template-columns:230px 1fr}}
@media(max-width:720px){.pf-toolbar-actions{width:100%}.pf-toolbar-actions .btn{flex:1;padding:10px 9px;font-size:.68rem}.pf-preview-note{font-size:.56rem;align-items:flex-start;flex-wrap:wrap}.pf-preview-note a{width:100%;margin-left:16px}.student-portfolio{border-radius:19px}.pf-nav{min-height:58px;grid-template-columns:1fr auto;padding:8px 12px}.pf-nav nav{display:none}.pf-contact-button{font-size:.62rem;padding:8px 11px}.pf-hero{min-height:690px}.pf-hero-backdrop .vector-thumb-svg{object-fit:cover}.pf-hero-overlay{background:linear-gradient(180deg,rgba(15,9,7,.62),rgba(15,9,7,.23) 36%,rgba(15,9,7,.65) 70%,#100a08 100%)}.pf-hero-copy{width:100%;padding:45px 22px 250px}.pf-hero-copy h2{font-size:clamp(2.5rem,12vw,3.7rem)}.pf-hero-copy>p{max-width:330px;font-size:.82rem}.pf-hero-actions{gap:12px;flex-wrap:wrap}.pf-metrics{gap:6px;margin-top:23px}.pf-metrics>div{min-width:0;flex:1;padding:9px}.pf-metrics strong{font-size:1.1rem}.pf-metrics small{font-size:.44rem}.pf-profile-card{top:auto;bottom:31px;right:15px;width:142px;padding:9px;transform:rotate(1deg)}.pf-profile-card>.avatar-vector{height:78px}.pf-profile-card span{font-size:.42rem}.pf-profile-card strong{font-size:.7rem}.pf-profile-card small{font-size:.52rem}.pf-hero-stamp{right:auto;left:53%;bottom:-22px;width:55px;height:55px}.pf-hero-stamp .brand-mark{width:28px;height:28px}.pf-index{right:12px;bottom:10px}.pf-about,.pf-services,.pf-works{padding:28px 18px}.pf-about-label{font-size:.45rem}.pf-about>h2{font-size:2rem;margin:22px 0}.pf-about-grid{grid-template-columns:1fr;gap:17px}.pf-about-art{height:190px}.pf-about-copy>p{font-size:.79rem}.pf-section-heading{align-items:flex-start;flex-direction:column;gap:8px}.pf-services-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:minmax(155px,auto);gap:8px}.pf-services-grid article,.pf-services-grid article:nth-child(4),.pf-services-grid article:nth-child(5){grid-column:auto;min-height:160px;padding:13px}.pf-services-grid h3{font-size:1.05rem;margin:22px 0 7px}.pf-services-grid p{font-size:.62rem}.pf-work-grid{grid-template-columns:1fr}.pf-work-art{height:175px}.pf-empty-work{grid-template-columns:1fr;gap:10px;padding:10px}.pf-empty-art{height:165px}.pf-empty-work>div:last-child{padding:10px}.pf-works-footer{font-size:.45rem;align-items:flex-start;flex-direction:column}.pf-contact{padding:33px 20px}.pf-contact h2{font-size:2.6rem}.pf-contact-mark{width:100px;height:100px;right:5%;bottom:-24px}.pf-contact-mark .brand-mark{width:52px;height:52px}.pf-footer{font-size:.44rem;flex-direction:column}.pf-settings-card,.pf-profile-settings{padding:18px}.color-picker-layout{grid-template-columns:1fr;gap:14px}.color-wheel{width:min(76vw,240px)}.color-picker-info{grid-template-columns:1fr 1fr}.color-picker-info>.small,.color-picker-info>strong,.color-picker-info>.pf-color-preview,.color-picker-info>label,.color-picker-info>input,.color-picker-info>.pf-palette-presets{grid-column:1/-1}.pf-settings-footer{align-items:flex-start;flex-direction:column}.pf-settings-footer .btn{width:100%}}
@media(prefers-reduced-motion:reduce){.pf-profile-card,.pf-hero-stamp,.pf-contact-mark{animation:none!important}}
