/* studio3607 — the site ground. Loaded by every page. */
  /* THE SITE GROUND. One rule, every page. A page follows the site unless Mike
     explicitly asks for an exception — pages drifted before because each carried its
     own private copy of the styles and nothing held them together. */
  body{
    background-color:#EDE9E0;
    background-image:
      radial-gradient(circle at 15% 22%, rgba(90,78,58,.070) 0 1.2px, transparent 1.3px),
      radial-gradient(circle at 68% 41%, rgba(90,78,58,.058) 0 1.1px, transparent 1.2px),
      radial-gradient(circle at 41% 77%, rgba(90,78,58,.065) 0 1.3px, transparent 1.4px),
      radial-gradient(circle at 88% 63%, rgba(120,104,78,.050) 0 1px, transparent 1.1px),
      repeating-linear-gradient(97deg, rgba(90,78,58,.042) 0 1px, transparent 1px 6px),
      repeating-linear-gradient(8deg,  rgba(90,78,58,.030) 0 1px, transparent 1px 9px),
      radial-gradient(ellipse at 50% 0%, rgba(255,255,255,.55) 0%, rgba(255,255,255,0) 55%);
    background-size:29px 33px, 43px 39px, 37px 47px, 53px 51px, 130px 130px, 170px 170px, 100% 100%;
    /* the last layer is one highlight across the whole page. At 900px tall it tiled, and every
       seam showed as a band down the front page; with no-repeat it left a single hard edge
       where it stopped. Spanning 100% means there is no edge anywhere. */
    background-repeat:repeat, repeat, repeat, repeat, repeat, repeat, no-repeat;
  }

  /* TEXT ROLES. Defined once, here, for every page.

     Until 2026-09-07 every heading, label and paragraph carried its own inline
     font-size, inherited from the original design export. Nothing shared them, so
     they drifted: thirteen different body sizes across the site, six for h2, four
     for h3. Mike: "i need consistency of style, look and feel including text and
     sizes" and "why is it not a css ... so it is one change".

     A size changes HERE and nowhere else. Layout stays inline; only type is here.
     An inline font-size would override these, so content elements no longer carry
     one — that is enforced by tests/check-site.js. */

  /* the uppercase eyebrow above a section */
  .s3607-label{
    font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, 'Liberation Mono', monospace;
    font-size:11px; letter-spacing:.2em; text-transform:uppercase; margin:0 0 14px;
  }

  /* the big heading that opens a front-page section */
  .s3607-section-head{
    font-family:Georgia, 'Times New Roman', serif; font-weight:600;
    font-size:clamp(26px,3.2vw,36px); line-height:1.18; letter-spacing:-.015em; margin:0 0 12px;
  }

  /* a heading inside a section — policy sections, sub-blocks */
  .s3607-subhead{
    font-family:Georgia, 'Times New Roman', serif; font-weight:600;
    font-size:23px; line-height:1.25; letter-spacing:-.012em; margin:0 0 14px;
  }

  /* a card's title */
  .s3607-card-title{ font-size:17px; font-weight:600; margin:0; }

  /* running body copy */
  .s3607-body{ font-size:16.5px; line-height:1.6; margin:0; }
  .s3607-body + .s3607-body{ margin-top:18px; }

  /* body copy inside a card */
  .s3607-card-body{ font-size:14.5px; line-height:1.55; margin:0; }
  .s3607-card-body + .s3607-card-body{ margin-top:12px; }

  /* small print — the note under a form, a caption */
  .s3607-fine{ font-size:13.5px; line-height:1.5; margin:0; }

  /* the page's own title */
  .s3607-page-title{
    font-family:Georgia, 'Times New Roman', serif; font-weight:600;
    font-size:clamp(30px,4vw,44px); line-height:1.08; letter-spacing:-.02em; margin:0 0 18px;
  }

  /* the image lightbox's caption and its "3 of 14" counter */
  #lb-cap{ font-size:15px; line-height:1.5; margin:0; }
  #lb-count{
    font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, 'Liberation Mono', monospace;
    font-size:11px; letter-spacing:.16em; text-transform:uppercase; margin:0;
  }

/* V2 opening. Scoped so the remaining sections can be reviewed independently. */
body.v2-opening::after{display:none}
.v2-opening header{background:#131a22!important;backdrop-filter:none!important}
.v2-opening [data-paper]{position:relative;background-color:#eee9dd;background-image:linear-gradient(rgba(49,76,78,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(49,76,78,.055) 1px,transparent 1px),radial-gradient(circle at 14% 18%,rgba(201,162,75,.10),transparent 28%),radial-gradient(circle at 82% 62%,rgba(31,163,158,.07),transparent 32%);background-size:32px 32px,32px 32px,100% 100%,100% 100%}
.v2-opening [data-paper]::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.25;background-image:repeating-linear-gradient(177deg,transparent 0 13px,rgba(61,74,69,.045) 14px,transparent 15px 29px);mix-blend-mode:multiply}
.v2-opening [data-paper]::after{content:"";position:absolute;top:54px;right:6%;width:170px;height:170px;border:1px solid rgba(17,100,96,.16);border-radius:50%;transform:rotate(-12deg);pointer-events:none;box-shadow:0 0 0 13px rgba(17,100,96,.035),0 0 0 28px rgba(17,100,96,.025)}
.v2-opening [data-paper]>section,.v2-opening [data-paper]>div{position:relative;z-index:1}
.v2-opening [data-paper] .sec-rule{opacity:.7}
.v2-opening [data-paper] article,.v2-opening [data-paper] .card-drawn{background:rgba(255,253,247,.76)}
.v2-opening #maker figure[role="button"]{cursor:pointer!important}
.v2-opening #maker figure[role="button"]::after{content:"Open gallery";position:absolute;right:12px;bottom:12px;padding:6px 9px;background:rgba(19,26,34,.78);color:#f3eee3;font:10px ui-monospace,monospace;letter-spacing:.1em;text-transform:uppercase;opacity:0;transform:translateY(4px);transition:opacity .25s,transform .25s;pointer-events:none}
.v2-opening #maker figure[role="button"]:hover::after,.v2-opening #maker figure[role="button"]:focus-visible::after{opacity:1;transform:translateY(0)}
.v2-opening #tools>div[style*="repeat(auto-fit"]{display:grid!important;grid-template-columns:repeat(12,minmax(0,1fr))!important;gap:16px!important}
.v2-opening #tools>div[style*="repeat(auto-fit"]>article{grid-column:span 4;border:0!important;border-top:3px solid #9bb8ad!important;border-radius:2px!important;background:rgba(255,253,247,.78)!important;padding:28px 28px 24px!important;box-shadow:0 7px 20px rgba(55,67,59,.08);transition:transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .3s}
.v2-opening #tools>div[style*="repeat(auto-fit"]>article:first-child{grid-column:span 7;background:#0a2523!important;border-top-color:#c9a24b!important;color:#fff}
.v2-opening #tools>div[style*="repeat(auto-fit"]>article:nth-child(2){grid-column:span 5}
.v2-opening #tools>div[style*="repeat(auto-fit"]>article:hover{transform:translateY(-4px);box-shadow:0 15px 30px rgba(55,67,59,.14)}
.v2-opening #tools>div[style*="repeat(auto-fit"]>article h3{font:400 25px/1.1 Georgia,serif;letter-spacing:-.025em}
.v2-opening #tools>div[style*="repeat(auto-fit"]>article:first-child h3{color:#fff}
.v2-opening #tools>div[style*="repeat(auto-fit"]>article a{transition:background .25s,transform .25s;display:inline-flex!important;align-items:center;gap:14px}
.v2-opening #tools>div[style*="repeat(auto-fit"]>article a::after{content:"↗";font-size:16px}
.v2-opening #tools>div[style*="repeat(auto-fit"]>article a:hover{transform:translateY(-2px);background:#1fa39e!important}
@media(max-width:820px){.v2-opening #tools>div[style*="repeat(auto-fit"]{grid-template-columns:1fr!important}.v2-opening #tools>div[style*="repeat(auto-fit"]>article,.v2-opening #tools>div[style*="repeat(auto-fit"]>article:first-child,.v2-opening #tools>div[style*="repeat(auto-fit"]>article:nth-child(2){grid-column:1}}
.maker-carousel-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:26px 0 14px;color:#56706e;font:10px ui-monospace,monospace;letter-spacing:.13em;text-transform:uppercase}
.maker-carousel-controls{display:flex;gap:7px}
.maker-carousel-controls button{width:42px;height:36px;border:1px solid #a6b9b1;background:rgba(255,253,247,.55);color:#116460;font:20px Georgia,serif;cursor:pointer;transition:background .25s,color .25s,transform .25s}
.maker-carousel-controls button:hover{background:#116460;color:#fff;transform:translateY(-2px)}
.maker-carousel{position:relative;display:flex;gap:28px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:0;padding:4px 0 14px;scrollbar-width:none;scroll-behavior:smooth}
.maker-carousel>figure{padding:7px;background:rgba(255,253,247,.76);border:1px solid rgba(86,112,110,.28);box-shadow:0 5px 16px rgba(58,70,62,.12)}
.maker-carousel::-webkit-scrollbar{display:none}
.maker-carousel>figure{flex:0 0 clamp(250px,29vw,330px);scroll-snap-align:start}
@media(max-width:820px){.maker-carousel{scroll-padding-inline:24px}.maker-carousel>figure{flex-basis:76vw}.maker-carousel-heading{margin-top:22px}}
.v2-opening header>div{max-width:1320px!important;padding-inline:48px!important;height:80px!important}
.v2-opening header nav{font-family:system-ui!important;font-size:13px!important;letter-spacing:0!important;text-transform:none!important;gap:30px!important}
.v2-opening header nav a{color:#c5cdd0!important;transition:color .25s}
.v2-opening header nav a:hover{color:#f2ead9!important}
.v2-opening header>div>a>span:last-child{font-size:23px!important;font-weight:400!important}
.v2-opening .opening-screen{min-height:calc(100dvh - 81px);background:#131a22}
.v2-opening #top.opening{padding:40px 48px 22px;display:flex;flex-direction:column;justify-content:center;color:#f3eee3;background:#131a22;overflow:hidden}
.opening-grid{width:100%;max-width:1224px;margin:auto;display:grid;grid-template-columns:1.08fr 1fr;gap:clamp(44px,7vw,104px);align-items:center}
.opening-copy{padding-block:0}
.opening-eyebrow{display:flex;align-items:center;gap:12px;font:11px/1.5 ui-monospace,monospace;letter-spacing:.13em;text-transform:uppercase;color:#bcc7c7;margin:0 0 22px}
.opening-eyebrow>span{width:6px;height:6px;background:#c9a24b;border-radius:50%;flex-shrink:0}
.opening-title{font:400 clamp(54px,5.8vw,84px)/.99 Georgia,serif;letter-spacing:-.055em;margin:0 0 22px;text-wrap:balance}
.opening-title em{font-weight:400;color:#82c4b5;letter-spacing:-.06em}
.opening-intro{max-width:40ch;font:400 16px/1.65 system-ui,sans-serif;color:#b9c4c8;margin:0 0 22px}
.opening-actions{display:flex;flex-wrap:wrap;align-items:center;gap:20px 24px}
.opening-button{display:inline-flex;align-items:center;gap:24px;padding:7px 8px 7px 21px;border-radius:40px;background:#eee6d6;color:#18262b;font:600 13px/1.5 system-ui,sans-serif;transition:background .3s,transform .3s cubic-bezier(.2,.8,.2,1)}
.opening-button>span{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#d8d3c4;font-size:20px;transition:transform .3s}
.opening-button:hover{background:#fff6e4;color:#18262b;transform:translateY(-2px)}
.opening-button:hover>span{transform:rotate(45deg)}
.opening-button:active{transform:scale(.98)}
.opening-text-link{color:#ccd6d5;font:400 12px/1.6 system-ui,sans-serif;padding-block:12px;border-bottom:1px solid #536360}
.opening-text-link>span{margin-left:10px}
.opening-text-link:hover{color:#82c4b5}
.opening-note{font:400 11px/1.7 system-ui,sans-serif;color:#94a4a9;max-width:44ch;margin:22px 0 0}
.opening-work{min-width:0;padding-top:8px}
.opening-work-heading{display:flex;justify-content:space-between;margin-bottom:12px;color:#acb9bc;font:10px/1.5 ui-monospace,monospace;letter-spacing:.16em;text-transform:uppercase}
.opening-photo{display:block;position:relative;border-radius:3px;overflow:hidden;background:#57422f;isolation:isolate}
.opening-photo>img{display:block;width:100%;height:clamp(260px,25vw,390px);object-fit:cover;object-position:50% 55%;transition:transform .8s cubic-bezier(.2,.8,.2,1)}
.opening-photo:hover>img{transform:scale(1.035)}
.opening-photo:after{content:"";position:absolute;inset:35% 0 0;background:linear-gradient(transparent,rgba(12,21,22,.85));z-index:0;pointer-events:none}
.opening-photo-caption{position:absolute;inset:auto 25px 22px;z-index:1;display:flex;justify-content:space-between;align-items:end;color:#fff2de;font:400 22px/1.3 Georgia,serif}
.opening-photo-caption small{display:block;font:10px/1.5 ui-monospace,monospace;letter-spacing:.16em;text-transform:uppercase;margin-bottom:7px}
.opening-photo-arrow{width:36px;height:36px;border:1px solid #d7c9b88c;border-radius:50%;display:grid;place-items:center;font:20px system-ui}
.opening-play{display:flex;align-items:center;gap:17px;padding:14px 0;margin-top:12px;border-block:1px solid #354347;color:#dce6df;transition:border-color .3s}
.opening-play>img{width:108px;height:74px;object-fit:cover;border-radius:2px}
.opening-play>span:nth-child(2){display:grid;gap:4px}
.opening-play small{font:9px/1.5 ui-monospace,monospace;text-transform:uppercase;letter-spacing:.09em;color:#94aaa6}
.opening-play strong{font:400 23px/1.1 Georgia,serif}
.opening-play>span>span{font:11px/1.5 system-ui;color:#aab9ba}
.opening-play-arrow{font:23px system-ui;margin-left:auto;padding-right:8px;color:#82c4b5}
.opening-play:hover{border-color:#82c4b5;color:#fff2de}
.opening-signature{width:100%;max-width:1224px;margin:26px auto 0;padding-top:16px;border-top:1px solid #354347;display:flex;align-items:center;justify-content:space-between;gap:25px}
.opening-signature p{font:400 12px/1.6 Georgia,serif;letter-spacing:.015em;color:#c7b990;margin:0}
.opening-signature p span{margin-inline:10px;color:#678e83}
.opening-signature a{display:flex;gap:25px;align-items:center;color:#a8b8b8;font:20px system-ui}
.opening-signature a span{font:10px ui-monospace,monospace;text-transform:uppercase;letter-spacing:.09em}
.opening-craft{max-width:1224px;width:100%;margin:12px auto 0;color:#91a2a5;font:italic 11px/1.5 Georgia,serif}
.opening-skip{position:fixed;left:20px;top:-100px;padding:15px;background:#eee6d6;color:#131a22;z-index:110}
.opening-skip:focus{top:10px}
.v2-opening :is(a,button):focus-visible{outline:2px solid #82c4b5;outline-offset:5px}
@keyframes opening-arrive{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
.opening-copy,.opening-work{animation:opening-arrive .8s cubic-bezier(.2,.8,.2,1) both}
.opening-work{animation-delay:.1s}
@media(min-width:1500px){.v2-opening #top.opening{padding-block:60px 30px}.opening-signature{margin-top:55px}}
@media(max-width:1000px){
 .v2-opening header>div{padding-inline:28px!important}.v2-opening #top.opening{padding-inline:28px}
 .opening-grid{gap:36px}.opening-title{font-size:64px}.opening-actions{gap:12px}.opening-intro{font-size:15px}
 .opening-play>img{width:82px}.opening-play small{font-size:8px}
}
@media(max-width:820px){
 .v2-opening header>div{height:auto!important;min-height:76px;flex-wrap:wrap;padding-block:12px!important;gap:8px!important}
 .v2-opening header nav{flex-basis:100%!important;gap:10px!important;justify-content:space-between}
 .v2-opening header nav a{font-size:12px;letter-spacing:0;padding:10px 4px;min-height:24px}
 .v2-opening #top.opening>.opening-grid{grid-template-columns:minmax(0,1fr)!important;gap:35px}
 .v2-opening #top.opening{padding:30px 24px 26px}.v2-opening .opening-screen{padding-bottom:0;min-height:0}
 .opening-title{font-size:clamp(60px,11vw,86px)}.opening-eyebrow{margin-bottom:24px;font-size:10px}
 .opening-copy{padding:0}.opening-intro{max-width:43ch;font-size:16px}.opening-note{max-width:48ch}
 .opening-photo>img{height:auto;aspect-ratio:1.3;object-fit:cover}.opening-work{padding:0}
 .opening-play>img{width:100px}.opening-play small{font-size:9px}
 .opening-signature{margin-top:27px;align-items:start}.opening-signature p{max-width:27ch;line-height:1.8}
 .opening-signature p span{margin-inline:4px}.opening-signature a span{display:none}.opening-craft{max-width:45ch;margin-left:0}
 .v2-opening{padding-bottom:0!important}
 .v2-opening #contact p[style*="white-space:nowrap"]{white-space:normal!important}
}
@media(prefers-reduced-motion:reduce){
 html:has(.v2-opening){scroll-behavior:auto}
 .opening-copy,.opening-work{animation:none}.opening-photo>img,.opening-button,.opening-button>span{transition:none}
}
/* Portfolio review: framed objects, quiet paper, and readable detail pages. */
.maker-carousel>figure{margin:0;position:relative;box-sizing:border-box;aspect-ratio:4/5;border-radius:4px;overflow:hidden}
.maker-card-link{display:block;position:relative;height:100%;overflow:hidden;color:inherit}
.maker-card-link img{transition:transform .45s ease}
.maker-card-link:hover img{transform:scale(1.025)}
.maker-card-link:focus-visible{outline:3px solid #116460;outline-offset:-3px}
.maker-card-link::after{content:'↗';position:absolute;right:12px;top:12px;width:32px;height:32px;display:grid;place-items:center;background:#f3eee3;color:#116460;border-radius:50%}
.craft-main{max-width:1140px;width:100%;margin:auto;padding:56px 32px 80px;box-sizing:border-box}
.craft-page{background-color:#eee9dd;background-image:linear-gradient(rgba(66,86,76,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(66,86,76,.055) 1px,transparent 1px);background-size:32px 32px}
.craft-back{display:inline-block;margin-bottom:40px;color:#116460}
.craft-intro{max-width:56ch;color:#52615c;margin-bottom:36px}
.craft-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px;align-items:start}
.craft-gallery figure{margin:0;padding:10px;background:#faf7ef;border:1px solid #cecabb;box-shadow:0 12px 32px #26352b0d}
.craft-gallery figure:first-child{grid-column:1/-1}
.craft-gallery img{display:block;width:100%;max-height:70vh;object-fit:contain;background:#e4e0d5}
.craft-gallery figcaption{padding:16px 8px 8px;font:14px/1.5 system-ui;color:#52615c}
.craft-nav{display:flex;flex-wrap:wrap;gap:12px 24px;margin-top:48px;padding-top:24px;border-top:1px solid #c5c5b7}
.craft-nav a{padding:8px 0;color:#116460}.craft-nav [aria-current]{border-bottom:2px solid #116460}
.v2-opening #about .s3607-body,.v2-opening #principles>.s3607-body{max-width:72ch!important}
.v2-opening #contact .s3607-label{white-space:normal!important}
@media(max-width:640px){.craft-main{padding:32px 22px 56px}.craft-gallery{grid-template-columns:1fr;gap:24px}.maker-carousel-heading{align-items:flex-start;flex-direction:column}.maker-carousel{scroll-padding-inline:0}}
@media(prefers-reduced-motion:reduce){.maker-card-link img{transition:none}.maker-card-link:hover img{transform:none}.maker-carousel{scroll-behavior:auto}}
@media(max-width:640px){.v2-opening [style*="grid-template-columns:repeat(auto-fit"]{grid-template-columns:minmax(0,1fr)!important}.v2-opening section{box-sizing:border-box;min-width:0}.v2-opening #tools>div[style*="repeat(auto-fit"]>article{min-width:0}.v2-opening .maker-carousel>figure{flex-basis:76vw}.v2-opening #maker{overflow:hidden}}
.craft-about{align-self:center;padding:28px 32px;background:#faf7ef;border:1px solid #cecabb;color:#52615c}
.craft-about .s3607-label{color:#116460}.craft-about h2{color:#131a22}.craft-about .s3607-body:last-child{margin-bottom:0}
@media(max-width:640px){.craft-about{padding:24px}}
.craft-gallery.lithophane-layout{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);align-items:center}
.lithophane-layout>figure:first-child{grid-column:auto}
.lithophane-stack{position:relative;aspect-ratio:4/5;overflow:hidden;background:#131a22}
.craft-gallery .lithophane-stack img{position:absolute;inset:0;width:100%;height:100%;max-height:none;object-fit:cover}
.lithophane-lit{opacity:1}
.lithophane-comparison figcaption{display:grid;gap:12px}
#lithophane-light{width:100%;margin:0;accent-color:#116460;cursor:pointer}
@media(max-width:760px){.craft-gallery.lithophane-layout{grid-template-columns:minmax(0,1fr)}}
button.lithophane-stack{display:block;width:100%;padding:0;border:0;cursor:pointer}
button.lithophane-stack:focus-visible{outline:3px solid #116460;outline-offset:4px}
.print-piece{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);align-items:center;gap:32px;margin-top:56px;padding-top:40px;border-top:1px solid #cecabb}
.print-piece figure{margin:0;padding:10px;background:#faf7ef;border:1px solid #cecabb}
.print-piece img{display:block;width:100%;max-height:640px;object-fit:contain}
@media(max-width:760px){.print-piece{grid-template-columns:minmax(0,1fr);gap:24px}}
/* Full-size 3D project presentation. */
.print-showcase .craft-main{max-width:1320px}
.project-index{display:flex;flex-wrap:wrap;gap:12px 28px;margin:0 0 40px;padding:18px 0;border-block:1px solid #cecabb;font:13px/1.6 system-ui}
.project-index a{color:#116460;padding:5px 0}
.print-showcase .print-piece,.print-showcase .lithophane-layout{min-height:calc(100svh - 160px);gap:clamp(32px,5vw,72px);scroll-margin-top:120px;padding-block:48px;box-sizing:border-box}
.print-showcase .print-piece{margin-top:0}
.print-showcase .craft-about{padding:32px;max-width:46ch}
.print-showcase .print-piece img{max-height:70svh}
.print-showcase .lithophane-stack{aspect-ratio:auto;height:clamp(360px,65svh,700px)}
.print-showcase .lithophane-stack img{object-fit:contain}
@media(max-width:760px){.print-showcase .print-piece,.print-showcase .lithophane-layout{min-height:0;padding-block:32px;gap:24px}.print-showcase .craft-about{max-width:none}.print-showcase .lithophane-stack{height:440px;max-height:65svh}.project-index{gap:8px 20px}}
.layout-choice{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:28px}
.layout-choice a{padding:10px 16px;border:1px solid #a6b9b1;color:#116460;background:#faf7ef;font:14px system-ui}
.print-compact .print-piece,.print-compact .lithophane-layout{min-height:0;padding-block:24px;gap:32px;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr)}
.print-compact .lithophane-stack{height:280px;max-height:none}
.print-compact .print-piece img{height:280px;max-height:none}
.print-compact .craft-about{max-width:none;padding:22px 26px}
.print-compact .craft-about .s3607-body{font-size:15px;line-height:1.5;margin:8px 0 12px}
.print-compact .craft-about .s3607-card-title{margin:12px 0 4px}
.print-compact .craft-about .s3607-subhead{margin-bottom:12px}
@media(max-width:760px){.print-compact .print-piece,.print-compact .lithophane-layout{grid-template-columns:minmax(0,1fr)}.print-compact .lithophane-stack,.print-compact .print-piece img{height:340px}}
.layout-choice{align-items:center;font:14px system-ui;color:#52615c}
.layout-choice select{padding:10px 36px 10px 14px;background:#faf7ef;color:#116460;border:1px solid #a6b9b1;border-radius:3px;font:inherit;cursor:pointer}
.layout-choice select:focus-visible{outline:2px solid #116460;outline-offset:3px}
/* Strong hierarchy for portfolio titles and project stories. */
.craft-page .craft-main h1.s3607-page-title{color:#131a22;font-weight:700}
.craft-page .craft-about h2.s3607-subhead{color:#102d2b;font-weight:700;font-size:clamp(25px,2.4vw,32px);line-height:1.2;margin:8px 0 24px}
.craft-page .craft-about h3.s3607-card-title{color:#103f3b;font-weight:750;font-size:17px;line-height:1.35;margin:20px 0 7px}
.craft-page .craft-about>.s3607-label{color:#315b56;font-weight:650}
.craft-page .craft-about>.s3607-body{color:#4b5859}
.print-compact .craft-about h2.s3607-subhead{margin-bottom:18px}
.print-compact .craft-about h3.s3607-card-title{margin-top:15px}
.painting-toggle{display:block;width:100%;padding:0;border:0;background:#e4e0d5;cursor:pointer}
.painting-toggle:focus-visible{outline:3px solid #116460;outline-offset:4px}
.print-piece figcaption{padding:14px 8px 6px;font:14px/1.5 system-ui;color:#52615c}
.portfolio-directory{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-block:32px}
.portfolio-directory a{padding:26px;background:#faf7ef;border:1px solid #cecabb;color:#103f3b;font:600 20px/1.4 Georgia,serif}
.portfolio-directory a:hover{border-color:#116460;background:#f0f3eb}

.portfolio-autoplay-setting { display: inline-flex; align-items: center; gap: .5rem; margin-left: 1rem; cursor: pointer; }
.portfolio-autoplay-setting input { accent-color: #123c35; width: 1rem; height: 1rem; }
.project-autoplay-control { margin: .5rem .75rem .75rem; padding: .5rem .85rem; border: 1px solid #52675f; border-radius: 4px; background: #f8f5ec; color: #123c35; font: inherit; font-size: .85rem; cursor: pointer; }
.project-autoplay-control:hover { background: #e8e5d9; }
.project-autoplay-control:focus-visible { outline: 2px solid #123c35; outline-offset: 3px; }
@media (max-width: 600px) { .portfolio-autoplay-setting { margin-left: 0; } }

.curator-projects.craft-main { padding: 0; margin: 2.5rem 0; max-width: none; }
.curator-projects .curator-identity { display:flex; flex-direction:column; justify-content:center; align-items:flex-start; padding:28px; gap:18px; min-height:260px; }
.curator-projects .curator-identity img { width:96px; height:96px; object-fit:contain; }
.curator-projects .curator-identity h2 { overflow-wrap:anywhere; margin:0; }
.curator-projects .curator-identity figcaption { padding:0; }

.quilt-review-id { padding:6px 10px; background:#123c35; color:#fff; font-weight:700; display:inline-block; margin-bottom:8px; }
.quilt-review-id[hidden] { display:none; }

#quilt-q04-next { aspect-ratio:1; width:100%; overflow:hidden; display:block; }
#quilt-q04-next img { width:100%; height:100%; max-height:none; object-fit:contain; }

#quilt-q05-next { aspect-ratio:1; width:100%; overflow:hidden; display:block; }
#quilt-q05-next img { width:100%; height:100%; max-height:none; object-fit:contain; }

.quilt-q14-frame { aspect-ratio:1; width:100%; overflow:hidden; }
.quilt-q14-frame img { width:100%; height:100%; max-height:none; object-fit:contain; transform:rotate(-90deg); }

.quilt-framed .print-piece { min-height:0; align-items:start; margin-top:24px; padding-block:24px; }
.quilt-framed .print-piece figure { align-self:start; min-width:0; }
.quilt-framed .painting-toggle { background:transparent; }
.quilt-framed .quilt-q14-frame { aspect-ratio:auto; }

#travel,#photo-collection { scroll-margin-top:110px; }
.photography-travel { margin-top:48px; padding-top:32px; border-top:1px solid #cecabb; }
.destination-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:24px; }
.destination-panel { display:block; padding:12px; background:#faf7ef; border:1px solid #cecabb; color:#123c35; text-decoration:none; }
.destination-panel img { width:100%; height:180px; object-fit:cover; }
.destination-panel h3 { margin:16px 0 8px; }

.photo-category { scroll-margin-top:110px; margin-top:40px; }
.photo-category > h2 { border-bottom:1px solid #cecabb; padding-bottom:14px; }

.home-location-labels { display:flex; flex-wrap:wrap; gap:16px 32px; margin:16px 0 24px; color:#123c35; font-weight:600; }
.home-location-labels small { display:block; margin-top:3px; color:#52615c; font-size:13px; font-weight:400; }

.photo-group-location { margin:0 0 12px; padding:8px 10px; color:#123c35; border-bottom:1px solid #cecabb; font-size:15px; font-weight:700; }
