.portfolio-article{--pf-bg:#050b14;--pf-panel:#0b1725;--pf-line:#294259;--pf-text:#e3edf7;--pf-muted:#91a7ba;--pf-lime:#c8ff3d;--pf-cyan:#37e1ed;--pf-violet:#a975ff;color:var(--pf-text);overflow-x:clip}.portfolio-article .article-featured,.portfolio-poster img{display:block;width:100%;height:auto}.portfolio-article .article-featured{max-width:1200px;margin:clamp(1.5rem,4vw,3rem) auto;border-radius:24px;box-shadow:0 24px 80px rgba(0,0,0,.4)}.portfolio-article .article-content h2,.portfolio-article .article-content h3{scroll-margin-top:110px}.portfolio-article .article-content h2{margin-top:3.1rem}.portfolio-article code{color:#d9ff79}.portfolio-article button,.portfolio-article select{font:inherit}
.portfolio-toc{margin:2rem 0;padding:1.4rem;border:1px solid var(--pf-line);border-radius:20px;background:rgba(11,23,37,.76)}.portfolio-toc strong{display:block;margin-bottom:.75rem}.portfolio-toc ol{columns:2;gap:2rem;margin:0;padding-left:1.25rem}.portfolio-toc li{break-inside:avoid;margin:.35rem 0}.portfolio-toc a{color:var(--pf-text)}.portfolio-poster{margin:2rem 0;padding:10px;background:linear-gradient(135deg,rgba(200,255,61,.28),rgba(55,225,237,.08),rgba(169,117,255,.24));border-radius:24px}.portfolio-poster img{border-radius:17px}.portfolio-poster figcaption{padding:.85rem .8rem .35rem;color:var(--pf-muted);font-size:.92rem}.portfolio-article .code-block{margin:1.4rem 0;border:1px solid var(--pf-line);border-radius:18px;background:#030810;overflow:auto}.portfolio-article pre{margin:0;padding:1.2rem;color:#e4f1fb;font-size:.9rem;line-height:1.7}
.portfolio-flow{display:flex;align-items:stretch;gap:.45rem;margin:1.5rem 0;overflow:auto}.portfolio-flow span{min-width:105px;padding:.85rem .65rem;text-align:center;border:1px solid var(--pf-line);border-radius:12px;background:var(--pf-panel);font-size:.74rem;font-weight:800}.portfolio-flow b{display:block;color:var(--pf-lime)}.portfolio-flow i{align-self:center;color:var(--pf-cyan);font-style:normal}.planning-grid,.architecture-grid,.feature-map,.check-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.7rem;margin:1.5rem 0}.planning-grid span,.architecture-grid span,.feature-map span,.check-grid span{padding:.85rem;border:1px solid var(--pf-line);border-radius:12px;background:var(--pf-panel);text-align:center}.architecture-grid span{color:var(--pf-cyan);font-family:monospace}.about-visual{display:flex;align-items:center;justify-content:center;gap:1rem;min-height:190px;margin:1.5rem 0;padding:1.2rem;border:1px solid var(--pf-line);border-radius:18px;background:radial-gradient(circle at 50% 50%,rgba(55,225,237,.15),transparent 40%),#07111d;flex-wrap:wrap}.about-visual span{font-size:clamp(1.4rem,4vw,2.6rem);font-weight:900}.about-visual b{color:var(--pf-lime);font-size:2rem}.about-visual i{flex-basis:100%;color:var(--pf-muted);font-style:normal;text-align:center}
.service-diagram{display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem;margin:1.5rem 0}.service-diagram article{position:relative;min-height:130px;padding:1rem;border:1px solid var(--pf-line);border-radius:15px;background:linear-gradient(145deg,#12273a,#07111d)}.service-diagram span{color:var(--pf-lime);font-size:1.5rem;font-weight:900}.service-diagram b{display:block;margin-top:1rem}.service-diagram i{position:absolute;right:.7rem;bottom:.7rem;color:var(--pf-cyan);font-style:normal;font-size:.75rem}.process-line,.story-architecture,.final-model{display:flex;align-items:center;justify-content:space-between;gap:.7rem;margin:1.5rem 0;overflow:auto}.process-line{position:relative}.process-line:before{content:"";position:absolute;left:3rem;right:3rem;top:1.4rem;border-top:2px solid var(--pf-cyan)}.process-line span{position:relative;min-width:125px;text-align:center}.process-line b{width:2.8rem;height:2.8rem;margin:0 auto .5rem;display:grid;place-items:center;border-radius:50%;background:var(--pf-cyan);color:#06101a}.project-compare{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin:1.5rem 0}.project-compare article{padding:1.2rem;border:1px solid var(--pf-line);border-radius:16px;background:var(--pf-panel)}.project-compare strong{color:var(--pf-lime)}.project-compare p{margin:.4rem 0 0;color:var(--pf-muted)}
.story-architecture span,.final-model span,.final-model strong{min-width:135px;padding:.9rem;border:1px solid var(--pf-line);border-radius:12px;background:var(--pf-panel);text-align:center;font-weight:900}.story-architecture i,.final-model i{color:var(--pf-violet);font-style:normal}.story-progress{display:grid;grid-template-columns:repeat(4,1fr);gap:.6rem;margin:1.5rem 0}.story-progress span{padding:.8rem;border-top:3px solid #31485e;color:var(--pf-muted)}.story-progress .is-active{border-color:var(--pf-lime);color:var(--pf-lime)}.master-map{display:flex;flex-direction:column;align-items:center;gap:.4rem;margin:1.5rem 0}.master-map span,.master-map b{min-width:240px;padding:.85rem;text-align:center;border:1px solid var(--pf-line);border-radius:12px;background:var(--pf-panel)}.master-map span{background:var(--pf-lime);color:#06101a}.master-map i{color:var(--pf-cyan);font-style:normal}.portfolio-mistakes{display:grid;grid-template-columns:repeat(2,1fr);gap:.6rem;margin:1.5rem 0}.portfolio-mistakes span{padding:.75rem;border:1px solid rgba(255,145,110,.24);border-radius:11px;background:rgba(255,110,80,.055)}.portfolio-checklist{columns:2;gap:2rem}.portfolio-checklist li{break-inside:avoid;margin:.5rem 0}.portfolio-table-wrap{overflow:auto}.portfolio-table{width:100%;border-collapse:collapse}.portfolio-table th,.portfolio-table td{padding:.8rem;border:1px solid var(--pf-line);text-align:left}.portfolio-table th{color:var(--pf-lime);background:#0b1a28}.architecture-cheat{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem;margin:1.5rem 0}.architecture-cheat strong,.architecture-cheat span{padding:1rem;border:1px solid var(--pf-line);border-radius:13px;background:var(--pf-panel);text-align:center}.architecture-cheat strong{grid-column:1/-1;background:var(--pf-lime);color:#06101a}.final-model strong{background:var(--pf-lime);color:#06101a}
.portfolio-demo{position:relative;margin:2rem calc(50% - 48vw);border:1px solid #263f55;border-radius:28px;background:#050b14;color:#e7f1fa;overflow:hidden;box-shadow:0 35px 90px rgba(0,0,0,.38)}.portfolio-demo__progress{position:sticky;z-index:10;top:0;height:4px;background:#142738}.portfolio-demo__progress span,.portfolio-projects__rail span,.portfolio-story__rail span{display:block;width:100%;height:100%;background:linear-gradient(90deg,var(--pf-lime),var(--pf-cyan),var(--pf-violet));transform:scaleX(0);transform-origin:left}.portfolio-demo__nav{display:flex;justify-content:space-between;gap:1rem;padding:1rem clamp(1rem,3vw,2rem);border-bottom:1px solid #1e3448;font-size:.78rem}.portfolio-demo__nav b{color:var(--pf-lime)}.portfolio-demo__nav span{color:var(--pf-muted)}
.portfolio-demo__hero{min-height:620px;display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:2rem;padding:clamp(2rem,6vw,5rem)}.portfolio-kicker,.portfolio-demo__heading>span,.portfolio-demo__about>span,.portfolio-demo__cta>span,.portfolio-story__head>span{color:var(--pf-lime);font-size:.75rem;font-weight:900;letter-spacing:.12em}.portfolio-demo__hero h3{margin:1rem 0;font-size:clamp(2.8rem,7vw,6.5rem);line-height:.9}.portfolio-demo__hero h3 span{display:block;overflow:hidden}.portfolio-demo__hero h3 b{display:block}.portfolio-demo__hero p{max-width:38rem;color:var(--pf-muted)}.portfolio-demo__hero button,.portfolio-demo__cta a{display:inline-flex;margin-top:1rem;padding:.75rem 1.1rem;border:0;border-radius:10px;background:var(--pf-lime);color:#06101a;font-weight:900;text-decoration:none;cursor:pointer}.portfolio-orbit{position:relative;width:min(34vw,360px);aspect-ratio:1;margin:auto;display:grid;place-items:center;border:1px solid rgba(55,225,237,.35);border-radius:50%;background:radial-gradient(circle,rgba(169,117,255,.25),transparent 58%)}.portfolio-orbit:before,.portfolio-orbit:after{content:"";position:absolute;inset:12%;border:1px solid var(--pf-cyan);border-radius:50%;transform:rotate(48deg) scaleY(.38)}.portfolio-orbit:after{inset:25%;border-color:var(--pf-violet);transform:rotate(-35deg) scaleY(.5)}.portfolio-orbit i{width:42%;aspect-ratio:1;border-radius:28%;background:linear-gradient(145deg,var(--pf-cyan),var(--pf-violet));transform:rotate(25deg);box-shadow:0 0 55px rgba(55,225,237,.3)}.portfolio-orbit b{position:absolute;color:#06101a}
.portfolio-demo__about,.portfolio-demo__services,.portfolio-demo__process,.portfolio-demo__tech,.portfolio-demo__cta{padding:clamp(3rem,7vw,6rem)}.portfolio-demo__about{display:grid;grid-template-columns:.4fr 1fr 1fr;gap:2rem;border-block:1px solid #1d3245}.portfolio-demo__about h3,.portfolio-demo__heading h3,.portfolio-demo__cta h3{margin:.5rem 0;font-size:clamp(2rem,5vw,4rem)}.portfolio-demo__about p{color:var(--pf-muted)}.portfolio-demo__heading{margin-bottom:2rem}.portfolio-service-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.portfolio-service-grid article{min-height:220px;padding:1.2rem;display:flex;flex-direction:column;justify-content:flex-end;border:1px solid #29455e;border-radius:18px;background:linear-gradient(145deg,#11283b,#07111d)}.portfolio-service-grid article>span{margin-bottom:auto;color:var(--pf-lime);font-size:1.6rem;font-weight:900}.portfolio-service-grid h4{font-size:1.25rem}.portfolio-service-grid p{color:var(--pf-muted);font-size:.85rem}
.portfolio-projects{padding:clamp(3rem,6vw,5rem) 0;border-block:1px solid #1e3448;background:radial-gradient(circle at 85% 10%,rgba(169,117,255,.17),transparent 30%)}.portfolio-projects>.portfolio-demo__heading{padding-inline:clamp(2rem,6vw,5rem)}.portfolio-projects__rail{height:4px;background:#14283a}.portfolio-projects__stage{overflow:hidden}.portfolio-projects__track{display:flex;width:max-content;gap:1.2rem;padding:2rem clamp(2rem,6vw,5rem);will-change:transform}.portfolio-projects__track article{width:min(62vw,560px);min-height:430px;flex:0 0 auto;padding:1.5rem;display:flex;flex-direction:column;border:1px solid #31516d;border-radius:24px;background:#0c1b2a}.portfolio-projects__track article>span{color:var(--pf-lime);font-size:2rem;font-weight:900}.portfolio-projects__track small{margin-top:auto;color:var(--pf-muted)}.portfolio-projects__track h4{font-size:clamp(2rem,5vw,4rem)}.portfolio-projects__track article>div{height:52%;order:-1;margin-bottom:1rem;border-radius:16px;background:radial-gradient(circle at 65% 40%,var(--pf-cyan),transparent 12%),linear-gradient(145deg,#143b55,#171335)}.portfolio-projects__track article:nth-child(2)>div{background:radial-gradient(circle at 35% 40%,var(--pf-violet),transparent 14%),linear-gradient(145deg,#241844,#0c2940)}.portfolio-projects__track article:nth-child(3)>div{background:radial-gradient(circle at 60% 55%,var(--pf-lime),transparent 10%),linear-gradient(145deg,#183d38,#171329)}.portfolio-projects__track article:nth-child(4)>div{background:radial-gradient(circle at 45% 45%,#4e7cff,transparent 13%),linear-gradient(145deg,#112845,#2a1436)}
.portfolio-demo__process ol{list-style:none;margin:0;padding:0}.portfolio-demo__process li{display:grid;grid-template-columns:70px 1fr;gap:1rem;padding:1rem 0;border-top:1px solid #294156;font-size:clamp(1.1rem,3vw,2rem)}.portfolio-demo__process li b{color:var(--pf-lime)}.portfolio-demo__tech>div{display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem}.portfolio-demo__tech [data-tech-card]{padding:1rem;border:1px solid #294258;border-radius:13px;background:#0a1724;text-align:center}.portfolio-story{padding:clamp(3rem,6vw,5rem);border-block:1px solid #1e3448;background:radial-gradient(circle at 20% 10%,rgba(55,225,237,.12),transparent 30%),#07111d}.portfolio-story__head{display:flex;justify-content:space-between;gap:1rem}.portfolio-story__head strong{color:var(--pf-cyan)}.portfolio-story__rail{height:4px;margin:1rem 0;background:#15283a}.portfolio-story__stage{height:min(62vh,520px);overflow:hidden}.portfolio-story__track{display:grid;will-change:transform}.portfolio-story__track article{height:min(62vh,520px);display:flex;flex-direction:column;justify-content:center;padding:clamp(1.5rem,6vw,5rem);border-radius:22px;background:linear-gradient(145deg,#122b3f,#0b1323)}.portfolio-story__track article:nth-child(even){background:linear-gradient(145deg,#231942,#10182b)}.portfolio-story__track article>span{color:var(--pf-lime);font-size:clamp(3rem,8vw,7rem);font-weight:900}.portfolio-story__track h4{font-size:clamp(2.4rem,6vw,5rem)}.portfolio-story__track p{max-width:38rem;color:var(--pf-muted)}.portfolio-demo__cta{text-align:center}.portfolio-demo__cta h3{max-width:750px;margin-inline:auto}.portfolio-debug{display:flex;justify-content:space-between;gap:1rem;padding:1rem clamp(1rem,3vw,2rem);border-top:1px solid #233c52;background:#08131f;color:var(--pf-muted);font-size:.82rem}.portfolio-debug input{accent-color:var(--pf-lime)}.portfolio-demo.is-debug [data-portfolio-reveal],.portfolio-demo.is-debug [data-portfolio-services],.portfolio-demo.is-debug [data-horizontal-projects],.portfolio-demo.is-debug [data-portfolio-tech],.portfolio-demo.is-debug [data-portfolio-story]{outline:1px dashed var(--pf-lime);outline-offset:-5px}.portfolio-demo.is-debug [data-horizontal-projects]:before,.portfolio-demo.is-debug [data-portfolio-story]:before{content:"LOCAL TRIGGER";position:absolute;z-index:5;padding:.25rem .45rem;background:var(--pf-lime);color:#06101a;font-size:.65rem;font-weight:900}.portfolio-projects,.portfolio-story{position:relative}
.portfolio-faq details{margin:.8rem 0;border:1px solid var(--pf-line);border-radius:14px;background:var(--pf-panel)}.portfolio-faq summary{padding:1rem 1.15rem;cursor:pointer;font-weight:800}.portfolio-faq details p{padding:0 1.15rem 1rem;color:var(--pf-muted)}.portfolio-next{margin:1.5rem 0;padding:1.5rem;border:1px solid rgba(169,117,255,.35);border-radius:20px;background:linear-gradient(135deg,rgba(169,117,255,.12),rgba(55,225,237,.05))}.portfolio-next span,.portfolio-series-nav small{color:var(--pf-lime);font-size:.78rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.portfolio-next h3{margin:.45rem 0}.portfolio-series-nav{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:3rem 0}.portfolio-series-nav a,.portfolio-series-nav span{padding:1.2rem;border:1px solid var(--pf-line);border-radius:16px;color:var(--pf-text)}
.portfolio-ready [data-service-card],.portfolio-ready [data-tech-card]{will-change:transform,opacity}
@media(max-width:899px){.portfolio-toc ol{columns:1}.planning-grid,.architecture-grid,.feature-map,.check-grid{grid-template-columns:repeat(2,1fr)}.service-diagram{grid-template-columns:repeat(2,1fr)}.portfolio-demo{margin-inline:0}.portfolio-demo__hero{min-height:auto;grid-template-columns:1fr;padding-block:4rem}.portfolio-orbit{width:min(70vw,330px)}.portfolio-demo__about{grid-template-columns:1fr}.portfolio-service-grid,.portfolio-demo__tech>div{grid-template-columns:repeat(2,1fr)}.portfolio-projects__track{width:auto;display:grid;grid-template-columns:repeat(2,1fr)}.portfolio-projects__track article{width:auto;min-height:360px}.portfolio-projects__rail{display:none}.portfolio-story__stage{height:auto;overflow:visible}.portfolio-story__track{gap:1rem}.portfolio-story__track article{height:auto;min-height:330px}.portfolio-story__rail{display:none}.portfolio-checklist{columns:1}.architecture-cheat{grid-template-columns:repeat(2,1fr)}}
@media(max-width:575px){.planning-grid,.architecture-grid,.feature-map,.check-grid,.service-diagram,.project-compare,.portfolio-mistakes,.architecture-cheat,.portfolio-series-nav{grid-template-columns:1fr}.portfolio-service-grid,.portfolio-demo__tech>div,.portfolio-projects__track{grid-template-columns:1fr}.story-progress{grid-template-columns:1fr}.process-line{align-items:flex-start;flex-direction:column}.process-line:before{left:1.4rem;right:auto;top:1rem;bottom:1rem;border-top:0;border-left:2px solid var(--pf-cyan)}.process-line span{display:flex;align-items:center;gap:1rem;text-align:left}.process-line b{margin:0}.story-architecture,.final-model{justify-content:flex-start}.portfolio-demo__hero h3{font-size:2.6rem}.portfolio-debug{flex-direction:column}.portfolio-demo__nav span{display:none}}
@media(prefers-reduced-motion:reduce){.portfolio-article *{scroll-behavior:auto!important;animation:none!important;transition:none!important}.portfolio-ready [data-hero-line],.portfolio-ready [data-hero-item],.portfolio-ready [data-service-card],.portfolio-ready [data-tech-card],.portfolio-ready [data-portfolio-reveal]{opacity:1!important;visibility:visible!important;transform:none!important}.portfolio-projects__track,.portfolio-story__track{transform:none!important}.portfolio-orbit{transform:none!important}}
