@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,600;1,400;1,600&display=swap');
:root{--ink:#101014;--cream:#f3eadb;--warm:#efe2ce;--gold:#bda16f;--teal:#087e91;--wine:#933d58;--white:#fffaf2;--max:1250px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',sans-serif;overflow-x:hidden}
a{color:inherit}img{display:block;max-width:100%}button{font:inherit}
.skip{position:absolute;top:-100px;left:10px;background:white;padding:12px;z-index:99}.skip:focus{top:10px}
.head{position:sticky;top:0;z-index:50;background:#0c0d11;color:#f3eadb;border-bottom:1px solid var(--teal)}
.head-inner{max-width:var(--max);margin:auto;min-height:76px;padding:0 26px;display:flex;justify-content:space-between;align-items:center;gap:22px}
.wordmark{text-decoration:none;white-space:nowrap;font:italic 600 24px 'Playfair Display',serif;letter-spacing:.11em}
.desktop-nav{display:flex;align-items:center;gap:24px}.desktop-nav a{text-decoration:none;font-size:13px}.desktop-nav a:hover,.desktop-nav a:focus{text-decoration:underline;text-underline-offset:5px}
.nav-outline{border:1px solid var(--gold);padding:11px 16px}.mobile-menu{display:none}
.container{max-width:var(--max);margin:0 auto;padding:0 26px}
.eyebrow,.section-tag{text-transform:uppercase;font-size:12px;letter-spacing:.20em;color:var(--teal);font-weight:700}
.hero-hub{max-width:var(--max);margin:auto;padding:60px 26px 85px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);align-items:center;gap:clamp(24px,4vw,66px)}
.hero-copy h1{font:400 clamp(62px,8vw,124px)/.9 'Playfair Display',serif;letter-spacing:-.052em;margin:21px 0 25px}.hero-copy h1 em{display:block;font-weight:400;color:var(--wine)}
.hero-copy p{max-width:570px;font-size:17px;line-height:1.75}
.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px}.button{display:inline-block;text-align:center;text-decoration:none;border:1px solid var(--ink);padding:14px 22px;min-height:49px;font-size:14px;font-weight:700;background:var(--ink);color:var(--cream)}
.button.secondary{background:transparent;color:var(--ink);border-color:var(--gold)}.button:hover,.button:focus-visible{outline:2px solid var(--teal);outline-offset:3px}
.photo-panel{position:relative;min-width:0;padding:18px 18px 48px 46px}.portrait{margin:0;height:min(61vw,590px);min-height:450px;border:1px solid var(--teal);overflow:hidden;background:#0c0d11}
.portrait img{width:100%;height:100%;object-fit:cover;object-position:55% 32%}
.brand-plate{position:absolute;bottom:0;left:0;width:65%;max-width:350px;margin:0;background:var(--cream);border:5px solid var(--cream);box-shadow:0 8px 20px #10101424}
.brand-plate img{width:100%;aspect-ratio:3/2;object-fit:contain;border:1px solid var(--gold)}
.photo-note{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#6f685b;position:absolute;bottom:14px;right:17px}
.band{background:#111216;color:var(--cream);padding:32px 26px;border-top:1px solid var(--gold);border-bottom:1px solid var(--gold)}
.band-inner{max-width:var(--max);margin:auto;display:flex;align-items:center;justify-content:space-between;gap:30px}
.band p{font:italic 400 clamp(23px,3vw,42px)/1.2 'Playfair Display',serif;margin:0}.band span{font-size:12px;white-space:nowrap;letter-spacing:.14em;text-transform:uppercase;color:#9ac3c8}
.divisions{padding:90px 0 110px}.section-head{display:flex;justify-content:space-between;align-items:end;gap:25px;margin-bottom:35px}
.section-head h2{font:400 clamp(42px,5vw,76px)/.97 'Playfair Display',serif;margin:12px 0}.section-head p:last-child{max-width:350px;line-height:1.6}
.card-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.service-card{display:block;color:inherit;text-decoration:none;background:#fffaf2;border:1px solid #d6c6af;transition:transform .2s ease}
.service-card:hover,.service-card:focus-visible{transform:translateY(-5px);outline:2px solid var(--teal);outline-offset:3px}
.card-visual{height:clamp(240px,28vw,365px);overflow:hidden;background:#121318;position:relative}
.card-visual img{width:100%;height:100%;object-fit:cover}
.card-face img{object-position:center 24%}.card-art img{object-position:center}
.card-blank{display:flex;justify-content:center;align-items:center;border:18px solid #101014}
.card-blank:before{content:'';position:absolute;inset:17px;border:1px solid var(--gold)}
.card-blank .glyph{position:relative;z-index:1;color:var(--cream);font:italic 400 clamp(32px,4vw,56px)/1.1 'Playfair Display',serif;text-align:center}
.card-blank .glyph em{color:#83bdc6}.card-photo{background:#1a121e}.card-model{background:#101519}
.card-info{padding:23px 26px 30px;display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.card-info h3{font:400 clamp(27px,3vw,39px)/1.12 'Playfair Display',serif;margin:0 0 9px}.card-info p{font-size:14px;line-height:1.6;color:#575049;margin:0}.card-arrow{font-size:26px;color:var(--teal)}
.endnote{background:var(--warm);border-top:1px solid var(--gold);padding:85px 0}.endnote-inner{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:start}
.endnote h2{font:400 clamp(42px,5vw,72px)/1 'Playfair Display',serif;margin:14px 0 18px}.endnote p{font-size:17px;line-height:1.7}
.foot{background:#0c0d11;color:var(--cream);padding:31px 26px}.foot-inner{max-width:var(--max);margin:auto;display:flex;gap:20px;justify-content:space-between;align-items:center;font-size:12px;line-height:1.5}
.detail-hero{padding:85px 0 65px;min-height:360px;display:grid;align-items:center;background:var(--cream);border-bottom:1px solid var(--gold)}
.detail-hero h1{font:400 clamp(55px,8vw,120px)/.94 'Playfair Display',serif;letter-spacing:-.04em;margin:18px 0 25px}
.detail-hero .intro{font-size:19px;line-height:1.65;max-width:730px;margin:0}
.detail-content{padding:70px 0 105px;display:grid;grid-template-columns:1fr 1fr;gap:70px}
.detail-content h2{font:400 clamp(38px,4vw,58px)/1.02 'Playfair Display',serif;margin:10px 0 22px}.detail-content p{line-height:1.8;font-size:16px}
.detail-note{border:1px solid var(--gold);padding:30px;background:#fffaf2}.detail-note h3{font:400 31px 'Playfair Display',serif;margin:0 0 15px}.detail-note p{margin:0 0 16px}.detail-note p:last-child{margin-bottom:0}
@media(max-width:800px){.head-inner{min-height:66px;padding:0 20px}.wordmark{font-size:21px}.desktop-nav{display:none}
.mobile-menu{display:block;position:relative}.mobile-menu summary{cursor:pointer;list-style:none;border:1px solid var(--gold);padding:9px 14px;font-size:14px}.mobile-menu summary::-webkit-details-marker{display:none}
.mobile-menu nav{position:absolute;right:0;top:48px;width:min(85vw,320px);display:flex;flex-direction:column;background:#0c0d11;border:1px solid var(--gold);padding:18px;gap:17px}
.mobile-menu nav a{text-decoration:none;font-size:15px}
.hero-hub{display:flex;flex-direction:column;align-items:stretch;padding:28px 20px 65px;gap:24px}.hero-copy{order:2}.hero-copy h1{font-size:clamp(53px,12vw,95px);margin-top:12px}.hero-copy p{font-size:16px}
.photo-panel{order:1;padding:10px 10px 32px 28px;max-width:650px;margin:auto;width:100%}.portrait{height:min(100vw,510px);min-height:310px}.brand-plate{width:61%;max-width:330px}.photo-note{bottom:8px;font-size:9px}
.band{padding:24px 20px}.band-inner{display:block}.band span{display:block;margin-top:14px}
.container{padding:0 20px}.divisions{padding:70px 0}.section-head{display:block}.section-head p:last-child{max-width:530px}
.card-grid{grid-template-columns:1fr;gap:19px}.card-visual{height:auto;aspect-ratio:4/3}.card-info{padding:19px 20px 24px}.card-info h3{font-size:33px}
.endnote{padding:65px 0}.endnote-inner,.detail-content{grid-template-columns:1fr;gap:22px}.detail-hero{padding:64px 0}.detail-hero h1{font-size:clamp(53px,12vw,88px)}.detail-content{padding:55px 0 85px}.foot-inner{flex-direction:column;align-items:start}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.service-card{transition:none}}


/* Concept preview: each empty frame is an intentional image-selection guide. */
.preview-ribbon{background:#e9ceac;color:#282019;padding:8px 16px;font:700 10px/1.3 'DM Sans',sans-serif;letter-spacing:.16em;text-align:center}
.theme-art{--page-accent:#b45b35;--page-shade:#efe2cf}
.theme-life{--page-accent:#746257;--page-shade:#e8dfd2}
.theme-photo{--page-accent:#694664;--page-shade:#e8dde2}
.detail-stage{background:var(--page-shade);min-height:unset;padding:75px 0}
.detail-stage .eyebrow{color:var(--page-accent)}
.detail-stage h1 em{font-weight:400;color:var(--page-accent)}
.stage-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.86fr);gap:clamp(30px,5vw,88px);align-items:center}
.stage-grid>*{min-width:0}
.stage-footnote{font-size:12px;line-height:1.5;color:#615850;letter-spacing:.025em;margin:30px 0 0}
.feature-art{margin:0;position:relative;border:12px solid #141519;aspect-ratio:4/5;max-height:550px;overflow:hidden;background:#191819}
.feature-art img{width:100%;height:100%;object-fit:cover;object-position:50% 50%}
.image-marker{position:absolute;bottom:12px;left:12px;right:12px;background:rgba(243,234,219,.94);color:#141519;padding:8px 10px;font-weight:700;font-size:10px;letter-spacing:.12em}
.portfolio-section{padding-top:35px;padding-bottom:95px}
.portfolio-layout{display:grid;grid-template-columns:1.12fr .88fr;grid-auto-flow:row;gap:18px}
.portfolio-layout>figure{min-width:0;margin:0}
.portfolio-layout>figure:nth-child(1){grid-row:span 2}
.portfolio-example{border:1px solid var(--gold);background:#141519;display:flex;flex-direction:column}
.portfolio-example img{width:100%;min-height:0;flex:1;object-fit:cover}
.portfolio-example figcaption{padding:13px 14px;color:var(--cream);font-size:11px;letter-spacing:.1em}
.portfolio-placeholder{position:relative;min-height:245px;overflow:hidden;display:flex;flex-direction:column;border:1px solid #958778;background:#121319;color:var(--cream)}
.art-placeholder{position:relative;flex:1;min-height:178px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.portfolio-placeholder .art-placeholder:before{content:"";position:absolute;inset:15px;border:1px solid rgba(232,198,146,.45)}
.art-outline{width:38%;aspect-ratio:4/5;border:1px solid rgba(233,207,173,.45);border-radius:50% 50% 6px 6px;transform:rotate(-8deg);position:relative}
.art-outline:after{content:"";position:absolute;inset:-28% 30% 16% -42%;border:1px solid rgba(233,207,173,.26);transform:rotate(22deg)}
.portfolio-placeholder figcaption{min-height:81px;display:grid;grid-template-columns:44px 1fr;grid-template-rows:auto auto;align-content:center;gap:3px 12px;padding:15px 17px;background:rgba(0,0,0,.7);border-top:1px solid rgba(189,161,111,.45)}
.portfolio-placeholder figcaption .slot-index{grid-row:span 2;align-self:center;color:#e9c68f;font:italic 30px/1 'Playfair Display',serif}
.portfolio-placeholder figcaption strong{font:400 20px/1.15 'Playfair Display',serif}
.portfolio-placeholder figcaption small{font-size:11px;letter-spacing:.015em;color:#d1c3b3}
.theme-art .portfolio-placeholder{background:radial-gradient(circle at 25% 35%,#c48353 0%,transparent 31%),linear-gradient(115deg,#443b31,#201914)}
.theme-art .art-original .art-outline{border-radius:2px;transform:rotate(-9deg)}
.theme-art .art-workshop{background:radial-gradient(circle at 75% 30%,#99866b,transparent 38%),#302725}
.theme-art .art-details{background:linear-gradient(120deg,#3e4738,#3d292f)}
.theme-life .portfolio-placeholder{background:radial-gradient(ellipse at 68% 36%,#625e55,transparent 40%),linear-gradient(145deg,#282829,#141419)}
.theme-life .art-outline{border-radius:46% 46% 25% 24%;transform:rotate(3deg)}
.theme-life .life-sketch{background:radial-gradient(circle at 25% 65%,#827867,transparent 38%),#242425}
.theme-life .life-details{background:linear-gradient(145deg,#2c3337,#211d1e)}
.theme-photo .portfolio-placeholder{background:radial-gradient(ellipse at 65% 18%,#7e455d,transparent 39%),#1a1721}
.theme-photo .art-outline{border-radius:48% 48% 18% 18%;transform:rotate(-2deg)}
.theme-photo .photo-vintage{background:radial-gradient(ellipse at 25% 33%,#5a4569,transparent 44%),#160f20}
.theme-photo .photo-studio{background:linear-gradient(120deg,#302b34,#101117)}
.stage-grid > .portfolio-placeholder{height:clamp(390px,43vw,590px)}
.stage-grid > .portfolio-placeholder figcaption{min-height:99px}
.bottom-cta{background:var(--page-shade,var(--warm));border-top:1px solid #c8b49b;padding:72px 0 83px}
.cta-grid{display:grid;grid-template-columns:1fr 1fr;gap:65px;align-items:center}
.cta-grid h2{font:400 clamp(44px,5.5vw,77px)/.98 'Playfair Display',serif;margin:10px 0}
.cta-grid p{line-height:1.7;max-width:570px}
.cta-grid .button{margin-top:12px}
.detail-content .detail-note{align-self:start}
.detail-content{padding-bottom:60px}
@media(max-width:1000px){.desktop-nav{gap:12px}.desktop-nav a{font-size:11px}.head-inner{padding-left:18px;padding-right:18px}.wordmark{font-size:21px}}
@media(max-width:800px){
  .stage-grid{grid-template-columns:1fr;gap:28px}
  .detail-stage{padding:51px 0}
  .stage-grid > .portfolio-placeholder{height:390px}
  .feature-art{width:100%;max-width:430px;aspect-ratio:4/5}
  .portfolio-layout{grid-template-columns:1fr 1fr;gap:12px}
  .portfolio-layout>figure:nth-child(1){grid-row:auto;grid-column:span 2}
  .portfolio-placeholder{min-height:225px}
  .portfolio-placeholder .art-placeholder{min-height:150px}
  .portfolio-placeholder figcaption{min-height:86px;grid-template-columns:1fr;gap:4px;padding:13px}
  .portfolio-placeholder .slot-index{grid-row:auto;font-size:19px}
  .portfolio-placeholder figcaption strong{font-size:19px}
  .portfolio-placeholder figcaption small{font-size:10px}
  .cta-grid{grid-template-columns:1fr;gap:8px}
  .portfolio-section{padding-top:24px;padding-bottom:70px}
}
@media(max-width:390px){.portfolio-layout{grid-template-columns:1fr}.portfolio-layout>figure:nth-child(1){grid-column:auto}.stage-grid>.portfolio-placeholder{height:340px}}

/* Explicit photo slot labels on hub preview */
.card-blank{flex-direction:column;gap:16px}
.card-photo-guide{position:absolute;z-index:1;bottom:17px;left:18px;right:18px;color:#d9c7b1;font-size:10px;line-height:1.5;letter-spacing:.13em;text-align:center;text-transform:uppercase}
.card-model:after,.card-photo:after{content:"";position:absolute;inset:29px;border:1px solid rgba(189,161,111,.25);pointer-events:none}
#disciplines{scroll-margin-top:88px}
@media(max-width:800px){#disciplines{scroll-margin-top:76px}}

/* Published portfolio hero art: show the full approved illustrations without cropping */
.hero-graphic { padding:0;max-width:660px;width:100% }
.hero-graphic .portrait{height:auto;min-height:0;border:0;background:transparent;overflow:visible;margin:0}
.hero-graphic .portrait img{display:block;width:100%;height:auto;object-fit:contain;object-position:center}
.poster-card{background:#fff8ec}
.poster-card img{object-fit:contain;object-position:center;background:#fff8ec}
.feature-art.poster-frame{display:block;position:relative;max-width:none;max-height:none;width:100%;height:auto;aspect-ratio:auto;margin:0;border:0;background:transparent;overflow:visible}
.feature-art.poster-frame img{display:block;width:100%;height:auto;object-fit:contain;object-position:center}
@media(max-width:800px){.hero-graphic{max-width:620px}.hero-hub .hero-copy{order:2}.hero-hub .hero-graphic{order:1;margin-inline:auto}}

/* Art modelling — selected images from Tori's original photography archive */
.studio-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:stretch}
.studio-photo{margin:0;min-width:0;background:#fffaf2;border:1px solid #d7c6ae;overflow:hidden}
.studio-photo img{display:block;width:100%;aspect-ratio:4/5;height:auto;object-fit:cover;object-position:center}
.studio-photo.studio-artwork img{object-fit:contain;background:#e6e3df}
.studio-photo figcaption{display:flex;align-items:center;gap:13px;padding:15px 16px;min-height:65px;font-size:13px;line-height:1.45;color:#38312e}
.studio-number{font:italic 23px/1 'Playfair Display',serif;color:#946f5a}
@media(max-width:900px){.studio-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}}
@media(max-width:540px){.studio-grid{grid-template-columns:1fr;gap:18px}.studio-photo img{aspect-ratio:auto;max-height:600px;object-fit:contain;background:#eee8df}.studio-photo figcaption{padding:14px}}

/* Art-modelling booking guidance styled to match the existing portfolio. */
.art-booking{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(24px,5vw,70px);padding-top:45px;padding-bottom:75px;border-top:1px solid #c8b49b}
.art-booking h2{font:400 clamp(31px,3.5vw,49px)/1.12 'Playfair Display',serif;margin:12px 0 19px}
.art-booking p{font-size:16px;line-height:1.8;max-width:68ch}
.art-booking-info{background:#fffaf2;border:1px solid #d8c6ab;padding:24px 30px}
.art-booking-info h3{font:400 25px/1.2 'Playfair Display',serif;margin:0 0 14px}
.art-booking-info p{font-size:15px;line-height:1.72}
.art-booking a{text-underline-offset:4px;color:#075e6c;font-weight:600}
@media(max-width:800px){.art-booking{grid-template-columns:1fr;padding-top:30px;padding-bottom:50px}.art-booking-info{padding:21px}}
