/* Independent cyber-red identity. Original portfolio styles remain untouched. */
:root{--p-bg:#10090b;--p-panel:#1a1013;--p-raised:#2b151b;--p-ink:#fff7f8;--p-muted:#cbbdc1;--p-line:#563039;--p-accent:#ff5264;--p-accent-ink:#16080a;--p-header:rgba(16,9,11,.97);--red:#c81430;--red-bright:#ff5264}
[data-theme=light]{--p-bg:#fff;--p-panel:#fff7f8;--p-raised:#ffe5e9;--p-ink:#200b10;--p-muted:#66545a;--p-line:#ebcbd1;--p-accent:#c81430;--p-accent-ink:#fff;--p-header:rgba(255,255,255,.97)}
.site .p-brand{gap:8px;font-size:16px}.site .p-brand>b,.site .p-brand b{color:var(--p-accent)}
.site .p-logo{background:#c81430;color:#fff;border:0;border-radius:9px}
.p-header{border-bottom:2px solid #c81430}.site .p-kicker{color:var(--p-accent)}
.site .p-btn.p-primary,.site .p-service-cta,.site .p-card-link,.site .p-library-grid .p-card-link,.project-dialog .p-btn.p-primary{background:#c81430;color:#fff;border-color:#c81430;box-shadow:0 5px 18px #c814301a}
.site .p-btn.p-primary:hover,.site .p-service-cta:hover,.site .p-card-link:hover{background:#a90f27;color:#fff}
.site .p-filter[aria-pressed=true]{background:#c81430;color:white;border-color:#c81430}
.site .p-hero{background:radial-gradient(ellipse at 85% 25%,#b00f3033,transparent 55%),#10090b;--p-ink:#fff;--p-muted:#d6c5cb;--p-line:#63303b;--p-bg:#10090b;--p-accent:#ff6575;--p-raised:#31151d;color:#fff}
.site .p-hero h1>span:first-child{color:#fff}.site .p-hero .p-headline-focus{background:#c81430;color:#fff;border-color:#ff5264}
.site .p-hero .p-kicker{color:#ff8c98}.site .p-hero .p-btn:not(.p-primary){background:#ffffff0a;border-color:#9e6673;color:#fff}
.p-hero .p-portrait{object-fit:cover;width:100%;height:100%;max-width:520px;left:50%;transform:translateX(-50%);bottom:0;object-position:center;border-radius:24px;mask-image:linear-gradient(#000 78%,transparent);filter:none}
.p-hero .p-hero-art{height:490px}.p-hero .p-live-terminal{background:#1b1015;border:1px solid #a44052;color:#fff;bottom:-15px;z-index:2}.p-hero .p-terminal-line,.p-hero .p-terminal-bar span{color:#fff}.p-hero .p-terminal-cursor{background:#ff5264}
.p-hero .p-trust{border-color:#63303b}.p-hero .p-project-names img{background:#fff;border-radius:8px;padding:8px;height:60px;object-fit:contain;mask-image:none;filter:none}
.site .p-service{border-top:3px solid var(--p-accent)}.site .p-service-icon{color:var(--p-accent)}
.site .p-contact-card{border:1px solid var(--p-accent);background:radial-gradient(ellipse at top right,#c8143015,transparent 65%),var(--p-panel)}
.site .p-footer-links .p-threads-link{background:#c81430;color:#fff;border-color:#c81430}
.site .p-nav a:hover,.site .p-nav a[aria-current]{color:var(--p-accent)}
.site .p-footer .p-footer-content{grid-template-columns:minmax(0,1fr) auto;gap:24px}.site .p-footer-links{gap:7px}.site .p-footer-links a{padding:10px;font-size:12px!important}
.site .p-footer-brand p{max-width:44ch}.site .p-email{overflow-wrap:anywhere}
.preloader{--ink:#fff;--muted:#d7c6cc;--soft:#ff6575;background:#10090b!important;color:#fff}
.preloader h1{color:#fff}.preloader h1 em,.preloader .eyebrow{color:#ff6575}.preloader .preloader-content{border-color:#c81430}
.preloader .progress-fill{background:#c81430!important}
@media(max-width:1100px){.site .p-brand{font-size:13px}.site .p-nav{gap:12px}.site .p-nav a{font-size:12px!important}.p-hero .p-hero-art{height:410px}.site .p-footer .p-footer-content{grid-template-columns:1fr}.site .p-footer-links{justify-content:flex-start}}
@media(max-width:800px){.site .p-updates{background-color:#16090d!important;--p-accent:#ff6575}.site .p-updates:before{border-color:#ff526488;box-shadow:0 0 0 45px #c8143018,0 0 0 90px #c8143012}.site .p-updates .p-btn{background:#c81430;color:#fff;border-color:#ff6575}.p-hero .p-hero-art{height:360px}.site .p-nav a:last-child{background:#c81430;color:#fff}.site .p-nav a:last-child:hover{color:#fff}}
@media(max-width:560px){.site .p-brand{font-size:11px;letter-spacing:-.05em;gap:5px}.site .p-logo{width:27px;min-width:27px}.p-header-inner{gap:4px}.p-tools button{min-width:28px}.p-tools .p-theme{margin-left:1px}.p-hero .p-hero-art{height:310px;max-width:340px;margin:10px auto 22px}.p-hero .p-portrait{border-radius:16px}.p-hero .p-project-names img{height:40px;padding:5px}.site .p-footer .p-footer-content{display:flex}.site .p-footer-links{display:grid;grid-template-columns:repeat(2,1fr);width:100%}.site .p-footer-links a:last-child{grid-column:1/-1}.site .p-mobile-contact{border-color:var(--p-line)}.site .p-footer-brand .p-brand{font-size:16px}}
.preloader{--panel-2:#1b0e14;--line:#783040;--shadow:0 15px 50px #0005}
.preloader .boot,.preloader .terminal{background:#1b0e14;border-color:#783040;color:#fff}
.preloader .progress-label,.preloader .terminal *{color:#edd6dd}.preloader .progress-bar{background:#4b202c}
.preloader .portrait{filter:drop-shadow(0 0 25px #c8143040)}
/* Dark-only refinement: seamless portrait, luminous red accents, quiet surfaces. */
:root{color-scheme:dark;--p-bg:#09090c;--p-panel:#101014;--p-raised:#1c151b;--p-ink:#f6f5f7;--p-muted:#b9b5bf;--p-line:#30242e;--p-accent:#ff526b;--p-accent-ink:#fff;--p-header:rgba(9,9,12,.97)}
.site .p-hero{--p-bg:#09090c;--p-line:#57202f;background:radial-gradient(ellipse at 78% 38%,#e2173d22,transparent 48%),#09090c}
.site .p-hero:after{opacity:.22}.site .p-hero:before{opacity:.35}
.p-hero .p-hero-art{isolation:isolate}
.p-hero .p-hero-art:before{display:block;content:'';position:absolute;inset:10% 8% 6%;border:0;border-radius:50%;background:radial-gradient(ellipse,#e2173d40,transparent 68%);z-index:-1}
.p-hero .p-portrait{object-fit:contain;object-position:bottom;height:100%;width:100%;max-width:540px;border-radius:0;mask-image:linear-gradient(#000 70%,transparent 100%);filter:drop-shadow(12px 0 20px #c8143026)}
.p-hero .p-live-terminal{background:#100e14eF;border-color:#763040;box-shadow:0 10px 40px #0004}
.site .p-hero .p-project-names img{background:transparent;border-radius:0;padding:2px;filter:brightness(0) invert(1);opacity:.85;mask-image:none}
.site .p-project,.site .p-library-grid .p-project{background:transparent}
.site .p-preview,.site .p-library-grid .p-preview{background:transparent}
.site .p-preview img{mask-image:linear-gradient(#000 0%,#000 76%,transparent 100%);box-shadow:none}
.site .p-service{background:linear-gradient(145deg,#191118,#101014);border-color:#36232e;border-top-color:#e42b48}
.site .p-contact-card{background:radial-gradient(ellipse at top right,#c8143020,transparent 65%),#101014}
.site .p-hero .p-headline-focus{background:linear-gradient(110deg,#af1230,#de2144);box-shadow:0 10px 45px #d3183524}
.site .p-btn.p-primary,.site .p-card-link,.site .p-library-grid .p-card-link,.site .p-service-cta{background:linear-gradient(110deg,#ba1534,#d82041);border-color:#e83e5b;box-shadow:0 4px 20px #d3183514}
.site .p-about-visual{background:transparent}.site .p-about-visual img{mask-image:linear-gradient(#000 74%,transparent)}
.preloader{background:radial-gradient(ellipse at 65% 35%,#65132c44,transparent 60%),#08080c!important;--panel-2:#120e16cc;--line:#853147;--muted:#c9bbc4}
.preloader .boot{background:#120e16cc;border-color:#853147;box-shadow:0 20px 90px #0005;backdrop-filter:blur(5px)}
#preloaderCanvas{opacity:1!important}
.preloader:after{content:'';position:absolute;inset:0;z-index:1;pointer-events:none;background:repeating-linear-gradient(0deg,transparent 0 5px,#ff355509 6px);mask-image:linear-gradient(90deg,transparent,#000);animation:red-loader-scan 3s linear infinite}
@keyframes red-loader-scan{from{transform:translateY(-12px)}to{transform:translateY(12px)}}
.preloader.hidden:after{animation:none}
@media(prefers-reduced-motion:reduce){.preloader:after{animation:none}}
/* Original brand colours on one calm, light trust strip. */
.site .p-hero .p-trust{background:#f5f3f4;border:0;border-radius:16px;padding:22px 26px;color:#30292d;box-shadow:none}
.site .p-hero .p-trust-label{color:#595158}
.site .p-hero .p-project-names img{filter:none;opacity:1;background:transparent;border-radius:0;padding:2px;mask-image:none}
@media(max-width:560px){.site .p-hero .p-trust{padding:17px 16px;border-radius:12px}.site .p-hero .p-trust-label{margin-bottom:14px}}
/* Approachable dark palette; brand assets retain their original colours. */
:root{--p-bg:#121216;--p-panel:#19191e;--p-raised:#25232a;--p-line:#36323b;--p-muted:#c1bdc7;--p-header:rgba(18,18,22,.97)}
.site .p-hero{--p-bg:#121216;--p-line:#49333c;background:radial-gradient(ellipse at 78% 38%,#c8314914,transparent 50%),#121216}
.site .p-hero:before{opacity:.12}.site .p-hero:after{opacity:.08}
.site #services:before,.site #contact:before{opacity:.18}.site #contact:after{opacity:.1}
.p-hero .p-hero-art:before{background:radial-gradient(ellipse,#d2475a26,transparent 70%)}
.site .p-service{background:#19191e;border-color:#36323b;border-top-color:#bd344c}
.site .p-contact-card{background:radial-gradient(ellipse at top right,#c814300b,transparent 65%),#19191e;border-color:#67414c}
.site .p-hero .p-headline-focus{box-shadow:none;background:#b8213d}
.site .p-hero .p-trust{background:transparent;border-top:1px solid #36323b;border-radius:0;padding:25px 0 0;color:#c1bdc7}
.site .p-hero .p-trust-label{color:#c1bdc7}
.site .p-hero .p-project-names img{filter:drop-shadow(0 0 1px #fff9) drop-shadow(0 0 9px #ffffff38);opacity:1;background:transparent}
.site .p-hero .p-project-names img:first-child{filter:drop-shadow(0 0 1px #fff) drop-shadow(0 0 3px #ffffffbb) drop-shadow(0 0 12px #ffffff66)}
.site .p-hero .p-friendly-note{background:#1c1b21ee;border:1px solid #4b3b44;box-shadow:0 8px 24px #0002;padding:16px 20px;border-radius:14px;backdrop-filter:none}
.site .p-friendly-label{font-family:Poppins,sans-serif;font-size:12px;line-height:1.6;color:#e7a7b3;font-weight:500}
.site .p-friendly-note .p-terminal-line{padding:5px 0 0;font-family:Poppins,sans-serif;font-size:15px;line-height:1.6;white-space:normal;color:#f6f5f7}
.site .p-friendly-note #heroTerminalText{white-space:normal;text-wrap:pretty;flex:1;font-family:inherit}
.site .p-featured .p-case-summary{height:auto;min-height:0;max-height:none;-webkit-line-clamp:unset;display:block;line-height:1.75}
@media(max-width:560px){.site .p-hero .p-friendly-note{padding:12px 14px}.site .p-friendly-note .p-terminal-line{font-size:13px}.site .p-featured .p-case-summary{font-size:13px;height:auto;min-height:0}}
/* Compact, portrait-centred message card; each message stays on one line. */
.site .p-hero .p-friendly-note{left:50%;right:auto;transform:translateX(-50%);width:max-content;max-width:100%;min-width:0;padding:12px 18px;text-align:center}
.site .p-friendly-note .p-terminal-line{justify-content:center;font-size:14px;line-height:1.6;white-space:nowrap}
.site .p-friendly-note #heroTerminalText{flex:none;white-space:nowrap;text-wrap:nowrap}
@media(max-width:560px){.site .p-hero .p-friendly-note{padding:10px 12px}.site .p-friendly-note .p-terminal-line{font-size:clamp(11px,3vw,13px)}}
/* Typewriter keeps the full line's width reserved, so the card never jumps. */
.site .p-friendly-note #heroTerminalText{display:inline-grid;text-align:left;padding-right:8px}
.site .p-friendly-note #heroTerminalText::before{content:attr(data-full-text);visibility:hidden;grid-area:1/1}
.site .p-friendly-note .p-typed-text{grid-area:1/1;justify-self:start;white-space:nowrap}
.site .p-friendly-note .p-typed-text::after{content:'';display:inline-block;width:2px;height:1em;margin-left:4px;vertical-align:-.12em;background:#ff6575;animation:p-code-caret 1s steps(1,end) infinite}
@keyframes p-code-caret{50%{opacity:0}}
@media(prefers-reduced-motion:reduce){.site .p-friendly-note .p-typed-text::after{animation:none;display:none}}
