/* Composition branch: visual guide Sep 22, 2026. Scoped to this branch's opt-in JS classes. */
:root{--comp-green:#60d18a;--comp-purple:#962dff;--comp-black:#080908}
body.composition-home{background:#080908;color:#f6f7f4}
.composition-home .portfolio-hero{position:relative!important;isolation:isolate;min-height:clamp(650px,66vw,890px)!important;margin:0!important;border-radius:0!important;overflow:hidden;background:radial-gradient(ellipse at 72% 72%,#123924 0%,transparent 46%),radial-gradient(ellipse at 24% 6%,#281139 0%,transparent 55%),#0a0a0e!important}
.composition-home .portfolio-hero::after{content:none!important}.composition-home .portfolio-hero .hero-background{display:none!important}
.composition-home .site-header{top:20px!important;left:3vw!important;right:3vw!important}.composition-home .site-header .nav-logo img{width:70px!important}.composition-home .nav-links a{color:#fff}.composition-home .nav-resume-btn{background:var(--comp-purple)!important;border:0;color:white!important}
.composition-home .portfolio-hero .hero-inner{position:relative;display:block!important;width:100%;max-width:1480px;min-height:clamp(650px,66vw,890px)!important;padding:135px clamp(24px,5vw,80px) 85px!important;margin:auto;z-index:4;pointer-events:none}
.composition-home .portfolio-hero .hero-inner a,.composition-home .portfolio-hero .hero-inner button{pointer-events:auto}
.composition-home .portfolio-hero .hero-intro{position:relative!important;z-index:5;text-align:center;width:100%;pointer-events:none}
.composition-home .portfolio-hero .hero-kicker{font:700 clamp(25px,3.2vw,49px)/1.03 'Poppins',sans-serif!important;margin:0!important;color:#fff!important}
.composition-home .portfolio-hero #hero-title{display:flex;flex-direction:column;align-items:center;gap:0;margin:0!important;line-height:1!important;white-space:normal!important}
.composition-home .portfolio-hero #hero-title .picked{font-family:'Playfair Display',serif!important;font-style:italic;font-weight:600!important;min-height:1.2em!important;font-size:clamp(31px,4.4vw,77px)!important;color:#a545ed!important;letter-spacing:-.03em}
.composition-home .portfolio-hero #hero-title .accent-italic{font-family:'Khand','Anton',Impact,sans-serif!important;font-size:clamp(110px,18.1vw,360px)!important;line-height:.83!important;letter-spacing:-.095em!important;text-transform:uppercase;color:var(--comp-green)!important;margin:20px 0 0!important;white-space:nowrap;transform:scaleX(1.05);transform-origin:center}
.composition-home .portfolio-hero .hero-statement{position:absolute;top:56%;left:clamp(24px,5vw,80px);max-width:350px!important;margin:0!important;z-index:8;pointer-events:auto}
.composition-home .portfolio-hero .hero-statement-title{font-size:clamp(16px,1.5vw,23px)!important;line-height:1.35!important;font-weight:700}.composition-home .portfolio-hero .hero-statement>p:last-of-type{font-size:clamp(12px,1vw,15px)!important}
.composition-home .portfolio-hero .hero-actions{margin-top:24px!important;gap:10px!important}.composition-home .portfolio-hero .hero-actions .btn{min-height:42px!important;font-size:12px!important;padding:11px 20px!important}.composition-home .portfolio-hero .hero-actions .btn-primary{background:var(--comp-purple);color:#fff}.composition-home .portfolio-hero .hero-services{display:none!important}
.composition-home .portrait-stage{position:absolute;z-index:6;bottom:0;left:50%;width:min(48vw,690px);height:min(55vw,675px);transform:translateX(-50%);pointer-events:auto;touch-action:pan-y;overflow:hidden;mask-image:linear-gradient(to bottom,#000 75%,transparent 100%)}
.composition-home .portrait-stage canvas{width:100%;height:100%;display:block;opacity:0;transition:opacity .55s ease}.composition-home .portrait-stage.model-ready canvas{opacity:1}.composition-home .portrait-stage .model-loading{position:absolute;left:50%;top:58%;transform:translate(-50%,-50%);font:600 11px 'JetBrains Mono',monospace;color:#c6ecd1;letter-spacing:.08em;text-align:center}.composition-home .portrait-stage.model-ready .model-loading{display:none}
.composition-home .hero-3d-fallback{position:absolute;z-index:5;bottom:0;left:50%;width:min(41vw,550px);height:61%;transform:translateX(-50%);object-fit:contain;object-position:center bottom;filter:drop-shadow(0 15px 40px #0008)}.composition-home .portrait-stage.model-ready~.hero-3d-fallback{visibility:hidden}
.composition-home .toolkit-marquee{padding:12px 0!important;background:#0d100e!important;border-color:#242e27}.composition-home .toolkit-marquee-group li{min-height:66px!important;min-width:130px!important;background:transparent!important;padding:9px 17px!important;gap:10px!important}.composition-home .toolkit-marquee-group img{filter:none!important;opacity:1!important;width:30px!important;height:30px!important}.composition-home .toolkit-marquee-group span{font-size:11px!important}.composition-home .toolkit-marquee-track,.composition-home .toolkit-marquee-viewport:hover .toolkit-marquee-track,.composition-home .toolkit-marquee-viewport:focus .toolkit-marquee-track,.composition-home .toolkit-marquee-viewport:focus-within .toolkit-marquee-track{animation-play-state:running!important}
.composition-home .comp-about{display:grid;grid-template-columns:minmax(200px,.8fr) 1.2fr;align-items:center;gap:clamp(28px,6vw,112px);padding:clamp(70px,10vw,150px) max(24px,calc((100vw - 1120px)/2));background:#101110}.comp-about>img{display:block;width:100%;max-height:440px;object-fit:cover;border-radius:15px}.comp-about h2{font:700 clamp(46px,6vw,90px)/.96 'Poppins',sans-serif;letter-spacing:-.055em;margin:14px 0 24px}.comp-about h2 em{font-family:'Playfair Display',serif;color:var(--comp-green);font-weight:500}.comp-about p:not(.eyebrow){color:#c9c9c9;max-width:56ch}.comp-about .comp-links{display:flex;flex-wrap:wrap;gap:20px;margin-top:24px}.comp-about .comp-links a{font-size:12px;color:var(--comp-green);font-weight:700}
.composition-home .behind-designs{display:none}.composition-home .centered-websites,.composition-home .portfolio-sections .section{background:#0a0b0a}.composition-home .centered-websites>.container{max-width:1120px}.composition-home .centered-websites .interaction-heading{text-align:center}.composition-home .centered-websites .interaction-heading h2{font-size:clamp(32px,4vw,56px);max-width:16ch;margin:0 auto 45px}.composition-home .centered-stack{max-width:900px;margin:auto}.composition-home .stack-project{box-shadow:0 28px 70px #000a}.composition-home .concept-timeline{max-width:1010px;margin:115px auto!important;padding:45px 0 85px;border-top:1px solid #272727;display:grid;grid-template-columns:1fr 1.25fr;gap:48px;align-items:start}.composition-home .concept-timeline .interaction-heading{grid-column:1/-1;text-align:center}.composition-home .concept-timeline .interaction-heading h2{font-size:clamp(32px,4vw,55px)}.composition-home .concept-steps{grid-column:1;grid-row:2;display:grid;gap:10px}.composition-home .concept-step{position:relative;opacity:.48;transition:opacity .2s,transform .2s}.composition-home .concept-step.is-current{opacity:1;transform:translateX(6px)}.composition-home .concept-step.is-current .concept-dot{background:var(--comp-green);color:#070907;border-color:var(--comp-green)}.composition-home .concept-step h3{font-size:15px}.composition-home .concept-step p{font-size:12px}.composition-home .comp-process-visual{grid-column:2;grid-row:2;position:sticky;top:16vh;min-height:340px;border:1px solid #252a25;border-radius:16px;padding:22px;background:radial-gradient(circle at 50% 30%,#292038,#111513 65%);box-shadow:0 24px 75px #0009}.comp-process-toolbar{display:flex;justify-content:space-between;font:600 10px 'JetBrains Mono',monospace;color:#9bc8aa;letter-spacing:.04em;margin-bottom:14px}.comp-process-dots{color:#73d396}.comp-process-window{position:relative;min-height:250px;border:1px solid #394039;border-radius:8px;background:#101412;overflow:hidden;padding:18px}.comp-process-window::before{content:'';position:absolute;inset:0;background:linear-gradient(125deg,transparent,#ffffff06,transparent);pointer-events:none}.comp-process-art{height:200px;display:grid;align-content:start;gap:12px;transition:filter .25s}.comp-process-art .comp-nav{height:16px;border-bottom:1px solid #737c7250;width:100%}.comp-process-art .comp-header{height:55px;width:72%;background:repeating-linear-gradient(0deg,#c4e0ca 0 5px,transparent 5px 12px);opacity:.7}.comp-process-art .comp-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.comp-process-art .comp-cards span{height:73px;border:1px solid #5e8d6b;background:linear-gradient(145deg,#183626,#335a40)}.comp-process-window[data-step="0"] .comp-process-art{filter:grayscale(1);opacity:.5;transform:rotate(-2deg)}.comp-process-window[data-step="1"] .comp-process-art{filter:grayscale(.9);opacity:.75}.comp-process-window[data-step="2"] .comp-process-art{filter:grayscale(.55)}.comp-process-window[data-step="3"] .comp-process-art{filter:grayscale(.35)}.comp-process-window[data-step="4"] .comp-process-art{filter:grayscale(.1)}.comp-process-window[data-step="5"] .comp-process-art{filter:none}.comp-process-status{margin-top:18px;display:flex;justify-content:space-between;gap:12px;font-size:11px;color:#b8b8b8}.comp-process-status strong{color:var(--comp-green)}.comp-process-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:2;background:#090b09}.comp-process-video[hidden]{display:none}
.composition-home #social{background:var(--comp-green)!important;color:#0b130d!important}.composition-home #social h2,.composition-home #social h3,.composition-home #social p{color:#101610!important}.composition-home #multimedia{background:var(--comp-green)!important;color:#101610!important}.composition-home .folder-section .folder-front{background:#f5ac35!important;color:#141414}.composition-home .portfolio-sections .section{padding-block:clamp(60px,7vw,120px)}.composition-home #youtube{background:#191a17}
body.composition-experience{background:#090a09;color:#eee;font-family:'Poppins',sans-serif}.composition-experience main{background:#090a09}.composition-experience .experience-composition-hero{position:relative;min-height:540px;display:grid;place-items:end center;padding:125px 5vw 0;overflow:hidden;background:radial-gradient(ellipse at 47% 20%,#221330,#090909 66%)}.composition-experience .experience-composition-hero>img{width:min(670px,70vw);height:415px;object-fit:contain;object-position:center bottom;filter:grayscale(1);mask-image:linear-gradient(to bottom,#000 70%,transparent 100%)}.comp-float-icons{position:absolute;inset:20% 12% 12%;pointer-events:none}.comp-float-icons i{position:absolute;display:grid;place-items:center;width:72px;height:72px;font-size:42px;color:#64db9c;background:#143127d9;border-radius:20px;transform:rotate(-12deg)}.comp-float-icons i:nth-child(1){top:14%;left:5%}.comp-float-icons i:nth-child(2){top:45%;left:13%;color:#a8e4cc}.comp-float-icons i:nth-child(3){top:4%;right:14%;background:#126e56}.comp-float-icons i:nth-child(4){top:44%;right:8%;background:#172421;color:#95cdaf}.experience-composition-hero .comp-hero-caption{position:absolute;bottom:30px;left:7%;font:600 12px 'JetBrains Mono',monospace;letter-spacing:.15em;color:#90e7af}.comp-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;max-width:1100px;margin:-34px auto 100px;padding:0 24px;position:relative;z-index:3}.comp-stats div{padding:20px 16px;background:#141514;border:1px solid #262726;border-radius:13px}.comp-stats strong{display:block;font-size:20px;color:white}.comp-stats span{font-size:10px;color:#adb4ad}.comp-exp-timeline{max-width:1100px;margin:auto;padding:20px 24px 110px}.comp-eyebrow{font:700 11px 'JetBrains Mono',monospace;color:var(--comp-green);letter-spacing:.1em;text-transform:uppercase}.comp-exp-timeline h1,.comp-services h2,.comp-tools h2{font-size:clamp(31px,4vw,50px);letter-spacing:-.045em}.comp-exp-list{padding:0;margin:32px 0 0;list-style:none}.comp-exp-list li{display:grid;grid-template-columns:170px 1fr;gap:35px;padding:25px 0;border-bottom:1px solid #292b29}.comp-exp-list time{color:var(--comp-green);font:700 12px 'JetBrains Mono',monospace}.comp-exp-list h3{margin:0 0 8px;font-size:clamp(18px,2vw,24px);line-height:1.2}.comp-exp-list p{margin:0;color:#9fa59e;font-size:12px;line-height:1.7}.comp-green-panel{background:var(--comp-green);color:#102016;padding:clamp(60px,7vw,115px) max(24px,calc((100vw - 1100px)/2))}.comp-green-top{display:grid;grid-template-columns:1.2fr 1fr;gap:55px}.comp-green-top h2{font-size:clamp(42px,5vw,77px);line-height:.98;margin:0;font-weight:800;letter-spacing:-.05em}.comp-green-top h2 em{font:italic 500 1em 'Playfair Display',serif}.comp-green-top p{font-size:15px;max-width:38ch}.comp-skill-grid{display:grid;grid-template-columns:repeat(3,1fr);margin-top:75px;border-top:1px solid #225739}.comp-skill-grid article{min-height:135px;padding:26px 15px;border-right:1px solid #225739;border-bottom:1px solid #225739}.comp-skill-grid i{display:block;color:#681ab9;font-size:22px;margin-bottom:24px}.comp-skill-grid h3{font-size:12px;margin:0;line-height:1.4}.comp-services,.comp-tools,.comp-testimonials{padding:95px 24px;max-width:1100px;margin:auto}.comp-service-row{display:grid;grid-template-columns:40px minmax(0,1fr) minmax(0,.8fr) 25px;gap:18px;align-items:center;padding:20px 0;border-bottom:1px solid #292b29;color:white;text-decoration:none}.comp-service-row:hover h3,.comp-service-row:hover i{color:var(--comp-green)}.comp-service-row small,.comp-service-row i{color:var(--comp-green)}.comp-service-row h3{font-size:clamp(21px,2.6vw,35px);margin:0;letter-spacing:-.035em}.comp-service-row p{color:#a5aba5;font-size:12px;margin:0}.comp-tools{padding-top:80px}.comp-tool-grid{display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid #303130;border-left:1px solid #303130}.comp-tool-grid div{display:flex;flex-direction:column;justify-content:space-between;min-height:100px;padding:16px;border-right:1px solid #303130;border-bottom:1px solid #303130;color:#888}.comp-tool-grid img{height:28px;width:28px;object-fit:contain;filter:none!important}.comp-tool-grid span{font-size:11px;color:#dedede}.comp-testimonials h2{max-width:12ch}.comp-testimonials h2 em{color:var(--comp-green);font:italic 500 1em 'Playfair Display',serif}.comp-quotes{display:grid;grid-template-columns:1fr 1fr;gap:15px}.comp-quotes blockquote{margin:0;background:#151615;padding:32px;min-height:175px;font-size:13px;line-height:1.8}.comp-quotes blockquote:first-child{background:var(--comp-green);color:#101b12}.comp-quotes cite{display:block;margin-top:18px;font-size:10px;font-style:normal;opacity:.8}.composition-experience #asset-library{max-width:1100px;margin:auto;padding:40px 24px 80px}.composition-experience .site-header{z-index:30}.composition-experience .site-footer{margin-top:0}
@media(max-width:850px){.composition-home .portfolio-hero,.composition-home .portfolio-hero .hero-inner{min-height:730px!important}.composition-home .portfolio-hero .hero-inner{padding-top:145px!important}.composition-home .portfolio-hero #hero-title .accent-italic{font-size:clamp(91px,18vw,170px)!important}.composition-home .portrait-stage{width:80vw;height:420px;left:60%;bottom:15px}.composition-home .hero-3d-fallback{width:62vw;left:60%;height:55%}.composition-home .portfolio-hero .hero-statement{top:auto;bottom:55px;max-width:245px!important}.composition-home .comp-about{padding:85px 24px}.composition-home .concept-timeline{grid-template-columns:1fr;gap:20px}.composition-home .concept-timeline .interaction-heading,.composition-home .concept-steps,.composition-home .comp-process-visual{grid-column:1;grid-row:auto}.composition-home .comp-process-visual{position:relative;top:auto;min-height:300px}.comp-stats{grid-template-columns:repeat(2,1fr)}.comp-tool-grid{grid-template-columns:repeat(4,1fr)}}
@media(max-width:550px){.composition-home .portfolio-hero,.composition-home .portfolio-hero .hero-inner{min-height:760px!important}.composition-home .portfolio-hero .hero-kicker{font-size:27px!important}.composition-home .portfolio-hero #hero-title .picked{font-size:37px!important}.composition-home .portfolio-hero #hero-title .accent-italic{font-size:clamp(72px,18vw,100px)!important;margin-top:9px!important}.composition-home .portrait-stage{left:52%;bottom:185px;width:100%;height:335px}.composition-home .hero-3d-fallback{left:52%;bottom:190px;width:87%;height:340px}.composition-home .portfolio-hero .hero-statement{bottom:24px;left:24px;right:24px;max-width:none!important}.composition-home .portfolio-hero .hero-statement-title{font-size:15px!important}.composition-home .portfolio-hero .hero-statement>p:last-of-type{font-size:11px!important}.composition-home .portfolio-hero .hero-actions{flex-direction:row!important}.composition-home .portfolio-hero .hero-actions .btn{width:auto!important;flex:1;padding:9px!important}.composition-home .comp-about{grid-template-columns:1fr}.comp-about>img{max-height:320px}.comp-green-top{grid-template-columns:1fr}.comp-skill-grid{grid-template-columns:repeat(2,1fr);margin-top:35px}.comp-exp-list li{grid-template-columns:1fr;gap:8px}.comp-service-row{grid-template-columns:22px 1fr 20px;gap:10px}.comp-service-row p{grid-column:2}.comp-service-row i{grid-column:3;grid-row:1}.comp-tool-grid{grid-template-columns:repeat(3,1fr)}.comp-quotes{grid-template-columns:1fr}.experience-composition-hero{min-height:390px}.experience-composition-hero>img{width:95vw;height:320px}.comp-float-icons i{width:45px;height:45px;font-size:28px}.comp-stats{margin-bottom:55px}}
@media(prefers-reduced-motion:reduce){.composition-home .toolkit-marquee-track{animation-duration:90s!important}.composition-home .concept-step{transition:none}}
