[hidden]{display:none!important}
@font-face{font-family:Archivo;src:url(fonts/archivo-500.woff2)}@font-face{font-family:Archivo;src:url(fonts/archivo-800.woff2);font-weight:800}@font-face{font-family:Caveat;src:url(fonts/Caveat-700-latin.woff2)}:root{--blue:#0053aa;--yellow:#ffd23f;--red:#d21f36;--paper:#faf7ef;--ink:#123052;--ease:cubic-bezier(.23,1,.32,1)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Archivo,Arial,sans-serif;overflow-x:hidden}button,input,textarea{font:inherit}button,a{cursor:pointer}a{color:inherit;text-decoration:none}.skip{position:fixed;left:-10000px}.skip:focus{left:10px;top:10px;z-index:99;background:white;padding:10px}header{height:76px;padding:0 clamp(18px,6vw,88px);display:flex;align-items:center;justify-content:space-between;background:#fffdf8;position:sticky;top:0;z-index:15}.logo{font-weight:800;font-size:27px;letter-spacing:-1.8px;color:var(--blue)}nav{display:flex;gap:27px;align-items:center;font-size:12px}nav a{transition:color 160ms ease}nav a:hover{color:var(--red)}.nav-spec,.menu{border:0;background:none;color:var(--ink)}.nav-spec b{background:var(--blue);color:white;border-radius:999px;padding:2px 6px}.menu{display:none;font-size:24px}.hero{min-height:650px;display:grid;grid-template-columns:43% 57%;position:relative;background:#fffdf8}.hero-copy{padding:56px 10px 35px clamp(18px,6vw,88px);position:relative;z-index:2}.hero h1,.section-title h2,h2{font-weight:800;letter-spacing:-.085em;line-height:.79;margin:0;color:var(--blue)}.hero h1{font-size:clamp(75px,9vw,156px);animation:rise .8s var(--ease) both}.hero-copy>p{font-size:18px;line-height:1.25;max-width:275px;margin:18px 0 18px;font-weight:800}.actions{display:flex;gap:10px;flex-wrap:wrap}.button{border:1px solid var(--blue);padding:13px 18px;font-size:13px;font-weight:800;display:inline-flex;gap:12px;align-items:center;justify-content:center;transition:transform 160ms var(--ease),background 160ms ease;color:var(--ink)}.button:active,button:active{transform:scale(.97)}.yellow{background:var(--yellow)}.outline{background:transparent}.blue-btn{background:var(--blue);color:white}.red-btn{background:var(--red);color:white;border-color:var(--red)}.hero em,.studio-intro em,.inspiration em{font-family:Caveat;font-size:23px;line-height:.9;display:block;transform:rotate(-7deg);margin:25px 0 15px}.dots{display:flex;align-items:center;gap:8px;font-size:10px}.dots span{width:23px;height:23px;border-radius:50%;display:inline-block}.blue{background:#147bc2}.yellow-dot{background:#ffce38}.red{background:#d71e34}.hero-art{overflow:hidden;position:relative;background:var(--yellow)}.hero-art img{width:100%;height:100%;object-fit:cover;object-position:71% center;display:block}.note{position:absolute;background:#ffe263;padding:16px 12px;font:22px/1 Caveat;color:#1a3761;box-shadow:1px 3px 7px #735f1244}.n1{top:13%;left:10%;transform:rotate(-7deg)}.n2{right:3%;top:12%;background:#f8f3e8;transform:rotate(7deg)}.cast{display:grid;grid-template-columns:25% 75%;padding:12px 5vw;background:linear-gradient(100deg,#fff6da,#fff)}.section-title{padding:25px 12px}.section-title h2{font-size:clamp(50px,5vw,82px)}.section-title p{font-size:14px;font-weight:800}.family-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.family{border:0;background:#fffdf9;text-align:left;padding:10px;min-height:220px;display:grid;grid-template-columns:1fr auto;align-items:end;box-shadow:0 2px 8px #1230521f;transition:transform .25s var(--ease)}.family:hover{transform:translateY(-4px) rotate(-1deg)}.family b{grid-column:1/-1;color:var(--blue);align-self:start;font-size:13px}.family strong{font-size:15px}.mini{grid-column:1/-1;align-self:center;justify-self:stretch;aspect-ratio:3/4;background-image:url(assets/cast-characters-original.png);background-repeat:no-repeat;background-size:400% auto;background-position:0 50%;font-size:0}.gnome-mini{background-position:0 50%}.reindeer{background-position:33.333% 50%}.angel{background-position:66.667% 50%}.ornament{background-position:100% 50%}.materials{display:grid;grid-template-columns:75% 25%;min-height:330px}.fabric-photo{background:linear-gradient(110deg,#10599b 0 30%,#ded2bb 30% 57%,#b52632 57%);display:flex;align-items:center;justify-content:space-around;padding:35px;position:relative}.fabric-photo:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(45deg,#ffffff19 0 2px,transparent 2px 8px);mix-blend-mode:overlay}.fabric-photo div{position:relative;background:#f2e2c7;padding:12px;transform:rotate(-7deg);font-size:10px;box-shadow:1px 3px 8px #0004}.fabric-photo i{display:block;font-family:Caveat;font-size:17px}.texture-copy{background:var(--yellow);padding:38px 22px}.texture-copy h2{font-size:clamp(38px,4.5vw,72px)}.texture-copy p{font-weight:800}.studio{display:grid;grid-template-columns:28% 37% 35%;padding:55px 5vw 30px;background:#fffdf8}.studio-intro small{background:var(--yellow);font-weight:800;padding:5px 9px}.studio-intro h2{font-size:clamp(40px,4.3vw,72px);margin:15px 0}.studio-intro p{font-size:14px;max-width:220px}.stage{min-height:500px;position:relative;background:radial-gradient(circle at 50% 25%,#e9f2f9,#fff9ea 68%);border-radius:48% 48% 0 0;overflow:hidden}.stage canvas{width:100%;height:100%;display:block;touch-action:none}.angle-badge{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);font-size:12px;background:#fffdeccc;padding:7px 11px}.render-fallback{padding:25px;text-align:center}.controls{padding:20px;background:#fffdf8;box-shadow:0 3px 18px #092d4b19;align-self:center}.controls label,.controls fieldset{display:block;border:0;padding:0;margin:0 0 13px;font-size:12px;font-weight:800}.controls input,.controls textarea{width:100%;padding:9px;border:1px solid #bbcad5;background:#fff;font-weight:500;color:var(--ink);margin-top:5px}.controls textarea{height:54px;resize:vertical}.controls small{display:block;font-size:9px;color:#687686;margin-top:3px}.swatches{display:flex;gap:7px;margin-top:7px}.swatch{width:27px;height:27px;border-radius:50%;border:2px solid transparent}.swatch[aria-pressed=true]{outline:2px solid var(--ink);outline-offset:2px}.segmented{display:flex;gap:5px;margin-top:7px}.segmented button{font-size:10px;flex:1;padding:9px 5px;background:white;border:1px solid #bfcbd2}.segmented .selected{background:var(--blue);color:white;border-color:var(--blue)}.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}.rotate{display:flex;gap:5px}.rotate button{flex:1;border:1px solid #bfcbd2;background:#fff;padding:8px}.studio-actions{display:flex;gap:7px;align-items:center}.studio-actions .button{flex:1}.text-btn{border:0;background:none;color:var(--blue);font-size:11px;text-decoration:underline}.inspiration{background:var(--yellow);padding:32px 5vw;display:grid;grid-template-columns:30% 1fr auto;gap:20px;align-items:center}.inspiration h2,.workflow h2,.guides h2,.faq h2{font-size:clamp(38px,4vw,66px)}.inspiration p{font-size:13px;font-weight:800}.inspire-art{height:215px;overflow:hidden}.inspire-art img{height:100%;width:100%;object-fit:cover}.workflow{display:grid;grid-template-columns:29% 34% 37%;padding:38px 5vw;gap:20px;background:#fffdf8}.workflow>div p,.guides>div p,.faq>div p{font-size:13px;font-weight:800}.brief-card{border:1px solid #dce3e6;background:#fff;padding:14px;min-height:185px}.thumb{height:95px;width:80px;background:linear-gradient(155deg,#166ab0 0 43%,transparent 44%),radial-gradient(circle at 53% 51%,#eac4a0 0 12%,transparent 13%),linear-gradient(90deg,transparent 20%,#f7f2e6 21% 81%,transparent 82%);float:left;margin-right:12px}.brief-card p{font-size:12px;line-height:1.5}.brief-card small{font-size:9px}.steps{padding:5px}.steps p{font-size:13px;font-weight:800}.steps ol{list-style:none;padding:0;display:flex;gap:8px}.steps li{font-size:11px;font-weight:800;text-align:center;flex:1}.steps b{display:block;border-radius:50%;background:#b7ddf7;width:48px;height:48px;padding:13px;margin:0 auto 6px;font-size:20px}.steps small{display:block;font-size:9px;font-weight:500;margin-top:6px}.guides{display:grid;grid-template-columns:27% repeat(3,1fr);gap:10px;background:#a9d9f7;padding:32px 5vw}.guides a{background:#fffdf8;padding:18px;min-height:150px;display:flex;flex-direction:column;justify-content:end;gap:9px;font-size:12px;transition:transform .2s var(--ease)}.guides a:hover{transform:translateY(-3px)}.guides span{font-size:10px}.faq{display:grid;grid-template-columns:30% 1fr;padding:44px 5vw;background:#fffdf8;gap:30px}.accordion details{border-bottom:1px solid #cbd4da;padding:12px 0}.accordion summary{list-style:none;font-size:13px;font-weight:800;display:flex;justify-content:space-between}.accordion summary::-webkit-details-marker{display:none}.accordion p{font-size:12px;line-height:1.55;max-width:620px}.closing{background:linear-gradient(120deg,#004a9a,#0b70c2);padding:55px 8vw;color:white}.closing h2{color:white;font-size:clamp(50px,6vw,102px)}.closing strong{color:var(--yellow)}.closing p{font-size:14px}.closing .button{border-color:var(--yellow)}footer{padding:30px 5vw;display:flex;align-items:center;gap:30px;justify-content:space-between;font-size:10px;background:#fffdf8}#specPanel{position:fixed;z-index:30;right:0;top:0;height:100dvh;width:min(470px,100%);background:#fffdf8;padding:26px;transform:translateX(102%);transition:transform .36s var(--ease);overflow:auto;box-shadow:-10px 0 30px #001c3d33}#specPanel.open{transform:none}.panel-head{display:flex;justify-content:space-between}.panel-head h2{font-size:52px}.panel-head small{font-size:10px;background:var(--yellow);padding:4px}.panel-head button,.dialog-close{border:0;background:transparent;font-size:30px}.panel-note{font-size:11px;line-height:1.5}.saved{border-top:1px solid #d2d9df;padding:13px 0;display:grid;grid-template-columns:64px 1fr auto;gap:11px;align-items:center}.saved .thumb{float:none;height:73px;width:60px;margin:0}.saved p{font-size:11px;margin:0;line-height:1.5}.saved button{border:1px solid #b8c6d1;background:#fff;padding:7px;font-size:10px}.panel-actions{display:grid;gap:8px;margin-top:18px}.import{border:1px dashed var(--blue);padding:11px;text-align:center;font-size:12px;font-weight:800;color:var(--blue)}.import input{display:none}#scrim{position:fixed;inset:0;background:#001c3d44;z-index:25;opacity:0;pointer-events:none;transition:opacity .3s}.scrim-open{opacity:1!important;pointer-events:auto!important}dialog{border:0;max-width:410px;padding:35px;background:#fffdf8;box-shadow:0 15px 55px #001c3d44}dialog::backdrop{background:#001c3d44}dialog h2{font-size:55px}.dialog-close{float:right}.dialog-close+ h2{margin-top:25px}dialog p{line-height:1.5;font-size:14px}.status{font-size:11px;color:var(--blue);min-height:16px}@keyframes rise{from{transform:translateY(22px);opacity:0}to{transform:none;opacity:1}}@media(prefers-reduced-motion:reduce){*,html{scroll-behavior:auto!important;animation:none!important;transition:none!important}}@media(max-width:760px){header{height:63px;padding:0 18px}nav{display:none}.menu{display:block}.hero{grid-template-columns:1fr;min-height:auto}.hero-copy{padding:38px 20px 21px}.hero h1{font-size:82px}.hero-art{height:350px}.n1{top:8%;left:5%}.n2{display:none}.cast{grid-template-columns:1fr;padding:20px}.section-title{padding:0}.family-grid{grid-template-columns:repeat(2,1fr)}.family{min-height:170px}.materials{grid-template-columns:1fr}.texture-copy{padding:26px}.fabric-photo{min-height:200px;padding:16px}.fabric-photo div{font-size:8px}.studio{grid-template-columns:1fr;padding:35px 18px}.studio-intro{margin-bottom:22px}.stage{min-height:380px}.controls{margin-top:0}.inspiration{grid-template-columns:1fr;padding:30px 20px}.inspire-art{height:190px}.workflow,.guides,.faq{grid-template-columns:1fr;padding:31px 20px}.steps ol{gap:2px}.closing{padding:42px 20px}footer{flex-wrap:wrap;padding:25px 20px}.panel-head h2{font-size:47px}}

/* ===== v5: styles formerly injected from app.js / enhance.js, now in one place ===== */
@font-face{font-family:BarlowCondensed;src:url('fonts/BarlowCondensed-Black.ttf');font-weight:900;font-style:normal;font-display:swap}
.hero h1,.section-title h2,h2{font-family:BarlowCondensed,Archivo,sans-serif;font-weight:900;letter-spacing:0;word-spacing:normal;line-height:.92}
h3{font-family:Archivo,Arial,sans-serif;font-weight:800;color:var(--blue);margin:0}
.hero h1{font-size:clamp(70px,8.4vw,148px)}
.hero-copy>p{max-width:360px}
.hero-copy>em{margin:16px 0 24px;font-size:20px}
.dots small{font-size:12px}
.texture-copy{min-width:0;padding:38px 18px}.texture-copy h2{font-size:clamp(38px,4vw,64px);overflow:visible}.texture-copy p{font-size:14px;line-height:1.4}
.fabric-photo{background-image:url('assets/fabric-macros-original.png');background-size:cover;background-position:center}.fabric-photo:before{display:none}
body.drawer-open{overflow:hidden}
main,main section,#top{scroll-margin-top:84px}

/* cast cards: exact 3:4 panels of the 4-up sprite */
.family{grid-template-columns:1fr auto;row-gap:4px}
.family .mini{height:auto;width:100%;aspect-ratio:3/4;background-image:url('assets/cast-characters-original.png');background-repeat:no-repeat;background-size:400% auto;border-radius:2px}
.family small{grid-column:1/-1;font-size:11px;color:#4a5d75}
.section-title p{max-width:220px;line-height:1.35}

/* fabric comparison */
.fabric-guide{padding:48px 5vw;background:#fffdf8;border-bottom:1px solid #e3e0d6}
.fabric-guide h2{font-size:clamp(38px,4vw,62px)}
.fabric-guide .lede{font-size:14px;font-weight:800;max-width:560px;margin:10px 0 24px}
.fabric-table{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.fabric-table article{background:#fff;border-top:4px solid var(--blue);padding:18px;font-size:13px;line-height:1.55}
.fabric-table article:nth-child(2){border-color:var(--yellow)}.fabric-table article:nth-child(3){border-color:#c9b48f}.fabric-table article:nth-child(4){border-color:var(--red)}
.fabric-table h3{font-size:20px}
.fabric-table .tag{font-size:11px;font-weight:800;color:#4a5d75;text-transform:uppercase;letter-spacing:.04em;margin:6px 0 10px}
.fabric-table .watch{background:#f6f2e6;padding:10px;font-size:12px}

/* studio */
.studio-intro p{max-width:260px;line-height:1.45}
.stage{display:flex;flex-direction:column}
.part-now{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);margin:0;font-size:12px;background:#fffdeccc;padding:6px 10px;white-space:nowrap;max-width:94%;overflow:hidden;text-overflow:ellipsis}
.segmented button[aria-pressed=true]{background:var(--blue);color:#fff;border-color:var(--blue)}
.segmented button{font-size:11px}
.rotate button{font-size:12px}
.controls small{font-size:10px}
#status{font-size:12px;color:var(--blue);min-height:18px}

/* inspiration strip: show the whole 3:1 sprite, never stretched */
.inspire-art{height:auto;aspect-ratio:3/1;overflow:hidden}
.inspire-art img{width:100%;height:100%;object-fit:cover;display:block}

/* workflow card */
.workflow h2{font-size:clamp(38px,4vw,66px)}
.brief-card{display:flex;flex-direction:column;gap:12px;min-height:0}
.card-label{margin:0;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--red)}
.brief-body{display:grid;grid-template-columns:120px 1fr;gap:16px;align-items:center}
.brief-card .thumb{width:120px;height:150px;float:none;margin:0;object-fit:contain;background:#eef5f8}
.brief-card dl{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:0;font-size:13px}
.brief-card dt{color:#4a5d75}.brief-card dd{margin:0;font-weight:800}
.brief-foot{display:flex;justify-content:space-between;align-items:center;font-size:13px;border-top:1px solid #e3e6e8;padding-top:10px}
.brief-card small{font-size:10px;color:#4a5d75}
.steps li{font-size:13px}.steps small{font-size:11px;line-height:1.4}

/* guides */
.guides{grid-template-columns:24% repeat(3,1fr);gap:14px;align-items:stretch}
.guides-head p{font-size:13px;font-weight:800}
.guides article{background:#fffdf8;display:flex;flex-direction:column;font-size:13px;line-height:1.55}
.guides article>b{align-self:flex-start;font-size:10px;background:var(--yellow);padding:5px;margin:16px 20px 0}
.guides h3{font-family:BarlowCondensed,Archivo,sans-serif;font-weight:900;font-size:32px;line-height:.95;margin:14px 20px 8px}
.guides article p,.guides article ul{margin:0 20px 12px}
.guides ul{padding-left:18px}.guides li{margin-bottom:4px}
.guide-img{display:block;width:100%;aspect-ratio:5/2;height:auto;object-fit:cover}
.guide-img--hero{object-position:62% 0%}
.guide-img--cast{object-fit:contain;background:#f3ead5}

/* FAQ / closing / footer */
.accordion summary{cursor:pointer;gap:20px}
.accordion p{font-size:13px}
.closing .actions{margin-top:18px}
.outline-light{background:transparent;color:#fff;border-color:#fff}
footer{font-size:12px}

/* drawer */
.saved{grid-template-columns:64px 1fr auto}
.saved .thumb{object-fit:contain;background:#eef5f8}
.saved-actions{display:flex;flex-direction:column;gap:6px}
.saved-actions button[data-confirm=yes]{background:var(--red);color:#fff;border-color:var(--red)}
.contact-box{border-top:1px solid #d2d9df;margin-top:12px;padding-top:10px}
.contact-box summary{cursor:pointer;font-size:13px;font-weight:800}.contact-box summary span{font-weight:500;color:#4a5d75;font-size:11px}
.contact-box label,#familyForm label{display:block;font-size:12px;font-weight:800;margin:8px 0}
.contact-box input,#familyForm input,#familyForm select,#familyForm textarea{width:100%;padding:8px;border:1px solid #bbcad5;background:#fff;font-weight:500;margin-top:4px;color:var(--ink)}
#importJson{display:none}

/* Enquiry attachments remain inspectable before sending. */
.enquiry-box{margin:24px -26px -26px;padding:22px 26px 28px;background:#edf5fb;border-top:4px solid var(--blue)}
.enquiry-box .eyebrow{margin:0 0 5px;font-size:10px;font-weight:800;letter-spacing:.1em;color:var(--red)}
.enquiry-box h3{font-family:BarlowCondensed,Archivo,sans-serif;font-size:34px;line-height:.95;margin:0;color:var(--blue)}
.enquiry-box label{display:block;font-size:12px;font-weight:800;margin:10px 0}
.enquiry-box input,.enquiry-box textarea{display:block;width:100%;min-height:44px;margin-top:5px;padding:10px;border:1px solid #aebdca;background:#fff;color:var(--ink)}
.enquiry-box textarea{min-height:78px;resize:vertical}.enquiry-box .button{width:100%;min-height:46px;margin-top:10px}.enquiry-box .button:disabled{opacity:.65;cursor:wait}
.attachment-preview{margin:16px 0;padding:12px;background:#fffdf8;border:1px solid #c8d6e1}.attachment-preview h4{margin:0;font-size:13px;color:var(--blue)}
#attachmentList{padding:0;margin:10px 0 0;list-style:none}#attachmentList li{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;padding:7px 0;border-top:1px solid #e1e7ec;font-size:11px}#attachmentList li:first-child{border-top:0}#attachmentList span{color:#4a5d75;white-space:nowrap}.enquiry-box #enquiryStatus{min-height:22px;margin:10px 0 0;font-size:12px;line-height:1.45;color:var(--blue)}

/* family dialog */
dialog{max-width:460px;width:calc(100% - 32px);max-height:calc(100dvh - 32px);overflow:auto}
dialog h2{font-size:48px}
.dialog-art{width:120px;aspect-ratio:3/4;background-image:url('assets/cast-characters-original.png');background-size:400% auto;background-repeat:no-repeat;float:right;margin:0 0 10px 14px}
#familyForm{clear:both}
#familyForm textarea{height:60px}
.dialog-actions{display:flex;gap:12px;align-items:center;margin-top:10px}
#familyStatus{font-size:12px;color:var(--blue)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}

/* mobile navigation: one handler (app.js) toggles header.nav-open */
@media(max-width:760px){
  main,main section,#top{scroll-margin-top:70px}
  header.nav-open nav{display:flex;position:absolute;right:12px;top:58px;padding:16px;flex-direction:column;align-items:flex-start;gap:16px;background:#fffdf8;box-shadow:0 8px 25px #001c3d33;font-size:15px}
  .hero h1{font-size:clamp(66px,19vw,82px)}
  .texture-copy h2{font-size:clamp(46px,14vw,62px)}
  .fabric-table{grid-template-columns:1fr 1fr}
  .guides{grid-template-columns:1fr}
  .brief-body{grid-template-columns:96px 1fr}.brief-card .thumb{width:96px;height:120px}
  .inspire-art{aspect-ratio:3/1}
  .closing .actions{flex-direction:column;align-items:stretch}
  .enquiry-box{margin-left:-18px;margin-right:-18px;padding-left:18px;padding-right:18px}
}
@media(max-width:480px){.fabric-table{grid-template-columns:1fr}.part-now{font-size:11px}}

/* Mobile touch targets stay generous without making the palette read as five oversized dots. */
@media(max-width:700px){
  .stage{min-height:380px}
  .swatches{gap:5px}.swatch{width:44px;height:44px;flex:0 0 44px;padding:8px;background-clip:content-box!important}
  .controls input,.controls textarea{min-height:44px}
  .segmented,.rotate{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
  .segmented button,.rotate button{min-height:44px;padding:8px 4px}
  #motionToggle,.studio-actions .text-btn{min-height:44px;padding:8px}
  .studio-actions .button{min-height:44px}
}

/* motion: ambient and reveal only when the visitor allows it, and pausable */
@media (prefers-reduced-motion:no-preference){
  .note{animation:noteFloat 4.8s ease-in-out infinite alternate}
  .family{animation:cardIn .55s cubic-bezier(.23,1,.32,1) both}
  .family:nth-child(2){animation-delay:.08s}.family:nth-child(3){animation-delay:.16s}.family:nth-child(4){animation-delay:.24s}
  .swatch,.segmented button{transition:transform 180ms cubic-bezier(.23,1,.32,1),filter 180ms ease}
  .swatch:hover,.segmented button:hover{transform:translateY(-2px)}
  #status:not(:empty){animation:statusPop .28s cubic-bezier(.23,1,.32,1)}
}
.motion-paused .note,.motion-paused .family,.motion-paused .hero h1{animation-play-state:paused!important}
@keyframes noteFloat{to{transform:translateY(-5px) rotate(2deg)}}
@keyframes cardIn{from{opacity:0;transform:translateY(18px) rotate(-1deg)}to{opacity:1;transform:none}}
@keyframes statusPop{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.stage .angle-badge{top:14px;bottom:auto}

/* v5b: current-design module larger; part label lives in the controls panel, never inside the arch */
.workflow{grid-template-columns:24% 46% 30%;align-items:center}
.brief-card{padding:24px;gap:16px}
.card-label{font-size:12px}
.brief-body{grid-template-columns:220px 1fr;gap:28px}
.brief-card .thumb{width:220px;height:275px}
.brief-card dl{font-size:16px;gap:8px 18px}
.brief-foot{font-size:14px}
.controls .part-now{position:static;transform:none;white-space:normal;max-width:none;margin:0 0 14px;padding:9px 11px;background:#eef5fb;border-left:3px solid var(--blue);font-size:12px;font-weight:800;line-height:1.4}
.stage .angle-badge{top:auto;bottom:14px}
@media(max-width:1100px){.workflow{grid-template-columns:1fr 1.4fr}.workflow .steps{grid-column:1/-1}}
@media(max-width:760px){.workflow{grid-template-columns:1fr}.brief-body{grid-template-columns:130px 1fr;gap:16px}.brief-card .thumb{width:130px;height:163px}.brief-card dl{font-size:14px}}

/* Tuftini brand mark: preserve the supplied SVG aspect ratio at every breakpoint. */
:root{--blue:#1F3C9E;--yellow:#D9A23A;--red:#D63A2F;--paper:#F6EAD0;--ink:#162C78}
.logo-mark{display:inline-flex;align-items:center;width:132px;height:42px}
.logo-mark img{display:block;width:100%;height:auto;max-height:42px}
footer .logo-mark{width:118px;flex:0 0 auto}
.legal-page{max-width:860px;margin:0 auto;padding:clamp(64px,7vw,80px) 24px;min-height:calc(100vh - 180px)}
.legal-page .eyebrow{margin:0 0 14px;color:var(--red);font-size:12px;font-weight:800;letter-spacing:.1em}
.legal-page h1{font-size:clamp(48px,5.6vw,72px);max-width:760px}
.legal-page h2{font-size:clamp(34px,5vw,58px);margin-top:56px}
.legal-page p{max-width:720px;font-size:16px;line-height:1.6}
.legal-page a:not(.button){color:var(--blue);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.legal-page .button{margin:8px 8px 0 0;text-decoration:none}
@media(max-width:760px){.logo-mark{width:116px;height:36px}.logo-mark img{max-height:36px}.legal-page{padding:54px 20px}.legal-page p{font-size:15px}header nav{font-size:13px}}
