/* STUDIO TRIVIMA — portfolio-style.css (site-matched palette) */
:root {
  /* Mirror main site tokens exactly */
  --accent:       #C85A5A;
  --accent-hover: #B04848;
  --accent-light: #FDF0F0;
  --teal:         #5B9DB8;
  --bg:           #FAFAF8;
  --bg-alt:       #F4F1ED;
  --white:        #FFFFFF;
  --dark:         #111111;
  --text:         #1C1C1C;
  --muted:        #7A7A7A;
  --light:        #AAAAAA;
  --border:       #E8E4DF;
  --shadow-sm:    0 2px 12px rgba(0,0,0,0.06);
  --shadow-md:    0 8px 32px rgba(0,0,0,0.10);
  --nav-h:        clamp(68px,6.5vw,100px);
  --ease:         cubic-bezier(0.76,0,0.24,1);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px;scroll-behavior:auto}
body{font-family:'DM Sans',sans-serif;background:var(--bg);color:var(--text);overflow-x:hidden;cursor:none}
img{display:block;max-width:100%}
a{text-decoration:none;color:inherit}
ul{list-style:none}

/* GRAIN — very subtle on light bg */
.grain-overlay{position:fixed;inset:0;z-index:9999;pointer-events:none;opacity:.10;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");
  background-size:256px 256px;mix-blend-mode:multiply}

/* LOADER */
.pf-loader{position:fixed;inset:0;z-index:10000;background:var(--bg);display:flex;align-items:center;justify-content:center;transition:opacity .9s var(--ease),transform .9s var(--ease)}
.pf-loader.exit{opacity:0;transform:scale(1.03);pointer-events:none}
.pf-loader-inner{display:flex;flex-direction:column;align-items:center;gap:24px}
.pf-loader-logo{width:160px;height:auto}
.pf-loader-line{width:220px;height:1px;background:var(--border);position:relative;overflow:hidden}
.pf-loader-fill{position:absolute;inset:0;background:var(--accent);width:0%;transition:width .08s linear}
.pf-loader-pct{font-size:11px;letter-spacing:.16em;color:var(--muted);font-family:'DM Sans',sans-serif}

/* CURSOR */
body *{cursor:none!important}
.pf-cursor-dot{position:fixed;top:0;left:0;width:6px;height:6px;background:var(--accent);border-radius:50%;pointer-events:none;z-index:9998;transform:translate(-50%,-50%);transition:width .2s,height .2s,background .2s}
.pf-cursor-ring{position:fixed;top:0;left:0;width:40px;height:40px;border:1.5px solid rgba(200,90,90,.4);border-radius:50%;pointer-events:none;z-index:9997;transform:translate(-50%,-50%);transition:width .3s var(--ease),height .3s var(--ease),border-color .3s,background .3s;display:flex;align-items:center;justify-content:center}
.pf-cursor-label{font-size:8px;letter-spacing:.14em;color:var(--accent);opacity:0;transition:opacity .3s;font-weight:600}
.pf-cursor-ring.on-project{width:76px;height:76px;border-color:var(--accent);background:rgba(200,90,90,.04)}
.pf-cursor-ring.on-project .pf-cursor-label{opacity:1}
.pf-cursor-ring.on-link{width:52px;height:52px;border-color:rgba(200,90,90,.6)}
.pf-cursor-dot.hide{opacity:0}

/* SCROLL BAR */
.pf-scroll-bar{position:fixed;top:0;left:0;height:2px;width:0%;background:linear-gradient(90deg,var(--accent),#e08080);z-index:10001;pointer-events:none}

/* NAV — same style as main site */
.pf-nav{position:fixed;top:0;left:0;right:0;z-index:1000;height:var(--nav-h);background:rgba(250,250,248,.92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid transparent;transition:border-color .3s,box-shadow .3s}
.pf-nav.scrolled{border-bottom-color:var(--border);box-shadow:var(--shadow-sm)}
.pf-nav-inner{max-width:min(1440px,94vw);margin:0 auto;padding:0 clamp(16px,4vw,80px);height:100%;display:flex;align-items:center;gap:clamp(8px,2vw,40px)}
.pf-nav-logo{flex-shrink:0;display:flex;align-items:center}
.pf-nav-logo-img{height:clamp(28px,3.8vw,58px);width:auto;max-width:clamp(100px,30vw,200px)}
.pf-nav-links{display:flex;align-items:center;gap:2px;margin-left:auto}
.pf-nav-link{font-size:clamp(12px,.95vw,15px);font-weight:500;padding:clamp(5px,.5vw,8px) clamp(10px,1vw,16px);color:var(--muted);border-radius:6px;letter-spacing:.01em;transition:color .3s,background .3s}
.pf-nav-link:hover,.pf-nav-link.active{color:var(--text);background:var(--bg-alt)}
.pf-nav-right{display:flex;align-items:center;gap:clamp(8px,1.5vw,16px);flex-shrink:0}
.pf-btn-quote{display:inline-flex;align-items:center;gap:6px;background:var(--accent);color:#fff;font-size:clamp(10px,.85vw,14px);font-weight:600;letter-spacing:.05em;padding:clamp(8px,.8vw,13px) clamp(12px,1.5vw,24px);border-radius:50px;white-space:nowrap;transition:background .3s,transform .3s,box-shadow .3s}
.pf-btn-quote:hover{background:var(--accent-hover);transform:translateY(-1px);box-shadow:0 4px 16px rgba(200,90,90,.3)}
.pf-hamburger{display:none;flex-direction:column;gap:5px;background:none;border:none;padding:4px}
.pf-hamburger span{display:block;width:22px;height:2px;background:var(--text);border-radius:2px;transition:.3s var(--ease)}
.pf-hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.pf-hamburger.open span:nth-child(2){opacity:0}
.pf-hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* HERO */
.pf-hero{position:relative;min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding-top:var(--nav-h);overflow:hidden;background:var(--bg)}
.pf-hero-bg{position:absolute;inset:0;background:radial-gradient(ellipse 70% 50% at 65% 35%,rgba(200,90,90,.06) 0%,transparent 70%),radial-gradient(ellipse 50% 40% at 15% 75%,rgba(91,157,184,.05) 0%,transparent 60%);pointer-events:none}
.pf-hero-content{position:relative;z-index:2;padding:0 clamp(28px,6vw,120px);max-width:900px}
.pf-hero-eyebrow{font-size:clamp(10px,.75vw,13px);font-weight:600;letter-spacing:.14em;color:var(--muted);margin-bottom:clamp(18px,2vw,32px);display:flex;align-items:center;gap:10px;opacity:1;transform:none;will-change:opacity,transform}
.pf-dot-marker{color:var(--teal);font-size:14px}
.pf-hero-title{font-family:'Cormorant Garamond',serif;font-size:clamp(64px,10vw,150px);font-weight:300;line-height:.95;letter-spacing:-.02em;margin-bottom:clamp(24px,2.5vw,40px);overflow:hidden;will-change:transform;color:var(--text)}
.pf-title-line{display:block;opacity:1;transform:none;will-change:opacity,transform}
.pf-title-line--italic{font-style:italic;color:var(--accent)}
.pf-hero-sub{font-size:clamp(13px,1.05vw,17px);color:var(--muted);line-height:1.7;max-width:440px;opacity:1;transform:none;will-change:opacity,transform}
.pf-hero-counter{position:absolute;bottom:clamp(32px,4vw,60px);right:clamp(28px,6vw,120px);z-index:2;text-align:right;opacity:1;transform:none}
.pf-counter-num{display:block;font-family:'Cormorant Garamond',serif;font-size:clamp(48px,6vw,96px);font-weight:300;color:rgba(200,90,90,.15);line-height:1}
.pf-counter-label{font-size:11px;letter-spacing:.14em;color:var(--light)}
.pf-hero-scroll-hint{position:absolute;bottom:clamp(32px,4vw,60px);left:clamp(28px,6vw,120px);z-index:2;display:flex;flex-direction:column;align-items:flex-start;gap:12px;opacity:1}
.pf-scroll-text{font-size:10px;letter-spacing:.16em;color:var(--light);text-transform:uppercase}
.pf-scroll-line{width:1px;height:48px;background:linear-gradient(to bottom,var(--accent),transparent);animation:scrollPulse 2s ease-in-out infinite}
@keyframes scrollPulse{0%,100%{opacity:.4;transform:scaleY(1)}50%{opacity:1;transform:scaleY(1.15)}}

/* FILTER BAR */
.pf-filter-bar{display:flex;align-items:center;gap:4px;padding:clamp(18px,2vw,28px) clamp(28px,6vw,120px);position:relative;z-index:3;border-top:1px solid var(--border);background:var(--bg)}
.pf-filter{background:none;border:1px solid transparent;color:var(--muted);font-family:'DM Sans',sans-serif;font-size:12px;font-weight:500;letter-spacing:.1em;padding:8px 20px;border-radius:50px;transition:all .35s var(--ease)}
.pf-filter:hover{color:var(--text);border-color:var(--border)}
.pf-filter.active{background:var(--accent-light);border-color:var(--accent);color:var(--accent)}
.pf-filter-line{flex:1;height:1px;background:var(--border);margin-left:16px}

/* PROJECT LIST */
.pf-projects{position:relative;z-index:2;padding-bottom:clamp(60px,8vw,120px);background:var(--bg)}
.pf-project-item{position:relative;overflow:hidden;padding:0 clamp(28px,6vw,120px);transition:opacity .5s var(--ease)}
.pf-project-item.filtered-out{display:none}
.pf-projects.has-hover .pf-project-item:not(.is-hovered){opacity:.25}
.pf-proj-inner{display:grid;grid-template-columns:80px 1fr auto auto;align-items:center;gap:clamp(16px,3vw,48px);padding:clamp(22px,2.5vw,38px) 0;position:relative}
.pf-proj-num{font-family:'Playfair Display',serif;font-size:clamp(12px,.9vw,15px);color:var(--light);letter-spacing:.08em;flex-shrink:0;transition:color .4s,transform .4s var(--ease)}
.pf-project-item:hover .pf-proj-num{color:var(--accent);transform:scale(1.1)}
.pf-proj-info{min-width:0}
.pf-proj-title{font-family:'Cormorant Garamond',serif;font-size:clamp(28px,4.5vw,80px);font-weight:400;line-height:1;letter-spacing:-.01em;color:var(--text);overflow:hidden;transition:color .4s}
.pf-project-item:hover .pf-proj-title{color:var(--accent)}
.pf-proj-title-chars{display:inline-block}
.pf-proj-cat-tag{font-size:11px;letter-spacing:.12em;color:var(--light);margin-top:6px;display:block}
.pf-proj-tags{display:flex;gap:8px;flex-shrink:0}
.pf-proj-tags span{font-size:10px;letter-spacing:.1em;color:var(--muted);border:1px solid var(--border);padding:4px 12px;border-radius:50px;white-space:nowrap;transition:border-color .3s,color .3s,background .3s}
.pf-project-item:hover .pf-proj-tags span{border-color:rgba(200,90,90,.3);color:var(--accent);background:var(--accent-light)}
.pf-proj-cta{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:600;letter-spacing:.06em;color:var(--muted);border:1.5px solid var(--border);padding:10px 22px;border-radius:50px;flex-shrink:0;transition:all .35s var(--ease);opacity:0;transform:translateX(10px)}
.pf-project-item:hover .pf-proj-cta{opacity:1;transform:translateX(0);border-color:var(--accent);color:var(--accent);background:var(--accent-light)}
.pf-proj-divider{height:1px;background:var(--border);transition:background .5s var(--ease);transform-origin:left center}
.pf-project-item:hover .pf-proj-divider{background:linear-gradient(90deg,var(--accent),rgba(200,90,90,.2),transparent)}

/* FLOATING PREVIEW */
.pf-preview-wrap{position:fixed;top:0;left:0;pointer-events:none;z-index:500;will-change:transform}
.pf-preview-inner{position:relative;width:clamp(280px,26vw,420px);aspect-ratio:4/3;border-radius:var(--radius-lg, 18px);overflow:hidden;box-shadow:0 24px 64px rgba(0,0,0,.18);opacity:0;transform:scale(.92);transition:opacity .5s var(--ease),transform .5s var(--ease)}
.pf-preview-inner.visible{opacity:1;transform:scale(1)}
.pf-preview-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:opacity .6s var(--ease)}
.pf-preview-img--a{z-index:1}
.pf-preview-img--b{z-index:2;opacity:0}
.pf-preview-img--b.active{opacity:1}
.pf-preview-meta{position:absolute;bottom:0;left:0;right:0;padding:16px 20px;background:linear-gradient(to top,rgba(28,28,28,.65),transparent);z-index:3;display:flex;justify-content:space-between;align-items:flex-end}
.pf-preview-cat,.pf-preview-year{font-size:10px;letter-spacing:.12em;color:rgba(255,255,255,.8)}

/* AMBIENT ORBS — warm, subtle on light bg */
.pf-orbs{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden}
.pf-orb{position:absolute;border-radius:50%;filter:blur(140px);animation:orbFloat 22s ease-in-out infinite}
.pf-orb-1{width:700px;height:700px;background:rgba(200,90,90,.06);top:-200px;left:-200px;animation-delay:0s}
.pf-orb-2{width:600px;height:600px;background:rgba(91,157,184,.05);bottom:-200px;right:-150px;animation-delay:-8s}
.pf-orb-3{width:500px;height:500px;background:rgba(244,241,237,.4);top:50%;left:50%;transform:translate(-50%,-50%);animation-delay:-16s}
@keyframes orbFloat{0%,100%{transform:translateY(0) scale(1)}33%{transform:translateY(-30px) scale(1.04)}66%{transform:translateY(15px) scale(.97)}}

/* CTA SECTION */
.pf-cta-section{position:relative;z-index:2;padding:clamp(80px,10vw,160px) clamp(28px,6vw,120px);border-top:1px solid var(--border);text-align:center;background:var(--bg-alt)}
.pf-cta-label{font-size:clamp(11px,.8vw,13px);font-weight:600;letter-spacing:.06em;color:var(--muted);margin-bottom:24px;display:flex;align-items:center;justify-content:center;gap:10px}
.pf-cta-title{font-family:'Cormorant Garamond',serif;font-size:clamp(40px,6vw,96px);font-weight:300;line-height:1.08;color:var(--text);margin-bottom:24px}
.pf-cta-title em{font-style:italic;color:var(--accent)}
.pf-cta-sub{font-size:clamp(14px,1.05vw,17px);color:var(--muted);max-width:480px;margin:0 auto 48px;line-height:1.7}
.pf-cta-btn{display:inline-flex;align-items:center;gap:12px;background:var(--accent);color:#fff;font-size:13px;font-weight:600;letter-spacing:.07em;padding:16px 36px;border-radius:50px;transition:all .4s var(--ease)}
.pf-cta-btn:hover{background:var(--accent-hover);transform:translateY(-3px);box-shadow:0 12px 36px rgba(200,90,90,.28)}
.pf-cta-stats{display:flex;align-items:center;justify-content:center;gap:48px;margin-top:72px;padding-top:48px;border-top:1px solid var(--border)}
.pf-stat{text-align:center}
.pf-stat-num{display:block;font-family:'Cormorant Garamond',serif;font-size:clamp(40px,5vw,72px);font-weight:300;color:var(--text);line-height:1}
.pf-stat-num sup{font-size:.45em;color:var(--accent);vertical-align:super}
.pf-stat-lbl{font-size:11px;letter-spacing:.12em;color:var(--muted);margin-top:8px;display:block;text-transform:uppercase}
.pf-stat-sep{width:1px;height:48px;background:var(--border)}

/* FOOTER — matches main site */
.pf-footer{background:var(--white);border-top:1px solid var(--border)}
.pf-footer-top{max-width:min(1440px,92vw);margin:0 auto;padding:clamp(50px,6vw,90px) clamp(24px,4vw,80px) clamp(40px,5vw,60px);display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:clamp(30px,4vw,60px)}
.pf-footer-logo-img{height:44px;width:auto;margin-bottom:18px}
.pf-footer-tagline{font-size:13px;color:var(--muted);font-style:italic;margin-bottom:18px}
.pf-footer-contact{font-size:13px;color:var(--muted);margin-bottom:6px}
.pf-footer-contact a{color:var(--muted);transition:color .3s}
.pf-footer-contact a:hover{color:var(--accent)}
.pf-footer-col-title{font-family:'DM Sans',sans-serif;font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text);margin-bottom:18px}
.pf-footer-links{display:flex;flex-direction:column;gap:10px}
.pf-footer-links a{font-size:13.5px;color:var(--muted);transition:color .3s}
.pf-footer-links a:hover{color:var(--accent)}
.pf-social-links{display:flex;gap:10px;flex-wrap:wrap}
.pf-social-link{width:36px;height:36px;border:1px solid var(--border);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--muted);transition:all .3s}
.pf-social-link:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-light)}
.pf-footer-bottom{max-width:min(1440px,92vw);margin:0 auto;padding:clamp(16px,1.5vw,24px) clamp(24px,4vw,80px);border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}
.pf-footer-copy{font-size:12.5px;color:var(--light)}
.pf-footer-legal{display:flex;gap:24px}
.pf-footer-legal a{font-size:12.5px;color:var(--light);transition:color .3s}
.pf-footer-legal a:hover{color:var(--accent)}

/* REVEAL SYSTEM */
[data-reveal]{opacity:1;transform:none;transition:opacity .9s var(--ease),transform .9s var(--ease)}
[data-reveal].is-visible{opacity:1;transform:translateY(0)}

/* MOBILE NAV */
@media(max-width:960px){
  .pf-nav-links{position:fixed;inset:0;top:var(--nav-h);background:var(--bg);flex-direction:column;justify-content:center;gap:8px;padding:40px;transform:translateX(100%);transition:transform .45s var(--ease);z-index:999;border-top:1px solid var(--border)}
  .pf-nav-links.open{transform:translateX(0)}
  .pf-nav-link{font-size:clamp(20px,5vw,28px);padding:12px 0}
  .pf-hamburger{display:flex}
  .pf-btn-quote-txt{display:none}
  .pf-btn-quote{padding:9px 14px}
}
@media(max-width:900px){
  .pf-proj-inner{grid-template-columns:50px 1fr;gap:16px}
  .pf-proj-tags,.pf-proj-cta{display:none}
  .pf-preview-wrap{display:none}
}
@media(max-width:640px){
  html,body{max-width:100%;overflow-x:hidden}
  .pf-hero{min-height:auto;padding-top:calc(var(--nav-h) + 42px);padding-bottom:56px;justify-content:flex-start}
  .pf-hero-content{width:100%;max-width:100%;padding:0 24px}
  .pf-hero-title{font-size:clamp(48px,17vw,72px);line-height:1;overflow:visible}
  .pf-hero-sub{max-width:min(100%,330px);overflow-wrap:break-word}
  .pf-hero-counter{display:none}
  .pf-hero-scroll-hint{position:relative;left:auto;bottom:auto;margin:30px 24px 0}
  .pf-filter-bar{overflow-x:auto;padding:16px 20px;gap:8px;-webkit-overflow-scrolling:touch}
  .pf-filter{flex:0 0 auto;padding:8px 14px;font-size:11px}
  .pf-filter-line{display:none}
  .pf-project-item{padding:0 20px}
  .pf-proj-inner{grid-template-columns:36px minmax(0,1fr);gap:12px}
  .pf-proj-info{max-width:calc(100vw - 88px)}
  .pf-proj-title{max-width:100%;font-size:clamp(27px,9vw,38px);white-space:normal;overflow:visible;overflow-wrap:break-word;line-height:1.08}
  .pf-proj-title-chars,
  .pf-proj-title-chars span{display:inline!important;white-space:normal!important}
  .pf-cta-stats{gap:24px;flex-wrap:wrap}
  .pf-footer-top{grid-template-columns:1fr 1fr;gap:32px}
  .pf-footer-bottom{flex-direction:column;gap:12px;text-align:center}
}
