
/* Page-based revision, designed to reuse v1 visual language. */
.desktop-nav{gap:17px}.desktop-nav a{font-size:11px;white-space:nowrap}.desktop-nav a.current{color:var(--red)}.page-intro{padding:105px 0 30px}.page-title{font:800 clamp(52px,8vw,120px)/.92 'Space Grotesk',sans-serif;letter-spacing:-.078em;max-width:1110px;margin:22px 0}.page-deck{font-size:clamp(16px,2vw,21px);line-height:1.55;max-width:720px;color:#5c5551}.page-section{padding-top:48px}.block-heading{font:800 clamp(50px,7vw,100px)/.95 'Space Grotesk',sans-serif;letter-spacing:-.06em}.page-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:40px}.page-cards a{background:#e0dad1;display:flex;flex-direction:column;gap:8px;padding-bottom:17px;overflow:hidden}.page-cards img{width:100%;height:260px;object-fit:cover}.page-cards strong,.page-cards span{margin-left:15px;font-size:12px}.page-cards strong{font-weight:900}.home-banner{background:var(--red);padding:80px 0;color:white}.home-banner h2{max-width:850px}.home-banner .button{margin-top:20px}.portfolio-gallery,.mixed-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:30px}.gallery-tile{margin:0;min-width:0}.image-open{display:block;background:#e0d9d0;border:0;width:100%;padding:0;cursor:zoom-in}.image-open img{display:block;width:100%;height:370px;object-fit:contain}.gallery-tile figcaption{font-size:11px;font-weight:800;letter-spacing:.08em;padding:13px 0;color:#746e67}.subtle-note{margin:25px 0;color:#6b635e;line-height:1.6}.catalog-controls{display:flex;gap:20px;align-items:center;margin:25px 0}.catalog-controls label{font-size:11px;letter-spacing:.08em}.catalog-controls input{padding:14px 16px;border:1px solid #746963;background:#f4f0eb;width:min(340px,100%);color:#171515}.flash-section .catalog-controls input{background:#302b2c;color:white;border-color:#70666b}.catalog-controls .catalog-count{margin-left:auto}.about-page{padding-top:40px}.about-page-main{display:grid;grid-template-columns:38% 1fr;gap:7%;align-items:start}.about-main-photo{width:100%;height:660px;object-fit:cover}.about-subtitle{font:800 clamp(36px,4vw,64px)/1 'Space Grotesk',sans-serif;letter-spacing:-.06em;margin:20px 0 25px}.about-page-main p,.about-more p{font-size:16px;line-height:1.8;color:#56504d}.portrait-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:65px 0}.portrait-strip img{width:100%;height:390px;object-fit:cover}.about-more{max-width:700px;margin-bottom:50px}.thanks-wrap{padding:105px 0;background:#ded8cf}.thanks-preface{max-width:700px;font-size:17px;line-height:1.6}.gratitude-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:45px}.gratitude-grid article{background:#eee9e2;padding:17px 17px 25px;border-top:4px solid var(--red)}.gratitude-photo{height:300px;background:#cdc5bd;margin-bottom:24px}.gratitude-photo img{width:100%;height:100%;object-fit:cover}.photo-placeholder{display:flex;align-items:center;justify-content:center;background:#c9c0b7;color:#7c6c68;font-size:25px;letter-spacing:.05em;text-align:center;font-weight:900}.memorial{background:#262124;color:#b85561;font-size:80px}.gratitude-grid h3{font:900 34px 'Space Grotesk',sans-serif;letter-spacing:-.04em;margin:10px 0}.gratitude-grid p{color:#5c5450;line-height:1.6;font-size:14px}.page-section .section-heading{margin-bottom:60px}.mobile-nav[hidden]{display:none!important}.flash-card img{object-fit:contain}.flash-img{cursor:zoom-in}.status.unconfirmed{color:#e3cbbb}.portfolio-gallery .gallery-tile{background:transparent}
@media(max-width:1200px){.desktop-nav{gap:10px}.desktop-nav a{font-size:10px}.header-book{padding:13px 12px}.page-cards img{height:220px}}
@media(max-width:1000px){.page-cards{grid-template-columns:repeat(2,1fr)}.about-page-main{grid-template-columns:1fr 1fr}.gratitude-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.desktop-nav{display:none}.about-page-main{grid-template-columns:1fr}.about-main-photo{height:480px}.page-intro{padding-top:85px}.portfolio-gallery,.mixed-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.page-intro{padding-top:65px}.page-title{font-size:clamp(52px,12vw,82px)}.page-cards{gap:10px}.page-cards img{height:170px}.page-cards strong{font-size:10px}.portfolio-gallery,.mixed-gallery{gap:12px}.image-open img{height:240px}.portrait-strip{gap:8px}.portrait-strip img{height:175px}.gratitude-grid{grid-template-columns:1fr}.gratitude-photo{height:360px}.catalog-controls{flex-wrap:wrap}.catalog-controls .catalog-count{margin-left:0}.about-page-main{gap:25px}.about-main-photo{height:440px}}

/* V3: finished tattoo portfolio and individual flashbook */
.filter-tabs{display:flex;flex-wrap:wrap;gap:9px}.filter-tabs button{white-space:nowrap}
.portfolio-gallery .gallery-tile{min-width:0}.portfolio-gallery .image-open{background:#e9e4df;overflow:hidden}.portfolio-gallery .image-open img{height:360px;object-fit:cover;transition:transform .2s ease}.portfolio-gallery .image-open:hover img{transform:scale(1.025)}
.gallery-tile figcaption{display:flex;gap:12px;justify-content:space-between;align-items:center;line-height:1.4}.tattoo-status{color:#992d39;white-space:nowrap;font-weight:900;font-size:10px}
.flash-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.flash-card{min-width:0;background:#eeeae4;color:#1d1618;overflow:hidden}.flash-card .flash-img{background:#fff;height:290px;padding:12px;display:grid;place-items:center;width:100%;border:0;cursor:zoom-in}.flash-card .flash-img img{max-height:100%;max-width:100%;width:100%;height:100%;object-fit:contain}.flash-meta{display:flex;flex-wrap:wrap;align-items:center;gap:5px 9px;padding:13px 14px 15px}.flash-meta .flash-label{font-size:13px;flex-basis:100%;color:#261d1e}.flash-meta .flash-id{color:#726466;font-size:11px}.flash-meta .status{margin-left:auto;color:#7e2f38;font-size:10px;font-weight:900;letter-spacing:.06em}.flash-meta .status.available{color:#2c664c}.flash-meta .status.hold{color:#895c27}.flash-card[data-status="taken"] .flash-img img{opacity:.68}
@media(max-width:1040px){.flash-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:720px){.flash-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.flash-card .flash-img{height:240px}.portfolio-gallery .image-open img{height:265px}}
@media(max-width:430px){.flash-card .flash-img{height:190px;padding:6px}.flash-meta{padding:9px}.portfolio-gallery .image-open img{height:215px}}
@media(prefers-reduced-motion:reduce){.portfolio-gallery .image-open img{transition:none}}
