/* Frame Dad / Frame Mom 1.0. Layout idea: the hallway wall. A painted wall with walnut frames on it,
   brass nameplates for every action, and mat-white panels for everything you read.
   Frame Mom is the same house with the wall painted blue (it overrides the three --wall tokens). */
:root{
  --wall:#1f3d33; --wall-deep:#162c25; --wall-line:#36594c;
  --on-wall:#f1ede2; --on-wall-mute:rgba(241,237,226,.74);
  --mat:#f2f3ee; --mat2:#e5e8e0; --ink:#15201c; --ink2:#48524d; --rule:#c2c8be;
  --brass:#c8a14b; --brass-hi:#dfbc6a; --brass-ink:#1c1505; --brass-deep:#86661c;
  --card:#f4efe4;
  --f-display:"Barlow Condensed","Arial Narrow",Impact,sans-serif;
  --f-body:"Libre Franklin",Arial,sans-serif;
  --f-note:"Courier Prime","Courier New",monospace;
  --gut:max(16px,env(safe-area-inset-left,0px));
  color-scheme:light;
}
*{box-sizing:border-box}
html{background:var(--wall);scroll-behavior:smooth}
body{margin:0;background:var(--wall);color:var(--on-wall);font-family:var(--f-body);font-size:17px;line-height:1.6;overflow-x:hidden}
img{max-width:100%}
[hidden]{display:none!important}
h1,h2,h3{font-family:var(--f-display);font-weight:800;margin:0;text-transform:uppercase;line-height:.94;text-wrap:balance}
p{margin:0}
a{color:inherit}
.wrap{max-width:1100px;margin:0 auto;padding-inline:var(--gut);position:relative}
:focus-visible{outline:3px solid var(--brass-hi);outline-offset:3px}
section{scroll-margin-top:72px}
.vh{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}

/* picture rail and top bar */
.rail{height:12px;background:linear-gradient(180deg,#f6f4ec 0 3px,#d9d6ca 3px 8px,#a9a698 8px 10px,rgba(0,0,0,.35) 10px)}
.top{position:sticky;top:0;z-index:20;background:var(--wall-deep);border-bottom:1px solid var(--wall-line)}
.bar{display:flex;align-items:center;gap:20px;min-height:58px}
.mark{font-family:var(--f-display);font-weight:800;font-size:27px;text-transform:uppercase;text-decoration:none;letter-spacing:.01em}
.mark span,.hero h1 span{color:var(--brass)}
.top nav{display:flex;gap:22px;margin-left:auto;font-size:15px}
.top nav a{text-decoration:none;color:var(--on-wall-mute);padding-block:16px}
.top nav a:hover,.top nav a[aria-current]{color:var(--on-wall)}
.top nav a[aria-current]{box-shadow:inset 0 -2px 0 var(--brass)}
.menu{display:none;margin-left:auto;min-height:44px;padding:0 14px;background:none;color:var(--on-wall);border:1px solid var(--wall-line);border-radius:3px;font-family:var(--f-display);font-weight:800;font-size:18px;letter-spacing:.04em;text-transform:uppercase;cursor:pointer}
.menulist{border-top:1px solid var(--wall-line);background:var(--wall-deep)}
.menulist a{display:flex;align-items:center;min-height:52px;border-bottom:1px solid var(--wall-line);text-decoration:none;font-family:var(--f-display);font-weight:800;font-size:24px;text-transform:uppercase}
@media (max-width:820px){.top nav{display:none}.menu{display:block}.bar{gap:10px}}

/* the brass nameplate: every action and every small label is one */
.btn,.plate,.thumb{
  background:
    radial-gradient(circle at 11px 50%,var(--brass-deep) 0 2.2px,transparent 2.8px),
    radial-gradient(circle at calc(100% - 11px) 50%,var(--brass-deep) 0 2.2px,transparent 2.8px),
    linear-gradient(180deg,var(--brass-hi),var(--brass));
  color:var(--brass-ink);border:0;border-radius:3px;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.38),0 2px 0 rgba(0,0,0,.35);
  font-family:var(--f-display);font-weight:800;text-transform:uppercase;letter-spacing:.05em;text-decoration:none}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:54px;padding:0 34px;font-size:23px;cursor:pointer}
.btn:hover{filter:brightness(1.07)}
.btn:active{transform:translateY(2px);box-shadow:inset 0 0 0 1px rgba(255,255,255,.38)}
.btn.small{min-height:44px;padding:0 24px;font-size:18px}
.plate{display:inline-block;padding:5px 24px;font-size:15px;line-height:1.3}

/* hero */
.wallsec{background:var(--wall);padding-bottom:64px}
.hero{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(24px,5vw,64px);align-items:center;padding-block:clamp(36px,7vw,84px) 48px}
.hero-txt{min-width:0}
.hero h1{font-size:clamp(92px,21vw,236px);line-height:.84;margin:18px 0 18px}
.hero .line{font-family:var(--f-display);font-weight:600;font-size:clamp(28px,4.2vw,48px);line-height:1.05;text-transform:uppercase;max-width:20ch}
.hero .sub{margin:16px 0 28px;font-size:clamp(17px,2vw,20px);max-width:48ch;color:var(--on-wall-mute)}
.hero-art{position:relative;padding:8px 0 56px;justify-self:center;width:min(100%,300px)}
.phero{padding-block:clamp(36px,7vw,76px) clamp(40px,6vw,60px)}
.phero h1{font-size:clamp(56px,11vw,124px);margin:18px 0 16px;max-width:12ch}
.phero .sub{font-size:clamp(17px,2vw,20px);max-width:54ch;color:var(--on-wall-mute)}

/* frames */
.fr,.frame{background:linear-gradient(135deg,#7d5230,#4b2e18 55%,#6d4628);border-radius:2px;box-shadow:0 18px 34px rgba(0,0,0,.5),inset 0 0 0 1px rgba(255,255,255,.09)}
.fr{padding:12px}
.fr-mat{background:#f6f4ec;padding:10%;box-shadow:inset 0 0 0 1px rgba(0,0,0,.18)}
.fr-img{aspect-ratio:4/5;background-size:cover;background-position:center;box-shadow:inset 0 0 0 1px rgba(0,0,0,.35)}
.fr-img.f3,.f3 .img{background-image:radial-gradient(45% 60% at 40% 55%,#d1a25f,transparent 70%),linear-gradient(180deg,#5b7484 0%,#2a3a45 45%,#13110e 100%)}
.fr.hang{transform:rotate(-2deg);transform-origin:50% 0}
.motion .fr.hang{animation:hang 2.6s ease-out .3s both}
@keyframes hang{0%{transform:rotate(-9deg)}35%{transform:rotate(3deg)}60%{transform:rotate(-4deg)}80%{transform:rotate(-1deg)}100%{transform:rotate(-2deg)}}
.fr.small{width:150px;flex:none}
.cardnote{background:var(--card);color:#14110f;font-family:var(--f-note);font-weight:700;font-size:13px;line-height:1.5;letter-spacing:.04em;padding:14px 16px;transform:rotate(3deg);box-shadow:0 10px 24px rgba(0,0,0,.45);max-width:230px}
.cardnote span{display:block;margin-top:8px;font-weight:400;color:#4b4a46;overflow-wrap:anywhere}
.hero-art .cardnote{position:absolute;right:-8px;bottom:0}

/* the wall of six */
.hang-wall{scroll-margin-top:80px}
.frames{display:grid;grid-template-columns:repeat(3,1fr);gap:28px 22px}
.frame{position:relative;padding:9px;margin-bottom:34px}
.frame .img{aspect-ratio:3/2;background-size:cover;background-position:center;border:9px solid #f6f4ec;box-shadow:inset 0 0 0 1px rgba(0,0,0,.3)}
.frame .cap{position:absolute;left:50%;bottom:-36px;transform:translateX(-50%);white-space:nowrap;padding:3px 20px;font-size:14px}
.f1 .img{background-image:radial-gradient(60% 80% at 30% 70%,#6b4a2a,transparent 70%),radial-gradient(40% 50% at 70% 40%,#c48a4a,transparent 70%),linear-gradient(180deg,#2c3b4a,#1a1410)}
.f2 .img{background-image:radial-gradient(50% 70% at 60% 60%,#7c5b36,transparent 70%),linear-gradient(160deg,#3d4a2c,#14110d 70%)}
.f4 .img{background-image:radial-gradient(70% 50% at 50% 80%,#3a2a1c,transparent 70%),linear-gradient(180deg,#d6893b 0%,#7a3c22 45%,#1a120d 100%)}
.f5 .img{background-image:radial-gradient(40% 60% at 35% 50%,#9a6b3c,transparent 70%),radial-gradient(35% 55% at 65% 55%,#7a5530,transparent 70%),linear-gradient(180deg,#2e4a30,#111)}
.f6 .img{background-image:radial-gradient(50% 60% at 55% 55%,#e0a861,transparent 65%),linear-gradient(180deg,#2a1d14,#0c0907)}
.circle{position:absolute;inset:-10px;width:calc(100% + 20px);height:calc(100% + 20px);pointer-events:none;overflow:visible}
.circle path{fill:none;stroke:var(--card);stroke-width:3.5;stroke-linecap:round;vector-effect:non-scaling-stroke}
.motion .circle path{stroke-dasharray:900;stroke-dashoffset:900;animation:draw 1.2s ease-out 2.4s forwards}
@keyframes draw{to{stroke-dashoffset:0}}
.pick{position:absolute;right:16px;bottom:16px;font-family:var(--f-note);font-weight:700;font-size:16px;color:var(--card);text-shadow:0 1px 4px rgba(0,0,0,.9);transform:rotate(-4deg)}
.wall-note{margin-top:8px;font-size:17px;color:var(--on-wall-mute);max-width:56ch}
@media (max-width:820px){.hero{grid-template-columns:1fr}.hero-art{width:min(70%,260px);padding-bottom:64px}.hero .btn{display:none}}
@media (max-width:620px){.frames{grid-template-columns:1fr 1fr;gap:26px 16px}.frame .cap{font-size:12px;padding:3px 16px}}

/* mat-white reading panels */
.table{background:var(--mat);color:var(--ink);padding-block:clamp(48px,7vw,84px)}
.table.alt{background:var(--mat2)}
.table h2{font-size:clamp(38px,6vw,66px);max-width:18ch;margin-bottom:28px}
.lead{max-width:56ch;color:var(--ink2);margin:-12px 0 32px}
.fine{margin-top:20px;max-width:62ch;color:var(--ink2)}
.table a{color:var(--wall);font-weight:600}
.table .btn{color:var(--brass-ink)}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.steps .col{border-top:3px solid var(--ink);padding-top:14px;min-width:0}
.steps b{display:block;font-family:var(--f-display);font-weight:800;font-size:34px;line-height:1;color:var(--brass-deep)}
.steps h3,.pack h3,.day h3{font-size:clamp(28px,3.4vw,38px);margin:4px 0 8px}
.steps p,.pack p,.day p{color:var(--ink2)}
.cta{margin-top:32px;display:flex;gap:12px;flex-wrap:wrap}
.sizes{display:flex;gap:18px;align-items:flex-end;flex-wrap:wrap}
.size{border:2px solid var(--ink);border-radius:2px;display:grid;place-items:center;text-align:center;font-weight:600;font-size:12px;line-height:1.3;background:#fff}
.packs{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.packs.four{grid-template-columns:repeat(4,1fr)}
.pack{background:#fff;border:2px solid var(--ink);border-radius:3px;padding:22px;display:flex;flex-direction:column;gap:6px;min-width:0}
.cost{font-family:var(--f-display);font-weight:800;font-size:64px;line-height:1;color:var(--ink)!important;font-variant-numeric:tabular-nums}
.gets{margin-top:auto;padding-top:12px;border-top:1px solid var(--rule);font-weight:600;font-size:14px;color:var(--ink)!important}
@media (max-width:1000px){.packs.four{grid-template-columns:1fr 1fr}}
@media (max-width:820px){.steps,.packs{grid-template-columns:1fr}}
@media (max-width:600px){.packs.four{grid-template-columns:1fr}}

/* idea lists */
.grp{font-size:clamp(30px,3.6vw,40px);margin:36px 0 0;padding-bottom:8px;border-bottom:3px solid var(--ink)}
h2 + .grp{margin-top:0}
.ideas{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;column-gap:32px}
.ideas li{display:grid;gap:2px;padding:14px 0;border-bottom:1px solid var(--rule);min-width:0}
.ideas b{font-family:var(--f-display);font-weight:800;font-size:24px;text-transform:uppercase;line-height:1.05}
.ideas span{color:var(--ink2)}
.ideas.num{counter-reset:n;grid-template-columns:1fr;max-width:720px;border-top:3px solid var(--ink)}
.ideas.num li{counter-increment:n;padding-left:44px;position:relative}
.ideas.num li::before{content:counter(n);position:absolute;left:0;top:10px;font-family:var(--f-display);font-weight:800;font-size:34px;color:var(--brass-deep)}
@media (max-width:700px){.ideas{grid-template-columns:1fr}}

/* missions */
.missions{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.mission{background:#fff;border:2px solid var(--ink);border-radius:3px;padding:18px 20px;min-width:0;break-inside:avoid}
.mno{font-family:var(--f-display);font-weight:800;font-size:18px;letter-spacing:.06em;color:var(--brass-deep)}
.mission h3{font-size:32px;margin:2px 0 10px}
.mission dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:6px 14px}
.mission dt{font-weight:600;font-size:14px;padding-top:3px}
.mission dd{margin:0;color:var(--ink2)}
.caught{display:none;align-items:center;gap:10px;margin-top:12px;font-weight:600}
.caught i{width:22px;height:22px;border:2px solid var(--ink);border-radius:3px}
@media (max-width:760px){.missions{grid-template-columns:1fr}}

/* planner */
#plan{background:var(--wall);padding-block:clamp(48px,7vw,84px)}
.wiz{max-width:640px;margin:0 auto;background:var(--wall-deep);border:1px solid var(--wall-line);border-radius:4px;padding:clamp(20px,4vw,36px);min-height:420px}
.wiz-head{display:flex;justify-content:space-between;align-items:center;min-height:44px;font-weight:600;font-size:14px;color:var(--brass-hi);margin-bottom:8px}
.back{background:none;border:0;color:var(--on-wall-mute);font:inherit;min-height:44px;padding:0 4px;cursor:pointer}
.wiz h2{font-size:clamp(40px,7vw,60px);margin-bottom:20px}
.opts{display:grid;gap:12px}
.opts .btn{width:100%}
.opt{display:block;width:100%;text-align:left;min-height:64px;padding:14px 18px;background:rgba(0,0,0,.28);color:var(--on-wall);border:1px solid var(--wall-line);border-radius:3px;cursor:pointer;font-family:var(--f-display);font-weight:800;font-size:26px;text-transform:uppercase;line-height:1.05}
.opt small{display:block;font-family:var(--f-body);font-weight:400;font-size:15px;text-transform:none;color:var(--on-wall-mute);margin-top:4px}
.opt:hover,.opt:focus-visible{border-color:var(--brass)}
.opt.center{text-align:center;display:flex;align-items:center;justify-content:center}
.field{display:grid;gap:6px;margin-bottom:16px}
.field label{font-size:15px;color:var(--on-wall-mute)}
.field input{min-height:52px;padding:0 14px;font:inherit;font-size:18px;color:var(--on-wall);background:rgba(0,0,0,.28);border:1px solid var(--wall-line);border-radius:3px;width:100%}
.err{color:var(--brass-hi);min-height:1.6em;font-size:15px}
.tryrow{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin:4px 0 24px}
.plan{list-style:none;margin:0 0 22px;padding:0;border-top:1px solid var(--wall-line)}
.plan li{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--wall-line)}
.plan li span:first-child{font-weight:600;font-size:14px;color:var(--brass-hi)}
.plan li span:last-child{text-align:right;overflow-wrap:anywhere}
.note{color:var(--on-wall-mute);margin-top:14px}
.note.top{margin:-8px 0 20px}

/* shoot day sheet, checklists */
.day{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-bottom:28px}
.day div{border-top:3px solid var(--ink);padding-top:10px;min-width:0}
@media (max-width:820px){.day{grid-template-columns:1fr 1fr}}
.fill{display:grid;gap:18px;margin-bottom:28px;max-width:720px}
.fill p{display:flex;align-items:flex-end;gap:12px;font-weight:600;white-space:nowrap}
.fill i{flex:1;border-bottom:2px solid var(--ink);height:28px;min-width:60px}
.pagelabel{display:none}
.crew h2{margin-bottom:20px}
.ckgrp{max-width:720px;margin-top:28px}
.ckgrp h3{font-size:30px;padding-bottom:6px;border-bottom:3px solid var(--ink)}
.cknote{color:var(--ink2);font-size:15px;padding-top:6px}
.cks{list-style:none;margin:0;padding:0}
.cks label{display:flex;align-items:center;gap:14px;min-height:48px;padding:6px 0;border-bottom:1px solid var(--rule);cursor:pointer}
.cks input{appearance:none;-webkit-appearance:none;flex:none;width:28px;height:28px;margin:0;border:2px solid var(--ink);border-radius:3px;background:#fff;display:grid;place-items:center;cursor:pointer}
.cks input:checked{background:var(--wall);border-color:var(--wall)}
.cks input:checked::after{content:"";width:8px;height:14px;border:solid #fff;border-width:0 3px 3px 0;transform:rotate(45deg) translateY(-2px)}
.cks input:checked + span{color:var(--ink2);text-decoration:line-through}

/* questions */
.faq{max-width:760px;border-top:2px solid var(--ink)}
.faq details{border-bottom:1px solid var(--rule)}
.faq summary{cursor:pointer;list-style:none;min-height:60px;padding:16px 36px 16px 0;position:relative;font-family:var(--f-display);font-weight:800;font-size:26px;text-transform:uppercase;line-height:1.05}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:4px;top:12px;font-size:32px;color:var(--brass-deep)}
.faq details[open] summary::after{content:"-"}
.faq details p{padding:0 0 18px;color:var(--ink2);max-width:60ch}

/* footer, gear, thumb bar */
.foot{background:var(--wall-deep);border-top:1px solid var(--wall-line);padding-block:20px 96px}
.footnav{display:flex;flex-wrap:wrap;gap:4px 20px;margin-bottom:14px}
.footnav a{display:inline-flex;align-items:center;min-height:44px;color:var(--on-wall-mute);text-decoration:none;font-size:15px}
.footnav a:hover{color:var(--on-wall)}
.footrow{display:flex;gap:16px;flex-wrap:wrap;align-items:center;font-size:14px;color:var(--on-wall-mute)}
.gear{margin-left:auto;width:44px;height:44px;border-radius:8px;border:1px solid var(--wall-line);background:var(--wall);display:grid;place-items:center;cursor:pointer}
.gear svg{width:22px;height:22px;fill:var(--on-wall)}
.panel{position:fixed;z-index:40;right:16px;bottom:calc(84px + env(safe-area-inset-bottom,0px));width:min(320px,calc(100vw - 32px));max-height:70vh;overflow:auto;background:var(--wall-deep);color:var(--on-wall);border:1px solid var(--wall-line);border-radius:8px;padding:18px;display:flex;flex-direction:column;gap:12px}
.panel h3{font-size:28px}
.panel h4{margin:6px 0 0;font-family:var(--f-display);font-weight:800;font-size:20px;text-transform:uppercase}
.toggle{display:flex;justify-content:space-between;align-items:center;gap:12px}
.sw{width:56px;height:30px;border-radius:15px;border:1px solid var(--wall-line);background:rgba(0,0,0,.35);position:relative;cursor:pointer;flex:none}
.sw::after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:var(--on-wall-mute)}
.sw[aria-checked="true"]{border-color:var(--brass)}
.sw[aria-checked="true"]::after{left:29px;background:var(--brass)}
.panel small{color:var(--on-wall-mute);font-size:13px;line-height:1.5}
.thumb{display:none}
@media (max-width:820px){
  .thumb{display:flex;position:fixed;z-index:25;left:16px;right:16px;bottom:calc(12px + env(safe-area-inset-bottom,0px));min-height:56px;align-items:center;justify-content:center;font-size:24px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.38),0 8px 24px rgba(0,0,0,.5)}
  .thumb.off{display:none}
}

@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

@media print{
  body *{visibility:hidden}
  .printme,.printme *{visibility:visible}
  .printme{position:absolute;left:0;top:0;width:100%;background:#fff;padding:0}
  .printme .btn,.printme .cta{display:none}
  .pagelabel{display:block;position:fixed;bottom:0;left:0;right:0;text-align:center;font-family:var(--f-display);font-weight:800;font-size:22px;letter-spacing:.1em}
  .fill i{height:44px}
  .cks label{min-height:0;padding:3px 0}.ckgrp{margin-top:12px;break-inside:avoid}
  .missions{grid-template-columns:1fr 1fr;gap:10px}.mission{padding:10px 12px}.mission h3{font-size:22px}.caught{display:flex}.printme h2{font-size:30px;margin-bottom:12px}
}
