:root{--accent:#ef390f;--accent-text:#d43210;--accent-light:#ff6842;--button-ink:#fff9ee;--red:var(--accent-text)}
:root[data-palette="cyan"]{--accent:#087f98;--accent-text:#00758d;--accent-light:#51d7e5;--button-ink:#fff9ee}
:root[data-palette="yellow"]{--accent:#efd047;--accent-text:#916200;--accent-light:#efd047;--button-ink:#191916}
:root[data-palette="violet"]{--accent:#7851ca;--accent-text:#7044bc;--accent-light:#be9af6;--button-ink:#fff9ee}
:root[data-palette="green"]{--accent:#446c4d;--accent-text:#446c4d;--accent-light:#b3cf97;--button-ink:#fff9ee}
.btn{background:var(--accent);border-color:var(--accent);color:var(--button-ink)}
.hero-title .second{color:var(--accent-text)}
.services,.contact,.strip{--red:var(--accent-light)}
.live:before{background:var(--accent)}
.dock a.active{background:var(--accent);color:var(--button-ink)}
.toast{box-shadow:5px 5px 0 var(--accent)}
/* The podcast keeps its own complete palette, including all inherited tokens. */
.podcast{--accent:#ef390f;--accent-text:#ef390f;--accent-light:#ef390f;--button-ink:#f3eddc;--red:#ef390f;--paper:#f3eddc;--ink:#191916;background:#ef390f}
.podcast .btn:hover{background:#191916;border-color:#191916;color:#f3eddc}
.dock{gap:2px;isolation:isolate;bottom:max(18px,env(safe-area-inset-bottom));max-width:calc(100vw - 20px)}
.palette-control{position:relative;border-left:1px solid #ffffff26;padding-left:7px;margin-left:3px;display:flex;align-items:center}
.palette-toggle{width:40px;height:40px;border-radius:50%;padding:0;border:0;background:transparent;display:grid;place-items:center;position:relative}
.palette-wheel{display:block;width:27px;height:27px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 1px #ffffff40;transition:transform .4s,background-color .2s}
.palette-toggle:hover .palette-wheel,.palette-toggle[aria-expanded="true"] .palette-wheel{transform:rotate(65deg)}
.palette-panel{position:absolute;bottom:63px;right:-6px;width:290px;padding:22px;background:#22221f;color:#f3eddc;border:1px solid #5b5b50;border-radius:18px;box-shadow:0 15px 50px #0004;transform-origin:bottom right;animation:palette-in .2s ease-out}
.palette-panel[hidden]{display:none}
.palette-panel:after{content:'';position:absolute;right:19px;bottom:-6px;width:10px;height:10px;transform:rotate(45deg);background:#22221f;border-right:1px solid #5b5b50;border-bottom:1px solid #5b5b50}
.palette-panel .eyebrow{font-size:9px;letter-spacing:1.5px;color:#c3c1b3}
.palette-heading{font:italic 32px/1.2 'Instrument Serif',serif;margin:7px 0 18px}
.palette-options{display:flex;justify-content:space-between;gap:10px}
.palette-option{width:40px;height:40px;border-radius:50%;background:var(--swatch);border:5px solid #22221f;outline:1px solid #ffffff30;position:relative;padding:0;transition:transform .2s,outline-color .2s;color:var(--swatch-ink,#fff9ee);font-size:15px}
.palette-option:hover{transform:translateY(-3px)}
.palette-option[aria-pressed="true"]{outline:2px solid #f3eddc}
.palette-option[aria-pressed="true"]:after{content:'✓'}
.palette-selected{font-size:11px;margin:16px 0 0}
.palette-note{font-size:10px;line-height:1.6;color:#aaa99c;margin:9px 0 0;border-top:1px solid #ffffff1f;padding-top:12px}
.dimension-card{margin:32px 0 0;aspect-ratio:4/4.5;max-width:330px;background:#191916;color:#f3eddc;position:relative;overflow:hidden;border:1px solid #393932}
.dimension-card:before,.dimension-card:after{content:'+';position:absolute;color:#99998d;font-size:19px;z-index:1;pointer-events:none;top:46%;left:13px}
.dimension-card:after{left:auto;right:13px}
.dimension-meta{position:absolute;top:18px;left:19px;right:19px;display:flex;justify-content:space-between;font-size:8px;letter-spacing:1px;z-index:1;pointer-events:none}
.dimension-stage{position:absolute;inset:20px 0 44px;touch-action:pan-y}
.dimension-stage canvas{display:block;width:100%;height:100%}
.dimension-fallback{position:absolute;inset:18%;border:1px solid var(--accent-light);border-radius:50%;transform:rotate(-30deg);box-shadow:8px 8px 0 -1px #191916,8px 8px 0 0 var(--accent-light),16px 16px 0 -1px #191916,16px 16px 0 0 var(--accent-light);pointer-events:none}
.dimension-card[data-rendered="true"] .dimension-fallback{display:none}
.dimension-caption{position:absolute;bottom:18px;left:19px;right:19px;display:flex;justify-content:space-between;align-items:end;font-size:8px;letter-spacing:1px;pointer-events:none}
.dimension-caption em{font-size:26px;letter-spacing:-.5px;color:var(--accent-light)}
.hero-title em{transition:transform .5s ease-out}
.hero:hover .hero-title em{transform:translateX(-6px)}
@keyframes palette-in{from{opacity:0;transform:translateY(7px) scale(.97)}to{opacity:1;transform:none}}
@media(max-width:800px){.dock{gap:0;padding:6px}.dock a{padding:12px 9px;font-size:9px}.palette-control{padding-left:4px;margin-left:1px}.palette-toggle{width:34px;height:36px}.palette-wheel{width:25px;height:25px}.palette-wheel:after{inset:13px}.palette-panel{width:275px;right:-5px;bottom:59px}.intro-aside{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:center}.dimension-card{margin:0;width:100%;max-width:260px}.dimension-caption em{font-size:22px}.dimension-meta{font-size:6px;left:12px;right:12px}.dimension-caption{left:12px;right:12px}.dimension-caption>span{display:none}}
@media(max-width:370px){.dock a{padding:12px 7px}.dock a[href="#podcast"]{display:none}}
@media(prefers-reduced-motion:reduce){.palette-panel{animation:none}.hero:hover .hero-title em{transform:none}}
.icon{display:inline-block;width:1em;height:1em;vertical-align:-.12em;flex-shrink:0}.arrow .icon{width:20px;height:20px}.dock a{display:flex;align-items:center;justify-content:center;gap:8px}.dock a>.icon{width:18px;height:18px}.socials button{display:inline-flex;align-items:center;gap:6px}.socials button>.icon:first-child{width:15px;height:15px}.toast button .icon{width:20px;height:20px}.service>a .icon{width:16px;height:16px}
@media(max-width:800px){.dock a{padding:11px 12px}.dock-label{display:none}.dock a.active .dock-label{display:inline}.dock a>.icon{width:19px;height:19px}}
@media(max-width:370px){.dock a[href="#podcast"]{display:flex}.dock a{padding:10px}}
.icon{stroke-width:1.75;overflow:visible;pointer-events:none}.icon-whatsapp{stroke:none}.dock a>.icon{width:20px;height:20px}.dock a{min-height:44px}.service>a{width:44px;height:44px}.service>a .icon{width:20px;height:20px}.socials button>.icon:first-child{width:18px;height:18px}.socials button{min-height:44px}.palette-toggle{width:44px;height:44px;min-width:44px;touch-action:manipulation}.palette-wheel{pointer-events:none}.palette-panel{width:316px;padding:20px}.palette-heading{padding-right:25px}.palette-options{gap:8px}.palette-option{width:48px;height:48px;min-width:44px;min-height:44px;flex-shrink:0;touch-action:manipulation;display:grid;place-items:center}.palette-option[aria-pressed="true"]:after{content:none}.palette-option .icon{display:none;width:18px;height:18px}.palette-option[aria-pressed="true"] .icon{display:block}.palette-close{position:absolute;right:8px;top:26px;display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:50%;background:transparent;color:#f3eddc;touch-action:manipulation}.palette-close .icon{width:20px;height:20px}.palette-toggle:focus-visible,.palette-option:focus-visible,.palette-close:focus-visible{outline:2px solid #f3eddc;outline-offset:3px}
@media(max-width:800px){.dock{width:max-content;max-width:calc(100vw - 20px);padding:6px;bottom:calc(12px + env(safe-area-inset-bottom,0px))}.dock a{min-width:44px;min-height:44px;padding:10px}.dock a>.icon{width:21px;height:21px}.palette-control{position:static;padding-left:4px}.palette-toggle{width:44px;height:44px}.palette-panel{left:50%;right:auto;bottom:calc(100% + 12px);transform:translateX(-50%);width:min(316px,calc(100vw - 24px));max-height:calc(100dvh - 110px - env(safe-area-inset-bottom,0px));overflow-y:auto;overscroll-behavior:contain;padding:18px;animation:none}.palette-panel:after{display:none}.palette-options{gap:6px}.palette-option{width:44px;height:44px}.palette-option:hover{transform:none}}
@media(max-width:400px){.dock a.active .dock-label{display:none}}
@media(max-width:600px){.section-top{display:block}.section-top .index{margin-bottom:24px}.projects{grid-template-columns:minmax(0,1fr)}.project,.contact-grid>*,.intro-aside>*{min-width:0}.project-foot{gap:12px;font-size:11px}.podcast h2{font-size:clamp(64px,20vw,100px)}.contact h2{font-size:clamp(38px,11vw,55px)}.service{grid-template-columns:25px minmax(0,1fr) 44px}.contact-grid{grid-template-columns:minmax(0,1fr)}.contact form{grid-template-columns:repeat(2,minmax(0,1fr))}.contact h2 em{overflow-wrap:anywhere}.intro-aside{grid-template-columns:repeat(2,minmax(0,1fr))}}
