/* romanspitzer.com — replica of the original Wix design (Work Sans, rose on deep teal) */
:root{--bg:#031A22;--panel:#303B41;--charcoal:#292526;--brown:#432D22;--mauve:#72676D;--pink:#DCB6B5;--salmon:#D8A288;--rose:#E2C3C4;--text:#CFC6CA;--nav:#D8C3C6;--line:#8C7C80;--footer1:#1C2125;--footer2:#323136;--ink:#190604;
--font:'Work Sans',Arial,sans-serif;--hw:200;--bw:300}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--text);font-family:var(--font);font-weight:var(--bw);font-size:17px;line-height:1.7;overflow-x:hidden}
a{color:inherit}img{display:block;max-width:100%}
:focus-visible{outline:2px solid var(--salmon);outline-offset:3px}
h1,h2,h3{font-weight:var(--hw);color:var(--rose);text-transform:uppercase;line-height:1.15}

/* nav */
.nav{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;padding:0 4.5vw 0 5.4vw;min-height:90px;background:var(--bg)}
.nav.home{background:var(--brown)}.nav.mauve{background:var(--mauve)}
.nav ul{display:flex;gap:27px;list-style:none;flex-wrap:wrap}
.nav ul a{font-size:17px;font-weight:200;color:var(--nav);text-decoration:none;padding:6px 0}
.nav ul a:hover,.nav ul a.on{color:#fff}
.social{display:flex;gap:23px;align-items:center}
.social a{display:block;width:22px;height:22px;color:#fff}.social svg{width:100%;height:100%;fill:currentColor}
.social a:hover{opacity:.7}

/* home hero */
.hero{position:relative}
.hero img{width:100%;height:auto;display:block}
.hero .nm{position:absolute;left:6.6%;top:74%;font-size:4.2vw;letter-spacing:.32em;font-weight:200;color:#EBCFCF;text-transform:uppercase;white-space:nowrap;line-height:1.1;text-shadow:0 0 18px rgba(0,0,0,.25)}
.hero .st{position:absolute;left:15.6%;top:81.8%;font-size:1.7vw;letter-spacing:.27em;font-weight:300;color:#E4D4D8;text-transform:uppercase;white-space:nowrap;text-shadow:0 0 12px rgba(0,0,0,.3)}

/* upcoming */
.upc{background:var(--charcoal);padding:90px 5vw 70px}
.upc h2{font-size:clamp(32px,3.7vw,48px);max-width:600px;margin:0 auto 70px;text-align:center;line-height:1.9}
.upc h2 span{display:block}.upc h2 span:first-child{transform:translateX(95px)}
.evl{max-width:822px;margin:0 auto;list-style:none;border-top:1px solid var(--line)}
.evl li{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:42px 4px;border-bottom:1px solid var(--line)}
.evl .t{font-size:24px;font-weight:200;color:var(--rose);line-height:1.3}.evl .d{font-size:15px;color:var(--text)}
.rsvp{display:inline-block;border:1px solid var(--rose);color:var(--rose);border-radius:4px;padding:11px 28px;font-size:15px;font-weight:200;text-decoration:none}
.rsvp:hover{background:var(--rose);color:var(--bg)}
.empty{max-width:822px;margin:0 auto;text-align:center;font-size:22px;font-weight:200;color:var(--rose);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:46px 0}
.pastt{max-width:822px;margin:60px auto 0;font-size:20px;color:var(--rose);font-weight:200;text-transform:uppercase}
.past{opacity:.7}

/* mosaic gallery */
.mos{display:flex;gap:18px;padding:18px}
.mos .L{flex:0 0 38.2%;display:flex;flex-direction:column;gap:18px;min-width:0}
.mos .R{flex:1;display:flex;flex-direction:column;gap:18px;min-width:0}
.mos .pair{display:flex;gap:18px}.mos .pair .tile{flex:1;min-width:0}
.tile{position:relative;overflow:hidden;cursor:zoom-in;background:#0a2630}
.tile img{width:100%;height:auto;transition:transform .5s}
.tile::after{content:"";position:absolute;inset:0;background:rgba(48,28,38,.36);transition:opacity .35s;pointer-events:none}
.tile::before{content:"";position:absolute;left:0;right:0;bottom:0;height:90px;background:linear-gradient(to top,rgba(0,0,0,.6),transparent);z-index:1;pointer-events:none}
.tile:hover::after{opacity:0}.tile:hover img{filter:brightness(1.08)}
.tile figcaption{position:absolute;left:18px;bottom:16px;z-index:2;font-size:13px;font-weight:300;color:#F3E8EA;line-height:1.35;max-width:84%}
@media(max-width:700px){.mos{flex-direction:column}.mos .L,.mos .R{flex:none}}

/* contact */
.contact{position:relative;min-height:530px;background:repeating-linear-gradient(90deg,#171311 0 5px,#211c19 5px 13px,#191412 13px 20px);overflow:hidden}
.contact .pool{position:absolute;left:33.6%;top:0;width:36.3%;height:100%;object-fit:cover;object-position:42% 50%;pointer-events:none}
.contact .panel{position:absolute;left:0;top:26px;bottom:0;width:33.4%;background:var(--salmon);color:var(--ink);padding:100px 3% 40px 83px;min-width:340px}
.contact .panel h2{color:var(--ink);font-size:30px;margin-bottom:52px}
.contact .panel p{font-size:20px;font-weight:300;line-height:1.55;margin-bottom:2px}
.contact .panel .nm{font-size:22px;margin-bottom:12px}
.contact .panel .em{margin-top:46px;font-size:18px}
.contact .panel .soc{display:flex;gap:4px;margin:26px 0 0 212px}
.contact .panel .soc a{width:22px;height:22px;border-radius:50%;background:#000;color:#fff;display:flex;align-items:center;justify-content:center}
.contact .panel .soc svg{width:13px;height:13px;fill:currentColor}
.contact form{position:absolute;left:670px;top:118px;width:547px}
.contact .row{display:flex;gap:24px}.contact .row>div{flex:1}
.contact label{display:block;font-size:14px;color:var(--pink);margin:0 0 4px;font-weight:300}
.contact input,.contact textarea{width:100%;background:var(--bg);border:1px solid var(--pink);color:var(--text);font:inherit;font-size:16px;padding:8px 10px;height:32px;border-radius:0}
.contact textarea{height:76px;resize:none}
.contact .fld{margin-bottom:16px}
.contact button{width:100%;background:var(--salmon);color:var(--ink);border:0;height:32px;font:inherit;font-size:16px;font-weight:300;cursor:pointer;margin-top:10px}
.contact button:hover{background:#e6b69f}
@media(max-width:900px){.contact{padding-bottom:30px}.contact .pool{display:none}.contact .panel{position:static;width:100%;padding:60px 8vw}.contact .panel .soc{margin-left:0}.contact form{position:static;width:auto;padding:30px 8vw;background:var(--bg)}}

footer{background:var(--footer1);color:#9A979B;text-align:center;font-size:15px;padding:34px 20px}
footer.f2{background:var(--footer2)}

/* biography */
.banner{margin:34px 5.6vw 0;background:var(--panel);height:185px;display:flex;align-items:center;justify-content:center}
.banner h1{font-size:clamp(34px,4.1vw,54px)}
.cols3{display:flex;justify-content:center;gap:85px;padding:150px 5vw 110px;max-width:1100px;margin:0 auto}
.cols3 div{flex:1;text-align:center;font-size:16px;line-height:1.65}
.cols3 p{margin-bottom:22px}
@media(max-width:800px){.cols3{flex-direction:column;gap:20px;padding:70px 8vw}}
.slider{background:var(--panel);padding:40px 5.5vw;position:relative}
.slider .track{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
.slider .track::-webkit-scrollbar{display:none}
.slider .track img{flex:0 0 calc((100% - 36px)/3);height:527px;object-fit:cover;scroll-snap-align:start;cursor:zoom-in}
.slider .nx{position:absolute;right:calc(5.5vw + 38px);top:50%;width:67px;height:67px;border:0;background:rgba(220,182,181,.85);font-size:24px;color:var(--bg);cursor:pointer;display:none}
.slider.many .nx{display:block}
@media(max-width:800px){.slider .track img{flex-basis:80%;height:380px}}
.collab{padding:90px 5vw 70px}
.collab .in{max-width:1000px;margin-left:228px}
.collab h2{font-size:clamp(34px,4vw,52px);margin-left:397px;margin-bottom:60px}
.collab p{max-width:627px;line-height:1.95;font-size:17px}
@media(max-width:1000px){.collab .in{margin:0 auto}.collab h2{margin-left:0}}
.solo{margin:0 36px;background:var(--panel);padding:76px 5vw 80px}
.solo h2{text-align:center;color:#F6D6C7;font-size:clamp(30px,3.8vw,50px);margin-bottom:60px}
.solo .r{display:flex;max-width:1000px;margin:0 auto 60px;gap:20px}
.solo .r h3{flex:0 0 253px;text-transform:none;font-size:26px;color:#FCEFE8;font-weight:300}
.solo .r p{max-width:446px;line-height:1.95;font-size:17px}
@media(max-width:800px){.solo .r{flex-direction:column}.solo{margin:0}}
.teach{display:flex;margin-top:18px;min-height:418px}
.teach .l{flex:0 0 50%;background:var(--pink);padding:86px 6% 40px}
.teach .l h2{text-transform:none;color:var(--ink);font-size:clamp(40px,5vw,66px);font-weight:200}
.teach .l i{display:block;width:27px;height:1px;background:var(--ink);margin-top:100px}
.teach .r{flex:1;display:flex;align-items:center;padding:30px 60px 30px 38px}
.teach .r p{max-width:363px;line-height:1.75;color:#C3BEC2}
@media(max-width:800px){.teach{flex-direction:column}.teach .l{flex:none}}

/* gallery page */
.ghead{position:relative;height:470px;margin:0 0 20px}
.ghead img{position:absolute;left:5.5vw;top:129px;width:min(424px,45vw);height:auto}
.ghead .cover{position:absolute;left:calc(5.5vw + min(424px,45vw));top:200px;right:0;bottom:0;background:var(--bg)}
.ghead h1{position:absolute;left:max(580px,45vw);top:300px;font-size:clamp(30px,4vw,52px);line-height:1.55}
.ghead h1 span{display:block}.ghead h1 span:last-child{margin-left:160px}
@media(max-width:800px){.ghead{height:auto;padding:30px 5vw}.ghead img,.ghead h1,.ghead .cover{position:static;width:100%}.ghead h1 span:last-child{margin-left:0}}

/* reviews */
.rev{display:flex;border:1px solid var(--pink);margin-top:0}
.rev>div{flex:1;min-height:480px;border-right:1px solid var(--pink);display:flex;flex-direction:column;justify-content:flex-start;align-items:center;text-align:center;padding:215px 5.5% 40px}
.rev>div:last-child{border-right:0}
.rev h3{font-size:26px;text-transform:none;margin-bottom:30px;font-weight:200}
.rev p{font-size:18px;line-height:2;color:#C9C6CA}
@media(max-width:800px){.rev{flex-direction:column}.rev>div{border-right:0;border-bottom:1px solid var(--pink);min-height:0;padding:60px 8vw}}

/* tour calendar */
.tour h1{text-align:center;font-size:clamp(38px,4.6vw,60px);margin:104px 0 100px}
.cal{max-width:822px;margin:0 auto;padding:0 12px 120px}
.cal .bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}
.cal select{background:transparent;color:var(--nav);border:0;font:inherit;font-size:19px;font-weight:200;cursor:pointer;appearance:none;padding-right:20px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23D8C3C6'/%3E%3C/svg%3E") no-repeat right center}
.cal select option{background:var(--bg)}
.cal .today{background:var(--salmon);color:var(--ink);border:0;padding:15px 25px;font:inherit;font-size:17px;font-weight:300;cursor:pointer}
.cal .wd,.cal .g{display:grid;grid-template-columns:repeat(7,1fr)}
.cal .wd span{font-size:17px;color:var(--nav);font-weight:300;padding-bottom:12px}
.cal .g{border-left:1px solid #6B5F66;border-top:1px solid #6B5F66}
.cal .c{min-height:125px;border-right:1px solid #6B5F66;border-bottom:1px solid #6B5F66;padding:12px 14px;font-size:22px;font-weight:200;color:var(--rose);position:relative}
.cal .c.we{background:#0D212A}.cal .c.o{color:#6D6A70}.cal .c.td{background:#363A3D}
.cal .c a,.cal .c em{display:block;margin-top:6px;background:var(--salmon);color:var(--ink);font-size:12px;font-style:normal;font-weight:400;line-height:1.3;padding:3px 5px;text-decoration:none}
.lb{position:fixed;inset:0;background:rgba(3,12,16,.96);display:flex;align-items:center;justify-content:center;z-index:100;padding:3vw}
.lb img{max-height:86vh;max-width:92vw;object-fit:contain}
.lb p{position:absolute;bottom:16px;left:0;right:0;text-align:center;color:#fff;font-size:16px}
.lb button{position:absolute;background:rgba(255,255,255,.14);color:#fff;border:0;font:inherit;font-size:16px;padding:12px 20px;cursor:pointer}
.lb .x{top:16px;right:16px}.lb .pv{left:16px;top:50%}.lb .nx{right:16px;top:50%}
.lb button:hover{background:var(--salmon);color:var(--ink)}

/* horizontal gallery with edge arrows */
.hs{position:relative;padding:20px 0 90px}
.hs .track{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 96px;scrollbar-width:none}
.hs .track::-webkit-scrollbar{display:none}
.hs .tile{flex:0 0 auto;scroll-snap-align:center;height:min(68vh,560px);min-width:240px}
.hs .tile img{height:100%;width:auto;max-width:none}
.hs .arr{position:absolute;top:calc(50% - 35px);width:67px;height:67px;border:0;background:rgba(220,182,181,.85);color:var(--bg);font-size:28px;cursor:pointer;z-index:5}
.hs .arr:hover{background:var(--pink)}.hs .arr.l{left:0}.hs .arr.r{right:0}
@media(max-width:700px){.hs .track{padding:0 20px}.hs .arr{width:48px;height:48px;font-size:20px}}
/* hover enlarge */
.pvx{position:fixed;inset:0;z-index:90;pointer-events:none;background:rgba(3,12,16,0);transition:background .38s}
.pvx.on{background:rgba(3,12,16,.68)}
.pvx img{position:fixed;max-width:none;transition:left .4s cubic-bezier(.2,.7,.2,1),top .4s cubic-bezier(.2,.7,.2,1),width .4s cubic-bezier(.2,.7,.2,1),height .4s cubic-bezier(.2,.7,.2,1);box-shadow:0 20px 80px rgba(0,0,0,.65);filter:brightness(1.05)}
.pvx p{position:fixed;left:0;right:0;bottom:1.6vh;text-align:center;color:#fff;font-size:15px;font-weight:300;opacity:0;transition:opacity .3s}
.pvx.on p{opacity:1}
.dim{transition:filter .12s linear}

.vids{padding:60px 8% 80px}.vids h2{font-weight:200;letter-spacing:.1em;text-transform:uppercase;margin:0 0 30px}.vg{display:flex;gap:24px;flex-wrap:wrap;justify-content:center}.vg video{max-width:100%;max-height:70vh;background:#000}

/* ===== more space at the top + vertical social rail ===== */
.nav{min-height:132px;padding-top:34px;align-items:flex-start;position:relative}
.nav ul{padding-top:6px}
.nav ul a{position:relative}
.nav ul a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .45s cubic-bezier(.2,.7,.2,1)}
.nav ul a:hover::after,.nav ul a.on::after{transform:scaleX(1)}
.rail{position:absolute;top:20px;right:clamp(14px,2.6vw,44px);z-index:60;display:flex;flex-direction:column;align-items:center;gap:20px}
.rail i{display:block;width:1px;height:54px;background:var(--rose);opacity:.55}
.rail a{display:block;width:22px;height:22px;color:#fff;transition:transform .35s cubic-bezier(.2,.7,.2,1),opacity .3s}
.rail svg{width:100%;height:100%;fill:currentColor}
.rail a:hover{transform:translateY(-3px) scale(1.2);opacity:1;color:var(--salmon)}
@media(max-width:700px){.nav{min-height:112px;padding-top:26px}.rail{top:14px;right:10px;gap:16px}.rail i{height:34px}.rail a{width:20px;height:20px}.nav ul{gap:16px;max-width:calc(100% - 56px)}}

/* ===== motion ===== */
@keyframes kbA{from{transform:scale(1.02) translate(0,0)}to{transform:scale(1.13) translate(-2.2%,-1.6%)}}
@keyframes kbB{from{transform:scale(1.12) translate(-1.8%,1.2%)}to{transform:scale(1.02) translate(1.4%,-1%)}}
@keyframes kbC{from{transform:scale(1.03) translate(1.5%,0)}to{transform:scale(1.12) translate(-1.5%,1.6%)}}
@keyframes heroIn{from{opacity:0;transform:translateY(34px);letter-spacing:.5em}to{opacity:1;transform:none}}
@keyframes fadeUp{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
@keyframes railIn{from{opacity:0;transform:translateY(-24px)}to{opacity:1;transform:none}}
.mv .tile img{transition:filter .35s;transform-origin:center;animation:kbA 24s ease-in-out infinite alternate;will-change:transform}
.mv .tile:nth-child(3n+2) img{animation-name:kbB;animation-duration:29s}
.mv .tile:nth-child(3n) img{animation-name:kbC;animation-duration:26s;animation-delay:-8s}
.mv .tile:nth-child(4n+1) img{animation-delay:-13s}
.mv .tile:hover img{animation-play-state:paused}
.mv .hero{overflow:hidden}
.mv .hero>img{transform-origin:62% 38%;animation:kbA 34s ease-in-out infinite alternate}
.mv .hero .nm{animation:heroIn 1.7s cubic-bezier(.2,.7,.2,1) .3s both}
.mv .hero .st{animation:fadeUp 1.5s cubic-bezier(.2,.7,.2,1) 1s both}
.mv .contact .pool{animation:kbC 30s ease-in-out infinite alternate}
.mv .rail{animation:railIn 1.2s cubic-bezier(.2,.7,.2,1) .2s both}
.mv .nav ul li{animation:fadeUp .9s cubic-bezier(.2,.7,.2,1) both}
.mv .nav ul li:nth-child(2){animation-delay:.08s}.mv .nav ul li:nth-child(3){animation-delay:.16s}.mv .nav ul li:nth-child(4){animation-delay:.24s}.mv .nav ul li:nth-child(5){animation-delay:.32s}
.mv .slider .track img,.mv .vg video{transition:opacity 1s,transform 1.1s cubic-bezier(.2,.7,.2,1),filter .12s}
.rv{opacity:0;transform:translateY(46px) scale(.965);transition:opacity 1s ease,transform 1.1s cubic-bezier(.2,.7,.2,1)}
.rv.in{opacity:1;transform:none}
.hs .tile.rv{transform:translateX(70px) scale(.95)}.hs .tile.rv.in{transform:none}
.ghead h1 span.rv{transform:translateX(-50px)}.ghead h1 span.rv.in{transform:none}
.ghead>img.rv{transform:translateX(-60px) scale(.96)}.ghead>img.rv.in{transform:none}
.cols3>div.rv{transform:translateY(34px)}
.slider .track img:hover{filter:brightness(1.1)}
.hs .arr,.slider .nx{transition:background .3s,transform .3s}.hs .arr:hover{transform:scale(1.07)}
.upc .empty,.evl li{transition:background .4s}
@media(prefers-reduced-motion:reduce){.mv .tile img,.mv .hero>img,.mv .contact .pool,.mv .hero .nm,.mv .hero .st,.mv .rail,.mv .nav ul li{animation:none!important}.rv{opacity:1!important;transform:none!important;transition:none!important}}
/* rail as a dark vertical pill inside the top band */
.rail{top:9px;right:clamp(14px,2.6vw,44px);gap:15px;padding:13px 10px;background:rgba(3,26,34,.72);border:1px solid rgba(226,195,196,.28);border-radius:30px;backdrop-filter:blur(4px)}
.rail i{display:none}
@media(max-width:700px){.rail{top:6px;right:8px;gap:11px;padding:10px 8px}}
html{overflow-x:hidden}
@media(max-width:700px){.upc h2 span:first-child{transform:none}}

/* hero fits the first screen so the name is always visible */
.hero img{max-height:calc(100vh - 132px);max-height:calc(100svh - 132px);min-height:420px;object-fit:cover;object-position:50% 22%}
.hero .nm{top:auto;bottom:17%}
.hero .st{top:auto;bottom:9%}
.hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:42%;background:linear-gradient(to top,rgba(20,8,6,.55),transparent);pointer-events:none}
.hero .nm,.hero .st{z-index:2}
@media(max-width:700px){.hero img{min-height:0;max-height:none}.hero .nm{bottom:19%}.hero .st{bottom:10%}}

/* every photo moves: slider + gallery header live in clipping wrappers */
.kbw{overflow:hidden;position:relative}
.slider .kbw{flex:0 0 calc((100% - 36px)/3);height:527px;scroll-snap-align:start;cursor:zoom-in}
.slider .kbw img{width:100%;height:100%;object-fit:cover;flex:none}
.ghead .gimg{position:absolute;left:5.5vw;top:129px;width:min(424px,45vw)}
.ghead .gimg img{position:static;width:100%;height:auto}
@media(max-width:800px){.slider .kbw{flex-basis:80%;height:380px}.ghead .gimg{position:static;width:100%}}
.mv .kbw img{animation:kbA 20s ease-in-out infinite alternate;will-change:transform}
.mv .kbw:nth-child(2n) img{animation-name:kbB;animation-duration:25s}
.mv .kbw:nth-child(3n) img{animation-name:kbC;animation-duration:22s;animation-delay:-7s}
@keyframes kbA{from{transform:scale(1.02) translate(0,0)}to{transform:scale(1.18) translate(-3%,-2.2%)}}
@keyframes kbB{from{transform:scale(1.16) translate(-2.4%,1.6%)}to{transform:scale(1.02) translate(2%,-1.4%)}}
@keyframes kbC{from{transform:scale(1.03) translate(2%,0)}to{transform:scale(1.16) translate(-2%,2.2%)}}
.mv .tile img{animation-duration:19s}
.mv .tile:nth-child(3n+2) img{animation-duration:23s}
.mv .tile:nth-child(3n) img{animation-duration:21s}
@media(prefers-reduced-motion:reduce){.mv .kbw img{animation:none!important}}

/* home order: bio intro first, concerts at the very bottom */
.intro{background:var(--charcoal);padding:96px 5vw 90px;text-align:center}
.intro h2{font-size:clamp(30px,3.6vw,46px);margin-bottom:44px}
.intro p{max-width:700px;margin:0 auto 22px;font-size:18px;line-height:1.9}
.intro .more{display:inline-block;margin-top:26px;color:var(--rose);text-decoration:none;font-weight:200;letter-spacing:.2em;text-transform:uppercase;border-bottom:1px solid var(--rose);padding-bottom:4px;transition:letter-spacing .4s,color .3s}
.intro .more:hover{letter-spacing:.32em;color:#fff}
.vids{background:var(--bg)}
.upc.low{padding:56px 5vw 46px;background:var(--bg)}
.upc.low h2{font-size:clamp(20px,2.2vw,28px);margin:0 auto 34px;line-height:1.6;opacity:.8}
.upc.low h2 span:first-child{transform:none}
.upc.low .empty{font-size:17px;padding:28px 0;opacity:.8}

@media(hover:hover){.tile{transition:transform .5s cubic-bezier(.2,.7,.2,1),box-shadow .5s}.tile:hover{transform:scale(1.025);box-shadow:0 14px 40px rgba(0,0,0,.5);z-index:2}.tile{cursor:zoom-in}}

/* v7 */
.upc.top{background:#0F3B57;padding:64px 5vw 56px}
.upc.top h2{font-size:clamp(28px,3.2vw,42px);margin:0 auto 34px;line-height:1.5;opacity:1}
.upc.top h2 span:first-child{transform:none}
.upc.top .empty{opacity:.9}
.slider .kbw:first-child img{object-position:12% 40%}
.collab h2{margin-bottom:26px}
.solo h2{margin-bottom:34px}
.solo .r{margin-bottom:34px;gap:10px}
.solo .r h3{flex:0 0 170px}
.teach{min-height:300px}
.teach .l{flex:0 0 40%;padding:56px 5% 30px}
.teach .l i{margin-top:40px}
.teach .r{padding:30px 40px 30px 36px}
.gg{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;padding:20px 5.5vw 80px}
.gg .tile{height:clamp(220px,34vw,520px);margin:0;overflow:hidden}
.gg .tile img{width:100%;height:100%;object-fit:cover;object-position:50% 25%}
@media(max-width:600px){.gg{gap:8px;padding:12px 10px 50px}.gg .tile{height:44vw}}
.tile figcaption{text-shadow:0 1px 6px rgba(0,0,0,.85),0 0 2px rgba(0,0,0,.7);font-size:14px}
@media(min-width:1001px){
.contact{min-height:620px}
.contact .panel{width:28%;padding:70px 2.5% 40px 70px}
.contact .panel h2{margin-bottom:36px}
.contact .panel .em{margin-top:30px}
.contact .panel .soc{margin:20px 0 0 0}
.contact .pool{left:28%;width:38%;object-position:50% 50%}
.contact form{left:calc(66% + 34px);top:110px;width:calc(34% - 34px - 4vw)}
}
@media(max-width:600px){.gg .tile figcaption{font-size:10.5px;left:8px;bottom:8px;max-width:92%;line-height:1.25}}

/* v12: Insights + Ask Roman */
.blogh{padding:70px 6vw 30px;text-align:center}.blogh h1{font-size:clamp(34px,4.4vw,58px);margin-bottom:18px}.blogh p{max-width:620px;margin:0 auto;font-size:18px;line-height:1.8}
.plist{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:22px;padding:30px 5.5vw 70px}
.pcard{display:block;background:var(--panel);text-decoration:none;color:var(--text);transition:transform .4s,box-shadow .4s}
.pcard:hover{transform:translateY(-4px);box-shadow:0 14px 40px rgba(0,0,0,.45)}
.pcard .kbw{height:220px}.pcard .kbw img{width:100%;height:100%;object-fit:cover}
.pcard .pt{padding:20px 22px 26px}.pcard .pt span{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--line)}
.pcard .pt h3{font-size:22px;margin:8px 0 10px;color:var(--rose);font-weight:300;text-transform:none}.pcard .pt p{font-size:16px;line-height:1.7;margin:0}
.empty.soon{text-align:center;padding:50px 5vw 80px;font-size:19px;opacity:.85}
.post{max-width:760px;margin:0 auto;padding:50px 5vw 40px}.post .back{color:var(--rose);text-decoration:none;font-size:15px;letter-spacing:.1em}
.post .pd{margin:30px 0 6px;color:var(--line);letter-spacing:.14em;text-transform:uppercase;font-size:14px}.post h1{font-size:clamp(30px,4vw,48px);line-height:1.25;margin-bottom:30px}
.post .pc{height:min(46vw,420px);margin-bottom:34px}.post .pc img{width:100%;height:100%;object-fit:cover}
.post .pb p{font-size:18px;line-height:1.95;margin:0 0 22px}.post .pb h3{font-size:25px;margin:38px 0 14px;color:var(--rose);text-transform:none;font-weight:300}
.post .yt{position:relative;padding-top:56.25%;margin:30px 0}.post .yt iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.cta{text-align:center;padding:60px 5vw 80px;background:var(--charcoal)}.cta h2{font-size:clamp(26px,3vw,38px);margin-bottom:14px}.cta p{margin-bottom:6px;font-size:18px}
.cta .more{display:inline-block;margin-top:22px;color:var(--rose);text-decoration:none;font-weight:200;letter-spacing:.2em;text-transform:uppercase;border-bottom:1px solid var(--rose);padding-bottom:4px}
.qa{max-width:820px;margin:0 auto;padding:10px 5vw 70px}.qa h2{text-align:center;margin-bottom:30px;font-size:clamp(26px,3vw,38px)}
.qi{border-top:1px solid var(--line);padding:24px 0}.qi h4{font-size:20px;font-weight:300;color:var(--rose);margin-bottom:12px}.qi p{font-size:17px;line-height:1.9;margin:0 0 14px}
.ask{max-width:760px;margin:0 auto;padding:60px 5vw 90px}.ask h1{font-size:clamp(34px,4.4vw,58px);margin-bottom:20px;text-align:center}.ask .ai{text-align:center;font-size:18px;line-height:1.9;margin:0 auto 44px;max-width:640px}
.ask .row{display:flex;gap:22px;flex-wrap:wrap}.ask .row>.fld{flex:1 1 220px}
.ask .fld{margin-bottom:20px}.ask label{display:block;font-size:14px;margin-bottom:6px;color:var(--nav)}
.ask input[type=text],.ask input:not([type]),.ask input[type=email],.ask select,.ask textarea{width:100%;background:var(--bg);border:1px solid var(--pink);color:var(--text);font:inherit;font-size:16px;padding:10px 12px;border-radius:0}
.ask textarea{min-height:170px}
.ask fieldset{border:0;padding:0;margin:0 0 24px}.ask legend{font-size:14px;color:var(--nav);margin-bottom:10px}
.ask .ck{display:flex;gap:10px;align-items:flex-start;margin:0 0 10px;font-size:16px;color:var(--text);cursor:pointer}.ask .ck input{margin-top:5px;accent-color:var(--salmon);width:auto}
.ask button{background:var(--salmon);color:var(--ink);border:0;padding:13px 40px;font:inherit;font-size:17px;cursor:pointer;margin-top:16px;transition:background .3s}.ask button:hover{background:var(--rose)}
.hp{position:absolute;left:-9999px;height:0;overflow:hidden}

/* v13 board */
.bauth{background:var(--panel);padding:18px 22px;margin-bottom:26px;font-size:16px;line-height:1.7;text-align:center}.bauth a{color:var(--pink)}
.bauth button.alt{background:transparent;border:1px solid var(--salmon);color:var(--text);margin-left:8px}
.bform{background:var(--panel);padding:22px;margin-bottom:34px}.bform h3{margin:0 0 14px;font-weight:600}
.cnt{display:block;text-align:right;font-size:12px;opacity:.7;margin-top:4px}
.bmsg{margin:10px 0 0;font-size:15px}.bmsg.ok{color:#9fe0b0}.bmsg.er{color:#ffb3a7}
.bh{text-align:center;font-size:26px;margin:10px 0 6px}.bnote{text-align:center;opacity:.85;margin:0 0 22px}
.blist .bi{display:flex;gap:16px;background:var(--panel);padding:14px 16px;margin-bottom:12px;align-items:center}
.blist .bi.pl{border-left:4px solid var(--salmon)}
.bv{flex:0 0 84px;text-align:center}.bv b{display:block;font-size:26px}.bv .me{margin:4px 0 0;padding:6px 10px;font-size:14px}.bv .me.on{background:var(--rose)}
.bt p{margin:0 0 4px;font-size:17px;line-height:1.5}.bt span{font-size:13px;opacity:.75}.bt em{display:block;margin-top:6px;font-size:14px;color:var(--pink)}.bt em a{color:inherit}

.vg .vy{position:relative;width:min(100%,960px);padding-top:min(56.25%,540px);aspect-ratio:auto}.vg .vy iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

.nav ul li.acct a{border:1px solid var(--salmon);padding:5px 14px;font-size:15px;color:var(--text)}.nav ul li.acct a::after{display:none}.nav ul li.acct a:hover{background:var(--salmon);color:var(--ink)}

.bprof{display:flex;gap:16px;flex-wrap:wrap}.bprof .fld{flex:1 1 180px}
.ask .bform textarea{min-height:110px}.bsm{font-size:13px;opacity:.75;margin-left:10px}
.blist .bi{display:block;padding:18px 20px}.bi header,.bc{font-size:14px}.bi header{display:flex;justify-content:space-between;gap:10px;margin-bottom:8px;opacity:.9}
.bi time,.bc time{font-size:12px;opacity:.6}.bw b{font-size:15px}.bw.host b{color:var(--pink)}.bw.host::after{content:" ✓";color:var(--pink)}
.btx p{margin:0 0 8px;font-size:17px;line-height:1.6}
.bact{display:flex;gap:10px;margin-top:6px}.bact button,.bcf button{background:transparent;border:1px solid var(--salmon);color:var(--text);padding:6px 14px;font-size:14px;margin:0}.bact button.on{background:var(--salmon);color:var(--ink)}
.bcm{margin-top:12px;border-top:1px solid rgba(255,255,255,.12);padding-top:6px}.bc{padding:10px 0 4px 14px;border-left:2px solid rgba(255,255,255,.18);margin:10px 0}.bc p{margin:4px 0;font-size:15px;line-height:1.5}.bc.host{border-left-color:var(--pink)}.bc time{margin-left:8px}
.bcf textarea{width:100%;min-height:60px;margin:8px 0}.bcf .bmsg{margin-left:10px}

.bhost{margin:0 0 14px;font-size:15px;color:var(--pink)}.wtag{display:inline-block;background:var(--salmon);color:var(--ink);font-size:12px;padding:2px 8px;margin-bottom:8px}.bi.wait,.bc.wait{outline:1px dashed var(--salmon);outline-offset:3px}.hbar{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}.hbar button{background:transparent;border:1px solid var(--line,#888);color:var(--text);padding:4px 12px;font-size:13px;margin:0;cursor:pointer}.hbar .h-ok,.hbar .c-ok{border-color:var(--salmon);background:var(--salmon);color:var(--ink)}
