.project-publish-page{--pp-bg:#0b0810;--pp-surface:#17101f;--pp-surface-2:#21172b;--pp-text:#f4eef7;--pp-muted:#afa5b8;--pp-accent:#9a6fbb;--pp-accent-2:#d088b6;--pp-border:rgba(255,255,255,.13);--pp-radius:18px;--pp-heading:Georgia,"Times New Roman",serif;--pp-body:"Trebuchet MS","Segoe UI",sans-serif;--pp-mono:"Cascadia Mono",Consolas,monospace;min-height:calc(100svh - 74px);overflow:hidden;background:var(--pp-bg);color:var(--pp-text);font:16px/1.7 var(--pp-body)}
.project-publish-page *{box-sizing:border-box}.project-publish-page img,.project-publish-page video,.project-publish-page svg{max-width:100%}.project-publish-page a{color:inherit}.pp-project-nav{position:relative;z-index:10;border-bottom:1px solid var(--pp-border);background:color-mix(in srgb,var(--pp-bg) 90%,transparent);backdrop-filter:blur(18px)}.pp-project-nav__inner{width:min(1440px,calc(100% - 40px));min-height:58px;margin:auto;display:flex;align-items:center;gap:22px}.pp-project-nav__brand{text-decoration:none;font:700 13px var(--pp-body);white-space:nowrap}.pp-project-nav__pages{display:flex;align-items:center;gap:5px;overflow:auto;scrollbar-width:none}.pp-project-nav__pages a{padding:8px 12px;border-radius:999px;color:var(--pp-muted);font-size:12px;text-decoration:none;white-space:nowrap}.pp-project-nav__pages a:hover,.pp-project-nav__pages a.active{background:var(--pp-surface-2);color:var(--pp-text)}.pp-project-nav--floating{position:sticky;top:75px;border:0;background:transparent}.pp-project-nav--floating .pp-project-nav__inner{margin-top:12px;padding:0 14px;border:1px solid var(--pp-border);border-radius:999px;background:color-mix(in srgb,var(--pp-bg) 84%,transparent);box-shadow:0 16px 45px rgba(0,0,0,.28)}.pp-project-nav--none{display:none}
.pp-section{position:relative;width:100%;padding-block:var(--pp-space-top,72px) var(--pp-space-bottom,72px);background-color:var(--pp-section-color,transparent);background-image:var(--pp-section-image,none);background-size:var(--pp-section-fit,cover);background-position:var(--pp-section-position,center);border-radius:var(--pp-section-radius,0);box-shadow:var(--pp-section-shadow,none)}.pp-section::before{content:"";position:absolute;inset:0;border-radius:inherit;background:rgba(0,0,0,var(--pp-overlay,0));pointer-events:none}.pp-section__inner{position:relative;z-index:1;width:min(var(--pp-section-width,1200px),calc(100% - clamp(28px,7vw,110px)));margin-inline:auto;text-align:var(--pp-align,left)}.pp-width-narrow{--pp-section-width:640px}.pp-width-reading{--pp-section-width:760px}.pp-width-standard{--pp-section-width:1000px}.pp-width-wide{--pp-section-width:1200px}.pp-width-extra-wide{--pp-section-width:1440px}.pp-width-full .pp-section__inner{width:100%;max-width:none}.pp-space-none{--pp-space-top:0px;--pp-space-bottom:0px}.pp-space-xs{--pp-space-top:12px;--pp-space-bottom:12px}.pp-space-sm{--pp-space-top:24px;--pp-space-bottom:24px}.pp-space-md{--pp-space-top:42px;--pp-space-bottom:42px}.pp-space-lg{--pp-space-top:72px;--pp-space-bottom:72px}.pp-space-xl{--pp-space-top:108px;--pp-space-bottom:108px}.pp-space-2xl{--pp-space-top:150px;--pp-space-bottom:150px}.pp-section[data-spacing-top="none"]{padding-top:0}.pp-section[data-spacing-top="xs"]{padding-top:12px}.pp-section[data-spacing-top="sm"]{padding-top:24px}.pp-section[data-spacing-top="md"]{padding-top:42px}.pp-section[data-spacing-top="lg"]{padding-top:72px}.pp-section[data-spacing-top="xl"]{padding-top:108px}.pp-section[data-spacing-top="2xl"]{padding-top:150px}.pp-section[data-spacing-bottom="none"]{padding-bottom:0}.pp-section[data-spacing-bottom="xs"]{padding-bottom:12px}.pp-section[data-spacing-bottom="sm"]{padding-bottom:24px}.pp-section[data-spacing-bottom="md"]{padding-bottom:42px}.pp-section[data-spacing-bottom="lg"]{padding-bottom:72px}.pp-section[data-spacing-bottom="xl"]{padding-bottom:108px}.pp-section[data-spacing-bottom="2xl"]{padding-bottom:150px}.pp-radius-sm{--pp-section-radius:8px}.pp-radius-md{--pp-section-radius:16px}.pp-radius-lg{--pp-section-radius:25px}.pp-radius-xl{--pp-section-radius:38px}.pp-shadow-subtle{--pp-section-shadow:0 15px 45px rgba(0,0,0,.15)}.pp-shadow-medium{--pp-section-shadow:0 24px 70px rgba(0,0,0,.25)}.pp-shadow-strong{--pp-section-shadow:0 30px 90px rgba(0,0,0,.42)}.pp-shadow-glow{--pp-section-shadow:0 0 60px color-mix(in srgb,var(--pp-accent) 25%,transparent)}
.pp-block{position:relative;margin:0 auto 26px;max-width:100%;text-align:var(--pp-block-align,left)}.pp-block:last-child{margin-bottom:0}.pp-block-width-narrow{max-width:640px}.pp-block-width-reading{max-width:760px}.pp-block-width-standard{max-width:1000px}.pp-block-width-wide{max-width:1200px}.pp-block-width-extra-wide{max-width:1440px}.pp-block-width-full{max-width:none}.pp-heading{margin:0;color:var(--pp-text);font-family:var(--pp-heading);line-height:1.03;letter-spacing:-.035em}.pp-heading--xs{font-size:18px}.pp-heading--sm{font-size:24px}.pp-heading--md{font-size:34px}.pp-heading--lg{font-size:clamp(38px,5vw,66px)}.pp-heading--xl{font-size:clamp(52px,7vw,94px)}.pp-heading--display{font-size:clamp(64px,10vw,150px);line-height:.87}.pp-heading--underline{padding-bottom:12px;border-bottom:2px solid var(--pp-accent)}.pp-heading--line{padding-left:18px;border-left:4px solid var(--pp-accent)}.pp-heading--eyebrow{text-transform:uppercase;font-family:var(--pp-mono);font-size:13px;letter-spacing:.14em}.pp-heading--gradient{background:linear-gradient(100deg,var(--pp-accent),var(--pp-accent-2));background-clip:text;color:transparent}.pp-heading--glow{text-shadow:0 0 35px color-mix(in srgb,var(--pp-accent) 55%,transparent)}.pp-rich{color:var(--pp-muted);font-size:clamp(15px,1.15vw,18px)}.pp-rich p{margin:0 0 1em}.pp-rich p:last-child{margin-bottom:0}.pp-rich a{text-decoration-color:var(--pp-accent);text-underline-offset:3px}.pp-rich code{padding:2px 6px;border-radius:5px;background:var(--pp-surface-2);font-family:var(--pp-mono);font-size:.88em}.pp-rich mark{background:color-mix(in srgb,var(--pp-accent) 32%,transparent);color:inherit}.pp-rich ul,.pp-rich ol{padding-left:1.5em}
.pp-hero{min-height:var(--pp-hero-height,560px);position:relative;display:flex;align-items:center;overflow:hidden;background:var(--pp-surface);isolation:isolate}.pp-hero--viewport{min-height:calc(100svh - 74px)}.pp-hero__media,.pp-hero__overlay{position:absolute;inset:0}.pp-hero__media img,.pp-hero__media video{width:100%;height:100%;display:block;object-fit:cover}.pp-hero__overlay{background:var(--pp-hero-overlay,#09060d);opacity:var(--pp-hero-opacity,.58)}.pp-hero__content{position:relative;z-index:1;width:min(1200px,calc(100% - clamp(36px,9vw,150px)));margin:auto;padding:60px 0}.pp-hero__eyebrow{margin-bottom:18px;color:var(--pp-accent-2);font:700 10px var(--pp-mono);letter-spacing:.17em;text-transform:uppercase}.pp-hero__title{max-width:12ch;margin:0;font:400 clamp(54px,8vw,120px)/.88 var(--pp-heading);letter-spacing:-.06em}.pp-hero__subtitle{max-width:720px;margin:28px 0 0;color:color-mix(in srgb,var(--pp-text) 72%,transparent);font-size:clamp(16px,2vw,23px);line-height:1.55}.pp-hero--split .pp-hero__content{width:min(1400px,calc(100% - 70px));padding-right:45%}.pp-hero--minimal{min-height:420px;background:transparent}.pp-hero--minimal .pp-hero__title{max-width:15ch}.pp-hero--technical .pp-hero__title{font-family:var(--pp-mono);font-size:clamp(42px,6vw,82px);letter-spacing:-.045em}.pp-actions{margin-top:30px;display:flex;gap:10px;flex-wrap:wrap;justify-content:var(--pp-actions-align,flex-start)}.pp-button{min-height:44px;padding:0 18px;display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:999px;font-weight:800;font-size:13px;text-decoration:none}.pp-button--primary{background:var(--pp-accent);color:#fff}.pp-button--secondary{background:var(--pp-accent-2);color:#110a16}.pp-button--outline{border-color:var(--pp-border);background:transparent}.pp-button--ghost{background:var(--pp-surface-2)}.pp-button--text{padding-inline:4px}.pp-button--sm{min-height:36px;padding-inline:14px;font-size:11px}.pp-button--lg{min-height:54px;padding-inline:25px;font-size:15px}
.pp-image{margin:0}.pp-image img{display:block;margin:auto}.pp-image--container img,.pp-image--section img{width:100%}.pp-image--viewport{width:100vw;max-width:none;margin-left:calc(50% - 50vw)}.pp-image--viewport img{width:100%}.pp-image--original img{width:auto}.pp-fit-cover img{object-fit:cover}.pp-fit-contain img{object-fit:contain}.pp-media-radius-sm img{border-radius:7px}.pp-media-radius-md img{border-radius:15px}.pp-media-radius-lg img{border-radius:25px}.pp-media-radius-xl img{border-radius:38px}.pp-media-shadow-subtle img{box-shadow:0 15px 40px rgba(0,0,0,.18)}.pp-media-shadow-medium img{box-shadow:0 22px 65px rgba(0,0,0,.28)}.pp-media-shadow-strong img{box-shadow:0 30px 90px rgba(0,0,0,.46)}.pp-media-shadow-glow img{box-shadow:0 0 55px color-mix(in srgb,var(--pp-accent) 28%,transparent)}.pp-caption{margin:11px 0 0;color:var(--pp-muted);font-size:12px;text-align:center}
.pp-gallery{display:grid;grid-template-columns:repeat(var(--pp-gallery-cols,3),minmax(0,1fr));gap:var(--pp-gallery-gap,14px)}.pp-gallery__item{position:relative;min-width:0;overflow:hidden;border:0;padding:0;background:var(--pp-surface);color:inherit;cursor:pointer}.pp-gallery__item img{width:100%;height:100%;min-height:220px;display:block;object-fit:cover;transition:transform .25s ease}.pp-gallery__item:hover img{transform:scale(1.025)}.pp-gallery__caption{position:absolute;inset:auto 0 0;padding:16px;background:linear-gradient(transparent,rgba(0,0,0,.78));font-size:12px}.pp-gallery--masonry{display:block;columns:var(--pp-gallery-cols,3);column-gap:var(--pp-gallery-gap,14px)}.pp-gallery--masonry .pp-gallery__item{width:100%;margin-bottom:var(--pp-gallery-gap,14px);break-inside:avoid}.pp-gallery--scroll{display:flex;overflow:auto;scroll-snap-type:x mandatory}.pp-gallery--scroll .pp-gallery__item{flex:0 0 min(78vw,650px);scroll-snap-align:start}.pp-gallery--featured .pp-gallery__item:first-child{grid-column:span 2;grid-row:span 2}.pp-gallery--featured .pp-gallery__item:first-child img{min-height:470px}
.pp-video{position:relative;overflow:hidden;border-radius:var(--pp-radius);background:#000;aspect-ratio:var(--pp-video-aspect,16/9)}.pp-video iframe,.pp-video video{width:100%;height:100%;display:block;border:0}.pp-code{overflow:hidden;border:1px solid var(--pp-border);border-radius:13px;background:#09070c;text-align:left}.pp-code__head{min-height:43px;padding:0 14px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--pp-border);color:var(--pp-muted);font:11px var(--pp-mono)}.pp-code__copy{border:0;background:none;color:inherit;cursor:pointer}.pp-code pre{max-height:720px;margin:0;padding:18px;overflow:auto}.pp-code code{white-space:pre;font:13px/1.65 var(--pp-mono);color:#ddd3e5}.pp-callout{padding:20px 22px;display:grid;grid-template-columns:auto 1fr;gap:14px;border:1px solid var(--pp-border);border-left:4px solid var(--pp-accent);border-radius:12px;background:var(--pp-surface)}.pp-callout--warning{border-left-color:#e3b34f}.pp-callout--success{border-left-color:#60c58d}.pp-callout--error{border-left-color:#df667a}.pp-callout h3{margin:0 0 5px;font:700 17px var(--pp-body)}.pp-callout p{margin:0;color:var(--pp-muted)}.pp-quote{margin:0;padding:clamp(25px,5vw,55px);border-left:4px solid var(--pp-accent);background:var(--pp-surface);font:italic clamp(23px,3vw,38px)/1.35 var(--pp-heading)}.pp-quote footer{margin-top:18px;color:var(--pp-muted);font:12px var(--pp-body)}
.pp-card-grid,.pp-stat-grid,.pp-tech-grid{display:grid;grid-template-columns:repeat(var(--pp-cols,3),minmax(0,1fr));gap:14px}.pp-card{padding:24px;border:1px solid var(--pp-border);border-radius:var(--pp-radius);background:var(--pp-surface)}.pp-card__icon{width:46px;height:46px;margin-bottom:20px;object-fit:contain}.pp-card h3{margin:0 0 10px;font:600 24px var(--pp-heading)}.pp-card p{margin:0;color:var(--pp-muted)}.pp-card a{display:inline-block;margin-top:17px;color:var(--pp-accent-2);font-size:12px}.pp-specs{width:100%;border-collapse:collapse;display:table}.pp-specs th,.pp-specs td{padding:13px 15px;border-bottom:1px solid var(--pp-border);text-align:left}.pp-specs th{width:35%;color:var(--pp-muted);font:700 11px var(--pp-mono);letter-spacing:.06em;text-transform:uppercase}.pp-specs--striped tr:nth-child(even){background:color-mix(in srgb,var(--pp-surface) 72%,transparent)}.pp-tech-pills{display:flex;flex-wrap:wrap;gap:8px}.pp-tech-pill{padding:9px 13px;display:inline-flex;align-items:center;gap:8px;border:1px solid var(--pp-border);border-radius:999px;background:var(--pp-surface);text-decoration:none;font-size:12px}.pp-tech-pill img{width:20px;height:20px;object-fit:contain}.pp-timeline{position:relative;display:grid;gap:0}.pp-timeline::before{content:"";position:absolute;left:9px;top:8px;bottom:8px;width:1px;background:var(--pp-border)}.pp-timeline__item{position:relative;padding:0 0 28px 36px}.pp-timeline__item::before{content:"";position:absolute;left:3px;top:7px;width:13px;height:13px;border:3px solid var(--pp-bg);border-radius:50%;background:var(--pp-accent)}.pp-timeline__date{color:var(--pp-accent-2);font:10px var(--pp-mono)}.pp-timeline h3{margin:5px 0;font:600 21px var(--pp-heading)}.pp-timeline p{margin:0;color:var(--pp-muted)}.pp-stat{padding:22px;border:1px solid var(--pp-border);border-radius:var(--pp-radius);background:var(--pp-surface);text-align:center}.pp-stat strong{display:block;font:500 clamp(32px,4vw,58px)/1 var(--pp-heading)}.pp-stat span{display:block;margin-top:10px;color:var(--pp-muted);font-size:12px}.pp-download{padding:clamp(25px,4vw,45px);display:flex;align-items:center;justify-content:space-between;gap:25px;border:1px solid var(--pp-border);border-radius:var(--pp-radius);background:var(--pp-surface)}.pp-download h3{margin:0;font:500 31px var(--pp-heading)}.pp-download p{max-width:650px;margin:8px 0;color:var(--pp-muted)}.pp-download__meta{font:10px var(--pp-mono);color:var(--pp-accent-2)}.pp-diagram{position:relative;overflow:hidden;border:1px solid var(--pp-border);border-radius:var(--pp-radius);background:var(--pp-surface)}.pp-diagram img{width:100%;max-height:82vh;display:block;object-fit:contain;cursor:zoom-in}.pp-diagram__tools{position:absolute;right:12px;top:12px;display:flex;gap:6px}.pp-diagram__tools a,.pp-diagram__tools button{width:40px;height:40px;display:grid;place-items:center;border:1px solid var(--pp-border);border-radius:50%;background:rgba(8,6,11,.8);color:#fff;text-decoration:none;cursor:pointer}.pp-compare{display:grid;grid-template-columns:1fr 1fr;gap:12px}.pp-compare figure{margin:0}.pp-compare img{width:100%;height:100%;min-height:300px;object-fit:cover}.pp-columns{display:grid;grid-template-columns:var(--pp-columns,1fr 1fr);gap:clamp(20px,4vw,60px);align-items:start}.pp-columns--60-40{--pp-columns:3fr 2fr}.pp-columns--40-60{--pp-columns:2fr 3fr}.pp-columns--70-30{--pp-columns:7fr 3fr}.pp-columns--30-70{--pp-columns:3fr 7fr}.pp-layout-grid{display:grid;grid-template-columns:repeat(var(--pp-cols,3),minmax(0,1fr));gap:var(--pp-grid-gap,24px)}.pp-divider{height:1px;border:0;background:var(--pp-border)}.pp-divider--dashed{height:0;border-top:1px dashed var(--pp-border);background:none}.pp-divider--gradient{background:linear-gradient(90deg,transparent,var(--pp-accent),transparent)}.pp-divider--fade{background:linear-gradient(90deg,transparent,var(--pp-border),transparent)}.pp-divider--accent{height:3px;background:var(--pp-accent)}.pp-spacer--none{height:0}.pp-spacer--xs{height:12px}.pp-spacer--sm{height:24px}.pp-spacer--md{height:42px}.pp-spacer--lg{height:72px}.pp-spacer--xl{height:108px}.pp-spacer--2xl{height:150px}
.pp-hidden-desktop{display:none!important}.pp-animate-fade,.pp-animate-fade-up,.pp-animate-slide,.pp-animate-scale,.pp-animate-blur{animation:ppEnter .5s both}.pp-animate-fade-up{animation-name:ppFadeUp}.pp-animate-scale{animation-name:ppScale}.pp-animate-blur{animation-name:ppBlur}@keyframes ppEnter{from{opacity:0}to{opacity:1}}@keyframes ppFadeUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes ppScale{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:none}}@keyframes ppBlur{from{opacity:0;filter:blur(8px)}to{opacity:1;filter:none}}
.pp-lightbox{position:fixed;z-index:9999;inset:0;padding:30px;display:none;place-items:center;background:rgba(3,2,5,.94)}.pp-lightbox.open{display:grid}.pp-lightbox img{max-width:94vw;max-height:90vh;object-fit:contain}.pp-lightbox button{position:absolute;right:20px;top:20px;width:46px;height:46px;border:1px solid rgba(255,255,255,.2);border-radius:50%;background:rgba(0,0,0,.45);color:#fff;font-size:25px;cursor:pointer}
@media(max-width:900px){.pp-hidden-desktop{display:initial!important}.pp-hidden-tablet{display:none!important}.pp-card-grid,.pp-stat-grid,.pp-tech-grid{grid-template-columns:repeat(min(2,var(--pp-cols,2)),minmax(0,1fr))}.pp-gallery{grid-template-columns:repeat(min(2,var(--pp-gallery-cols,2)),minmax(0,1fr))}.pp-columns{grid-template-columns:1fr}.pp-columns--reverse .pp-columns__right{order:-1}.pp-download{align-items:flex-start;flex-direction:column}.pp-project-nav__brand{display:none}}
@media(max-width:600px){.pp-hidden-tablet{display:initial!important}.pp-hidden-mobile{display:none!important}.pp-section__inner{width:calc(100% - 28px)}.pp-card-grid,.pp-stat-grid,.pp-tech-grid,.pp-gallery,.pp-layout-grid{grid-template-columns:1fr}.pp-gallery--featured .pp-gallery__item:first-child{grid-column:auto;grid-row:auto}.pp-gallery--featured .pp-gallery__item:first-child img{min-height:260px}.pp-hero__content{width:calc(100% - 38px);padding-block:45px}.pp-hero__title{font-size:clamp(45px,15vw,72px)}.pp-hero--split .pp-hero__content{width:calc(100% - 38px);padding-right:0}.pp-actions--stack-mobile{flex-direction:column;align-items:stretch}.pp-button{width:100%}.pp-compare{grid-template-columns:1fr}.pp-project-nav__inner{width:calc(100% - 24px)}}
@media(prefers-reduced-motion:reduce){.project-publish-page *{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
