:root {
  --ink:#172f3b; --muted:#5c6b70; --blue:#193e59; --paper:#faf9f6;
  --cream:#efeee8; --line:#d7ddd9; --white:#fff; --gold:#b49c72;
  --font:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --serif:"Iowan Old Style","Palatino Linotype",Georgia,serif;
  --space:clamp(1.25rem,4vw,4rem); --max:1320px;
}
* { box-sizing:border-box; }
body { margin:0; background:var(--paper); color:var(--ink); font:16px/1.65 var(--font); -webkit-font-smoothing:antialiased; }
body.modal-open { overflow:hidden; }
a { color:inherit; text-underline-offset:.3em; text-decoration-thickness:1px; }
a:hover { text-decoration-thickness:2px; }
button,input,textarea { font:inherit; }
button,.button { min-height:48px; cursor:pointer; }
button,.button { border:1px solid var(--blue); border-radius:0; padding:.8rem 1.25rem; background:var(--blue); color:var(--white); font-size:.86rem; font-weight:550; text-decoration:none; display:inline-flex; align-items:center; justify-content:space-between; gap:2rem; transition:background-color .18s,color .18s,border-color .18s; }
button:hover,.button:hover { background:#0f2d43; color:white; }
.secondary { background:transparent; color:var(--ink); border-color:#aebcbf; }
button:disabled { opacity:.5; cursor:not-allowed; }
:focus-visible { outline:3px solid #a76816; outline-offset:5px; }
h1,h2,h3,p,figure { margin:0; }
h1,h2,h3 { font-family:var(--serif); font-weight:400; line-height:1.08; letter-spacing:-.045em; }
h1 { font-size:clamp(3.2rem,5.7vw,5.7rem); }
h2 { font-size:clamp(2.35rem,3.7vw,3.6rem); }
h3 { font-size:clamp(1.7rem,2.4vw,2.35rem); }
h1 em,h2 em { font-weight:400; }
p+p { margin-top:1.1rem; }
.wrap { width:min(var(--max),calc(100% - var(--space)*2)); margin-inline:auto; }
.site-header { border-bottom:1px solid var(--line); background:var(--paper); }
.navigation { display:flex; align-items:center; justify-content:space-between; min-height:100px; gap:2rem; }
.logo { display:inline-flex; flex-shrink:0; }
.logo img { width:205px; height:auto; }
.nav-links { display:flex; gap:2.25rem; }
.nav-links a { text-decoration:none; font-size:.84rem; padding-block:.6rem; position:relative; }
.nav-links a::after { content:""; position:absolute; left:0; right:0; bottom:0; height:1px; background:var(--blue); transform:scaleX(0); transform-origin:left; transition:transform .18s; }
.nav-links a[aria-current]::after,.nav-links a:hover::after { transform:scaleX(1); }
.menu-toggle { display:none; background:transparent; padding:0; border:0; color:var(--ink); min-width:44px; min-height:44px; justify-content:end; }
.menu-toggle:hover { background:transparent; color:var(--blue); }
.menu-toggle svg { stroke:currentColor; stroke-width:1.6; fill:none; }
.hero { display:grid; grid-template-columns:.9fr 1.1fr; align-items:center; gap:4rem; padding-block:3rem 5rem; }
.eyebrow { text-transform:uppercase; font-size:.66rem; font-weight:650; letter-spacing:.19em; line-height:1.5; margin-bottom:1.3rem; }
.hero .eyebrow::before { content:""; display:block; width:34px; height:2px; background:var(--gold); margin-bottom:1.4rem; }
.hero h1 { margin-bottom:1.8rem; }
.lead { font-size:clamp(1.08rem,1.4vw,1.2rem); color:var(--muted); max-width:39rem; line-height:1.75; }
.actions { display:flex; flex-wrap:wrap; gap:.75rem; margin-top:2rem; }
.fine { font-size:.8rem; color:var(--muted); }
.hero-note { margin-top:2.5rem; font-size:.75rem; }
.hero-art>img { display:block; width:100%; height:auto; aspect-ratio:1; object-fit:cover; }
figcaption { font-size:.74rem; color:var(--muted); margin-top:.8rem; line-height:1.6; }
.section { padding-block:4.5rem; }
.featured-section { border-top:1px solid var(--line); }
.section-heading { display:flex; align-items:end; justify-content:space-between; gap:2rem; margin-bottom:2.5rem; }
.section-heading .eyebrow { margin-bottom:.75rem; }
.section-heading>p { font-size:.86rem; color:var(--muted); }
.section-bottom { display:flex; justify-content:center; margin-top:2.5rem; }
.text-link { font-size:.86rem; display:inline-block; }
.licensing-band { background:var(--blue); color:var(--paper); }
.band-inner { display:grid; grid-template-columns:1.1fr .9fr; gap:6rem; padding-block:4.5rem; align-items:center; }
.band-inner>div>p:not(.eyebrow) { max-width:29rem; margin-bottom:1.8rem; color:#e2e8ea; }
.band-inner .eyebrow { color:#d1dbdf; }
.band-inner .button { background:var(--paper); color:var(--blue); }
.studio-grid { display:grid; grid-template-columns:1fr 1fr; gap:2.5rem; }
.studio-grid article>img { width:100%; aspect-ratio:1.35; object-fit:cover; display:block; margin-bottom:1.7rem; }
.studio-grid article>img[src*="couch-process"] { object-fit:contain; background:var(--cream); }
.studio-grid .app-tour { margin-bottom:1.4rem; }
.studio-grid .app-tour img { aspect-ratio:1.35; object-fit:contain; }
.studio-grid .eyebrow { margin-bottom:.7rem; }
.studio-grid h3 { max-width:28rem; margin-bottom:1rem; }
.studio-grid p:not(.eyebrow) { max-width:30rem; color:var(--muted); margin-bottom:1rem; }
.page-intro { padding-top:4.5rem; }
.page-intro h1 { margin-bottom:1.5rem; }
.page-intro .lead { max-width:44rem; }
.gallery { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:2.5rem 1.4rem; }
.pattern-card { position:relative; display:block; text-align:left; padding:0; border:0; background:none; color:var(--ink); width:100%; font-weight:400; }
.pattern-card:hover { background:none; color:var(--blue); }
.pattern-card img { width:100%; height:auto; aspect-ratio:1; object-fit:cover; display:block; margin-bottom:.9rem; background:var(--cream); }
.pattern-card strong { font-size:.87rem; font-weight:550; display:block; line-height:1.5; max-width:95%; }
.pattern-card small { color:var(--muted); display:block; font-size:.72rem; margin-top:.25rem; }
.pattern-card:hover img { outline:1px solid var(--blue); outline-offset:4px; }
.gallery-status:empty,.form-status:empty { display:none; }
.gallery-status { padding-block:1.1rem; margin-top:1rem; font-size:.8rem; color:var(--muted); border-bottom:1px solid var(--line); }
.featured-section .gallery-status { border:0; padding:0; margin:0; }
.gallery-status a { display:inline-block; margin-top:.5rem; }
.search { max-width:45rem; margin-bottom:2.5rem; }
.search label { display:block; margin-bottom:.6rem; font-size:.83rem; }
.search-row { display:flex; gap:.75rem; }
.search-row input { min-width:0; flex:1; }
.pagination { display:flex; align-items:center; justify-content:center; gap:.6rem; margin-top:2rem; flex-wrap:wrap; }
.pagination:empty { display:none; }
.pagination button { min-width:44px; padding:.6rem .9rem; }
.pagination button[aria-current] { background:var(--blue); color:white; }
.form-layout { display:grid; grid-template-columns:1fr 1.5fr; gap:7rem; padding-block:4rem 6rem; }
.form-layout aside { max-width:23rem; }
.form-layout h2 { font-size:2.35rem; margin-bottom:1.2rem; }
.form-layout aside .fine { margin-top:2rem; }
.form-layout aside .text-link { margin-top:1rem; }
.inquiry-form { padding:2.5rem; background:var(--white); border-top:2px solid var(--blue); }
.field { margin-bottom:1rem; }
label { font-size:.9rem; font-weight:550; }
input,textarea { border:1px solid #b5c0c2; border-radius:0; padding:1rem; width:100%; background:var(--white); color:var(--ink); font-size:.95rem; }
input::placeholder,textarea::placeholder { color:#5c6b70; opacity:1; }
input:focus,textarea:focus { border-color:var(--blue); }
textarea { resize:vertical; }
.field .fine { margin-top:.5rem; }
.form-status { margin-bottom:1.5rem; font-size:.9rem; border-left:3px solid var(--blue); padding:.7rem 1rem; background:var(--cream); }
.form-status.error { border-color:#a42e25; }
.inquiry-form>button { margin-top:1.3rem; }
.trap { position:absolute; left:-10000px; top:auto; width:1px; height:1px; overflow:hidden; }
.prose { max-width:760px; }
.prose h2 { font-family:var(--font); font-size:1.3rem; letter-spacing:0; margin-block:2rem 1rem; }
.prose h2:first-child { margin-top:0; }
.process-wide img { width:100%; height:auto; display:block; }
.process-copy { display:grid; grid-template-columns:1fr 1fr; gap:4rem; margin-top:2.5rem; }
.process-copy p { max-width:37rem; color:var(--muted); }
.process-copy h3 { margin-bottom:1rem; }
.process-copy>p+p { margin:0; }
.film-section { background:var(--cream); padding-block:4rem; }
.film-layout { display:grid; grid-template-columns:1fr 1fr; gap:6rem; align-items:center; }
.film-layout>div { max-width:32rem; }
.film-layout h2 { margin-bottom:1.7rem; }
.film-layout p { color:var(--muted); }
.studio-film { justify-self:center; width:min(100%,360px); }
.studio-film video { display:block; width:100%; height:auto; aspect-ratio:9/16; background:#101820; }
.app-tour img { display:block; width:100%; height:auto; background:var(--cream); }
.app-tour figcaption { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.text-button { padding:.25rem 0; min-height:44px; border:0; border-bottom:1px solid var(--line); color:var(--ink); background:transparent; gap:0; font-size:.75rem; white-space:nowrap; }
.text-button:hover { background:none; color:var(--blue); border-color:var(--blue); }
.advertising-section { border-top:1px solid var(--line); }
.advertising-grid { display:grid; grid-template-columns:1.2fr .8fr; gap:3rem; align-items:start; }
.advertising-grid img { display:block; width:100%; height:auto; max-height:680px; object-fit:contain; }
.about-layout { display:grid; grid-template-columns:.9fr 1.1fr; gap:5rem; align-items:start; }
.portrait img { display:block; width:100%; height:auto; aspect-ratio:4/5; object-fit:cover; object-position:58% 45%; }
.about-copy h2 { margin-bottom:1.7rem; }
.about-copy p { max-width:36rem; }
footer { background:var(--cream); border-top:1px solid var(--line); padding-top:3rem; }
.footer-main { display:grid; grid-template-columns:1.2fr 1fr 1fr 1fr; gap:2rem; padding-bottom:3rem; }
.footer-main .logo img { width:175px; }
.footer-main p { font-family:var(--serif); font-size:1.5rem; line-height:1.25; }
.footer-main nav { display:flex; flex-direction:column; align-items:start; gap:.4rem; font-size:.82rem; }
.footer-bottom { padding-block:1rem; border-top:1px solid var(--line); display:flex; justify-content:space-between; font-size:.68rem; color:var(--muted); }
[data-studio-links] a { display:block; margin-top:.5rem; font-size:.82rem; }
dialog { width:min(1000px,calc(100% - 2rem)); max-height:90dvh; padding:1.5rem; border:0; color:var(--ink); background:var(--paper); }
dialog::backdrop { background:rgba(10,23,30,.78); }
.dialog-header { display:flex; justify-content:space-between; align-items:center; gap:1rem; margin-bottom:1.5rem; }
.dialog-header .eyebrow { margin:0; }
.preview-layout { display:grid; grid-template-columns:1.2fr 1fr; gap:2rem; align-items:center; }
.preview-layout>img { width:auto; max-width:100%; height:auto; max-height:65vh; object-fit:contain; justify-self:center; }
.preview-copy h2 { font-size:2.6rem; margin-bottom:1rem; }
.preview-copy p { font-size:.9rem; }
.preview-copy .actions { flex-direction:column; align-items:start; }
.sr-only,.skip-link:not(:focus) { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.skip-link:focus { position:absolute; z-index:100; top:1rem; left:1rem; background:white; padding:1rem; }
@media(max-width:1050px) {
  .hero { gap:2.5rem; } .nav-links { gap:1.3rem; }
  .form-layout,.film-layout { gap:3rem; } .about-layout { gap:3rem; }
  .gallery { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media(max-width:760px) {
  .navigation { min-height:80px; flex-wrap:wrap; gap:0; padding-block:1rem; }
  .logo img { width:165px; } .menu-toggle { display:inline-flex; }
  .nav-links { display:flex; width:100%; flex-direction:column; gap:0; padding-top:1rem; }
  .nav-links a { padding:.8rem 0; font-size:.95rem; }
  .js .nav-links:not(.open) { display:none; }
  .hero { grid-template-columns:1fr; padding-block:2.5rem 3rem; gap:2rem; }
  .hero h1 { font-size:clamp(3.35rem,10vw,4.6rem); }
  .hero-note { margin-top:1.6rem; } .hero-copy { max-width:36rem; }
  .section { padding-block:3rem; }
  .section-heading { align-items:start; flex-direction:column; gap:1rem; }
  .section-heading>p { display:none; }
  .band-inner { grid-template-columns:1fr; gap:2rem; padding-block:3rem; }
  .studio-grid { grid-template-columns:1fr; gap:3rem; }
  .gallery { grid-template-columns:repeat(2,minmax(0,1fr)); gap:2rem 1rem; }
  .pattern-card strong { font-size:.8rem; }
  .form-layout { grid-template-columns:1fr; gap:2rem; padding-block:3rem; }
  .form-layout aside { max-width:none; } .inquiry-form { padding:1.4rem; }
  .page-intro { padding-top:3rem; }
  .process-copy,.film-layout,.advertising-grid,.about-layout { grid-template-columns:1fr; gap:2rem; }
  .process-copy { margin-top:1.7rem; } .film-section { padding-block:3rem; }
  .studio-film { width:min(100%,360px); }
  .app-tour figcaption { font-size:.65rem; } .app-tour figcaption>span { max-width:65%; }
  .advertising-grid { gap:2.5rem; } .advertising-grid figure:last-child { max-width:400px; }
  .about-layout { gap:2.5rem; } .portrait { max-width:460px; }
  .footer-main { grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.5rem; }
  .footer-main>* { min-width:0; } .footer-main .logo img { width:100%; max-width:175px; }
  .footer-main .text-link { overflow-wrap:anywhere; }
  .footer-bottom { gap:.5rem; flex-direction:column; }
  .preview-layout { grid-template-columns:1fr; }
  .preview-layout>img { max-height:40vh; } .preview-copy h2 { font-size:2rem; }
  .search-row button { padding-inline:.9rem; }
}
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; animation:none!important; transition:none!important; } }
@media(max-width:760px){.form-layout aside{display:none}}
/* Scene gallery: small web thumbnails, uncropped large images loaded on demand. */
.scene-section{border-bottom:1px solid var(--line)}
.scene-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem 1.4rem}
.scene-card{display:block;width:100%;padding:0;background:transparent;border:0;color:var(--ink);text-align:left;font-weight:400}
.scene-card:hover{background:transparent;color:var(--blue)}
.scene-card img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;background:var(--cream);margin-bottom:.8rem}
.scene-card>span{display:block;font-size:.88rem}
.scene-card:hover img{outline:1px solid var(--blue);outline-offset:4px}
.scene-dialog{width:min(1320px,calc(100% - 2rem))}
.scene-dialog .dialog-header h2{font-size:clamp(1.6rem,3vw,2.3rem);letter-spacing:-.035em}
.scene-dialog .dialog-header .eyebrow{margin-bottom:.35rem}
.scene-full{text-align:center}
.scene-full img{display:block;width:auto;max-width:100%;height:auto;max-height:67dvh;object-fit:contain;margin-inline:auto;background:var(--cream)}
.scene-full figcaption{max-width:52rem;margin:.8rem auto 0}
.scene-controls{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:1.2rem}
.scene-controls p{font-size:.8rem;color:var(--muted)}
@media(max-width:760px){.scene-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem 1rem}.scene-card>span{font-size:.8rem}.scene-dialog{padding:1rem}.scene-controls button{padding:.65rem .8rem;gap:.3rem}.scene-full img{max-height:58dvh}}
/* Let responsive media size from its width, rather than the HTML fallback height. */
.studio-grid{align-items:start}
.studio-grid article>img,.studio-grid .app-tour img{height:auto;aspect-ratio:1.5}
.gravatar-link{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px}.gravatar-link img{width:28px;height:28px}
