:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:#0c2148;background:#f3f7ff;font-synthesis:none}*{box-sizing:border-box}body{margin:0}a{color:inherit}#app{min-height:100vh}.site-header{background:#061a44;color:white;min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:25px;padding:15px max(4%,calc((100vw - 1580px)/2));flex-wrap:wrap}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-size:1.4rem;font-weight:800;letter-spacing:-.04em}.brand img{width:39px;height:39px;object-fit:contain}.accent{color:#35cfff}.site-header nav{display:flex;gap:clamp(12px,2.2vw,34px);align-items:center;flex-wrap:wrap}.site-header nav a{font-size:.92rem;text-decoration:none;color:#d9ecff;padding:8px 0;border-bottom:2px solid transparent}.site-header nav a:hover,.site-header nav a.active{color:white;border-color:#40cfff}.hero{min-height:clamp(250px,28vw,430px);background:linear-gradient(115deg,rgba(3,19,60,.38),rgba(3,82,181,.08)),url("/goodlinks/media/hero-background.png") center/cover no-repeat,linear-gradient(125deg,#04163f,#027ddb);display:grid;place-items:center;color:#fff;text-align:center;padding:35px 18px}.hero h1{font-size:clamp(3.2rem,7.5vw,6.6rem);font-weight:760;letter-spacing:-.065em;margin:0;line-height:1.08}.hero p{font-size:clamp(.9rem,1.5vw,1.2rem);letter-spacing:.16em;margin:22px 0 0}.site-body{width:min(94%,1540px);margin:0 auto;padding:45px 0 75px;min-height:48vh}.back{margin:0 0 30px}.back a{text-decoration:none;color:#17427b;font-weight:650}.back a:hover{text-decoration:underline}.link-group{margin:0 0 44px}.link-group h2{font-size:clamp(1.65rem,3vw,2.2rem);margin:0 0 12px;letter-spacing:-.035em}.group-intro{color:#527095;margin:0 0 20px}.cards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,275px),1fr));gap:20px}.resource-card{background:white;border:1px solid #dbe6fb;border-radius:22px;padding:25px;box-shadow:0 10px 30px rgba(20,55,112,.055);animation:appear .4s ease backwards;animation-delay:var(--delay)}.resource-card h3{font-size:1.2rem;letter-spacing:-.025em;margin:0 0 12px}.resource-card .description{color:#657d9c;margin:0 0 16px;font-size:.94rem}.resource-links{display:flex;flex-direction:column;gap:7px}.resource-link{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 11px;border-radius:10px;text-decoration:none;color:#0756ae;background:#eff6ff;font-size:.95rem;min-height:40px;overflow-wrap:anywhere}.resource-link:hover{background:#dfeeff}.resource-link span{color:#6b91c5}.resource-link.missing{color:#61718b;background:#f4f7fc}.gallery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}.photo-card{margin:0;padding:11px;background:#fff;border:1px solid #dbe6fb;border-radius:19px;box-shadow:0 9px 26px rgba(22,60,110,.07);overflow:hidden}.photo-card img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:11px}.outro{font-weight:600;color:#1d4278;margin-top:28px}footer{min-height:85px;background:#061a44;color:#c4dbf4;display:flex;align-items:center;justify-content:space-between;padding:20px max(4%,calc((100vw - 1580px)/2));gap:20px;font-size:.89rem}.missing-page{padding:12vh 5vw;text-align:center}@keyframes appear{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(max-width:1100px){.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:700px){.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.photo-card{padding:7px;border-radius:13px}.site-header{justify-content:center;gap:6px;padding:14px}.brand{font-size:1.25rem}.site-header nav{justify-content:center;width:100%;gap:18px}.site-body{width:min(93%,1540px);padding-top:30px}.hero{min-height:250px}.hero h1{font-size:3.3rem}footer{flex-direction:column;justify-content:center;gap:5px}}@media(max-width:370px){.gallery-grid{grid-template-columns:1fr}}

/* 3D request page: the form itself stays with Google, while its frame uses GoodLinks styling. */
.hero--form{min-height:clamp(220px,22vw,320px);padding-bottom:64px}
.hero--form h1{font-size:clamp(2.8rem,6.2vw,5.4rem)}
.site-body--form{width:min(94%,1240px);padding-top:0;padding-bottom:85px;min-height:unset}
.site-body--form .back{position:relative;z-index:2;padding-top:23px;margin-bottom:20px}
.form-section{width:min(100%,1050px);margin:0 auto}
.form-panel{background:#fff;border:1px solid #dce8fa;border-radius:26px;box-shadow:0 18px 52px rgba(10,41,96,.085);padding:clamp(20px,3.2vw,38px)}
.form-intro{border-bottom:1px solid #e6eefa;padding-bottom:24px;margin-bottom:22px}
.form-kicker{display:inline-block;color:#0756ae;background:#eaf4ff;border:1px solid #d4e7ff;border-radius:100px;font-size:.76rem;font-weight:800;letter-spacing:.1em;padding:8px 13px;margin-bottom:16px}
.form-intro h2{margin:0 0 9px;color:#102c59;font-size:clamp(1.75rem,3vw,2.5rem);letter-spacing:-.035em;line-height:1.18}
.form-intro p{margin:0;color:#536d8e;line-height:1.6;max-width:760px}
.form-frame{background:#f8fbff;border:1px solid #e2eafb;border-radius:18px;overflow:hidden}
.form-frame iframe{display:block;width:100%;height:1100px;min-height:650px;border:0;background:white}
.form-help{margin:22px 0 0;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:13px}
.form-help>span{font-size:.91rem;color:#58718f}
.form-help a{background:#0b63c6;color:#fff;text-decoration:none;font-weight:750;font-size:.94rem;display:inline-flex;align-items:center;gap:10px;padding:12px 18px;border-radius:11px;transition:background .2s}
.form-help a:hover{background:#064a98}
.form-help a:focus-visible{outline:3px solid #74bafa;outline-offset:3px}
.form-message{padding:25px;background:#fff8f3;border:1px solid #edd3c6;border-radius:16px}
@media(max-width:700px){
 .hero--form{min-height:210px;padding-bottom:35px}
 .hero--form h1{font-size:clamp(2.5rem,11vw,3.5rem)}
 .site-body--form{width:min(96%,1240px);padding-bottom:50px}
 .site-body--form .back{padding-left:9px;padding-top:18px;margin-bottom:15px}
 .form-panel{border-radius:18px;padding:14px}
 .form-intro{padding:8px 5px 18px}
 .form-frame{border-radius:11px}
 .form-frame iframe{height:900px;min-height:680px}
 .form-help{padding:0 5px 5px;align-items:flex-start}
 .form-help a{width:100%;justify-content:center}
}

/* Native two-column GoodLinks 3D request form */
.native-request-form{width:min(100%,1060px);margin:0 auto;background:white;border:1px solid #dce7f7;border-radius:24px;box-shadow:0 20px 60px rgba(9,37,84,.08);overflow:hidden}
.native-form-heading{display:flex;justify-content:space-between;gap:22px;padding:clamp(26px,4vw,45px);background:linear-gradient(110deg,#fff 25%,#eef6ff);border-bottom:1px solid #dce8fa}
.native-form-heading h2{font-size:clamp(1.8rem,3.3vw,2.7rem);line-height:1.12;letter-spacing:-.035em;margin:6px 0 12px}
.native-form-heading p{color:#546b8c;line-height:1.55;max-width:690px;margin:0}
.form-heading-icon{background:#e2efff;color:#1375dc;border-radius:18px;width:60px;height:60px;display:grid;place-items:center;font-size:2.5rem;flex:none}
.native-form-table{margin:0 0 14px}
.form-table-top{display:grid;grid-template-columns:42% 58%;background:#edf5ff;border-bottom:1px solid #dbe7fa;color:#496689;font-size:.78rem;font-weight:800;letter-spacing:.13em;padding:13px 36px}
.form-table-top span:last-child{padding-left:22px}
.question-group-heading{padding:17px 36px 12px;background:#f5f9ff;color:#1556a3;font-weight:800;letter-spacing:.03em;border-bottom:1px solid #e4edf9;font-size:.95rem}
.question-row{display:grid;grid-template-columns:42% 58%;gap:0;border-bottom:1px solid #e7edf5;min-height:99px}
.question-row:last-child{border-bottom:0}
.question-label{display:flex;gap:17px;align-items:start;padding:26px 24px 26px 36px}
.question-index{display:inline-flex;align-items:center;justify-content:center;flex:0 0 36px;width:36px;min-width:36px;min-height:36px;white-space:nowrap;font-variant-numeric:tabular-nums;font-size:.79rem;font-weight:800;color:#5e91ce;background:#edf5ff;padding:6px 7px;border-radius:7px;line-height:1.2}
.question-title{color:#112d58;font-size:1.06rem;font-weight:740;line-height:1.35;display:block;padding-top:2px}
.question-description{color:#617a9a;line-height:1.48;font-size:.88rem;margin:9px 0 0}
.required-indicator{color:#1874db;font-weight:900}
.question-answer{padding:19px 36px 19px 22px;display:flex;flex-direction:column;justify-content:center}
.question-answer input:not([type=radio]):not([type=checkbox]),.question-answer textarea{font:inherit;display:block;width:100%;border:1px solid #cedced;background:#fff;border-radius:11px;outline:none;color:#132e54;padding:13px 15px;min-height:49px;transition:border-color .15s,box-shadow .15s}
.question-answer textarea{min-height:100px;resize:vertical}
.question-answer input:focus-visible,.question-answer textarea:focus-visible{border-color:#1472d8;box-shadow:0 0 0 3px rgba(48,142,255,.14)}
.question-answer input::placeholder,.question-answer textarea::placeholder{color:#8a9eb6}
.choice-group{display:grid;grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:10px;margin:0;padding:0;border:0;min-width:0}
.choice-option{display:flex;align-items:center;gap:10px;background:#f7faff;border:1px solid #dbe7f5;border-radius:11px;padding:12px 13px;cursor:pointer;font-size:.91rem;line-height:1.4;color:#274d79;transition:background .16s,border-color .16s}
.choice-option:has(input:checked){border-color:#1486f8;background:#eaf5ff;color:#064ca0}
.choice-option input{accent-color:#0d74de;width:17px;height:17px;flex:none;margin:0}
.checkbox-option{display:flex;align-items:start;gap:12px;line-height:1.5;color:#274d79}
.checkbox-option input{accent-color:#0b76dd;width:19px;height:19px;flex:none;margin-top:2px}
.form-submit-area{padding:20px 36px 30px;display:flex;justify-content:space-between;gap:20px;align-items:center}
.form-submission-note{font-size:.86rem;color:#657d9c;line-height:1.5;margin:0;max-width:480px}
.form-submit{border:0;background:#0875e4;color:#fff;font:inherit;font-weight:750;padding:14px 23px;border-radius:11px;cursor:pointer;white-space:nowrap;transition:background .15s,transform .15s}
.form-submit:hover:not(:disabled){background:#0456ad;transform:translateY(-1px)}
.form-submit:disabled{opacity:.6;cursor:not-allowed}
.form-submit span{margin-left:10px}
.form-feedback{padding:15px 20px;border-radius:11px;margin:0 36px 24px;line-height:1.5;font-weight:600}
.form-feedback:empty{display:none}
.form-feedback.success{background:#e9fbef;color:#176039}
.form-feedback.error{background:#fff0f0;color:#983333}
.form-preview-note{background:#e9f4ff;border-top:1px solid #d2e8ff;padding:17px 36px;line-height:1.5;color:#295b8b;font-size:.91rem}
.form-preview-note a{color:#0552af;font-weight:750}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:730px){
 .native-request-form{border-radius:17px}
 .native-form-heading{padding:23px}
 .form-heading-icon{display:none}
 .form-table-top{display:none}
 .question-row{display:block}
 .question-group-heading{padding:14px 21px}
 .question-label{padding:20px 21px 10px;gap:12px}
 .question-answer{padding:8px 21px 22px}
 .choice-group{grid-template-columns:1fr}
 .form-submit-area{padding:18px 21px 26px;flex-direction:column;align-items:stretch}
 .form-submit{width:100%}
 .form-preview-note{padding:18px 21px}
 .form-feedback{margin:0 21px 21px}
}

.form-trap{display:none!important}

/* Conditional branches and customisation */
.question-row[hidden],.question-group-heading[hidden]{display:none!important}
.native-form-heading{align-items:center}
.terms-context{background:#f5f9ff;border-top:1px solid #e6eefa;padding:17px 36px;color:#486688;font-size:.91rem;line-height:1.6}
.terms-context a{color:#0756ae;font-weight:760}
.terms-context a:focus-visible{outline:2px solid #1893ed;outline-offset:3px}
.product-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:11px;margin:0;padding:0;border:0;min-width:0}
.product-option{display:flex;align-items:center;gap:12px;cursor:pointer;background:#f7faff;border:1px solid #dbe7f5;border-radius:12px;padding:14px;min-height:72px;color:#1c3e70}
.product-option:hover,.choice-option:hover{background:#edf6ff}
.product-option:has(input:checked){background:#e7f3ff;border-color:#1381ed}
.product-option input{width:18px;height:18px;accent-color:#0875e4;flex:none}
.product-option .option-text{font-weight:720;line-height:1.3}
.product-option .option-text small{display:block;font-size:.81rem;font-weight:530;color:#607a9c;margin-top:7px}
.selection-hint{font-size:.82rem;color:#5a7598;display:block;margin-top:10px}
.strength-scale{border:0;margin:0;padding:0;min-width:0}
.strength-options{display:grid;grid-template-columns:repeat(11,minmax(0,1fr));gap:5px}
.strength-item{display:flex;flex-direction:column;align-items:center;gap:9px;cursor:pointer;font-size:.81rem;font-weight:670;color:#315982}
.strength-item input{accent-color:#0a75e1;width:17px;height:17px;margin:0}
.scale-labels{display:flex;justify-content:space-between;margin-top:10px;font-size:.81rem;color:#5c7698}
.inline-notice{background:#eaf4ff;border-left:4px solid #147ce5;padding:14px 17px;border-radius:9px;line-height:1.55;color:#245581;font-size:.92rem}
.upload-control input{font:inherit;color:#28547e;max-width:100%;font-size:.9rem}
.upload-control input::file-selector-button{border:1px solid #c7ddf4;background:#eaf4ff;border-radius:9px;padding:10px 13px;color:#0756ae;cursor:pointer;font-weight:720;margin-right:14px}
.upload-hint{display:block;color:#7188a7;margin-top:9px;font-size:.8rem;line-height:1.4}
.choice-option:focus-within,.product-option:focus-within{outline:2px solid #268de8;outline-offset:2px}
@media(max-width:730px){
 .product-options{grid-template-columns:1fr}
 .terms-context{padding:18px 21px}
 .strength-options{gap:3px}
 .strength-item input{width:15px;height:15px}
}

/* Security-check placement for the native order form */
.goodlinks-turnstile{padding:12px 36px 0;min-height:75px}
@media(max-width:730px){.goodlinks-turnstile{padding:10px 21px 0}}

.native-form-privacy{padding:0 36px 24px;color:#5b7190;font-size:.83rem;line-height:1.6}
@media(max-width:730px){.native-form-privacy{padding:0 21px 23px}}

/* Clear submit state: no button until the visible required questions are complete. */
.form-submit-controls{display:flex;flex-direction:column;gap:8px;align-items:flex-end;max-width:470px}
.form-required-prompt,.form-service-message{margin:0;text-align:right;color:#245581;font-weight:700;font-size:.94rem;line-height:1.5}
.form-required-prompt{border-radius:11px;background:#eaf4ff;padding:14px 18px}
.form-service-message{color:#815523;background:#fff5e6;border-radius:11px;padding:14px 18px}
.form-submit[hidden],.form-required-prompt[hidden],.form-service-message[hidden]{display:none!important}
@media(max-width:730px){
 .form-submit-controls{align-items:stretch;width:100%;max-width:none}
 .form-required-prompt,.form-service-message{text-align:center}
}

/* Visible confirmation and error feedback for 3D printing requests */
.native-request-form .form-feedback{
  max-width:none;
  margin:20px 36px 0;
  border-radius:12px;
  padding:16px 20px;
  font-weight:700;
  line-height:1.55;
  scroll-margin-top:24px;
}
.native-request-form .form-feedback:empty{display:none}
.native-request-form .form-feedback.pending{
  background:#eaf4ff;
  border:1px solid #c3e1ff;
  color:#134e87;
}
.native-request-form .form-feedback.success{
  background:#e4f9ed;
  border:1px solid #ade3c4;
  color:#155d3b;
}
.native-request-form .form-feedback.error{
  background:#fff0f0;
  border:1px solid #f4caca;
  color:#953131;
}
@media(max-width:730px){
  .native-request-form .form-feedback{margin:14px 21px 0;padding:16px}
}

.form-backup-link{margin:8px 36px 25px;color:#526e90;font-size:.86rem;line-height:1.5}
.form-backup-link a{color:#0a5fa5;font-weight:730;text-decoration:underline}
@media(max-width:730px){.form-backup-link{margin:8px 21px 22px}}


/* Customer-facing improvements shared across the 3D form and resource pages. */
:where(.native-request-form,.resource-card,.form-panel){overflow-wrap:anywhere}
.native-request-form .question-row{scroll-margin-top:24px}
.native-request-form :is(input,select,textarea):focus-visible,
.native-request-form button:focus-visible,
.site-header a:focus-visible,
.resource-link:focus-visible{
 outline:3px solid #1a8cf0;outline-offset:3px
}
.native-request-form .question-answer :is(input[type=text],input[type=email],input[type=url],input[type=number],textarea,select){
 max-width:100%;min-height:44px;line-height:1.5
}
.native-request-form textarea{resize:vertical;min-height:110px}
.native-request-form .form-submit{min-height:48px}
.native-request-form .form-feedback{overflow-wrap:anywhere}
.site-header nav a{min-height:40px;display:inline-flex;align-items:center}
@media(max-width:730px){
 .site-body{width:min(94%,1540px);padding:28px 0 56px}
 .native-form-heading{padding:22px 20px}
 .form-submit-controls{gap:12px}
 .form-submit{min-height:50px}
 .question-answer input[type=file]{width:100%}
}
@media(prefers-reduced-motion:reduce){
 .resource-card{animation:none}
 html:focus-within{scroll-behavior:auto}
}

/* Good Links 3D identity: printer + chain icon on the request form. */
.form-heading-icon{background:#061a44;padding:8px}
.form-heading-icon img{display:block;width:100%;height:100%;object-fit:contain}


/* Curated gallery system: Child Bookeees and Apples only.
   Existing Popcorn and Satisfying galleries deliberately remain unchanged. */
.hero--books,.hero--apples{position:relative;isolation:isolate;overflow:hidden;min-height:350px;padding:60px 20px;background-image:none}
.hero--books{background:radial-gradient(ellipse at 16% 14%,rgba(255,214,152,.35),transparent 34%),radial-gradient(ellipse at 90% 90%,rgba(242,172,160,.3),transparent 46%),linear-gradient(125deg,#13264d,#344d73 58%,#6d6686)}
.hero--apples{background:radial-gradient(circle at 13% 18%,rgba(222,245,173,.28),transparent 32%),radial-gradient(circle at 85% 90%,rgba(190,242,209,.25),transparent 42%),linear-gradient(120deg,#103b36,#1d6756 65%,#417d61)}
.hero--books::after,.hero--apples::after{content:"";position:absolute;inset:auto -15% -120% 45%;width:650px;height:650px;border:1px solid rgba(255,255,255,.14);border-radius:50%;z-index:-1;box-shadow:0 0 0 65px rgba(255,255,255,.035),0 0 0 130px rgba(255,255,255,.025)}
.hero--books .hero-inner,.hero--apples .hero-inner{max-width:900px}
.hero__overline{display:inline-block;padding:9px 13px;margin-bottom:23px;background:rgba(255,255,255,.11);border:1px solid rgba(255,255,255,.2);border-radius:99px;font-size:.75rem;font-weight:800;letter-spacing:.16em;color:#f6f9ff}
.hero--books h1,.hero--apples h1{font-size:clamp(3rem,8vw,6.3rem);letter-spacing:-.066em;text-wrap:balance;line-height:1.03}
.hero--books p,.hero--apples p{margin:23px auto 0;max-width:660px;color:#e7eff8;font-size:clamp(.94rem,1.5vw,1.16rem);line-height:1.7;letter-spacing:normal}
.draft-notice{display:flex;align-items:center;gap:6px;margin:0 0 20px;background:#fff9e9;border:1px solid #f0dba5;color:#775315;padding:12px 16px;border-radius:13px;font-size:.84rem}
.draft-notice span{font-weight:850;letter-spacing:.07em}
.showcase{--showcase-accent:#1e705b;--showcase-surface:#e5f4eb;--showcase-soft:#f5fbf5;position:relative}
.showcase--books{--showcase-accent:#8f5e40;--showcase-surface:#fcf0df;--showcase-soft:#fcf9f3}
.showcase__intro{display:flex;align-items:end;justify-content:space-between;gap:22px;margin:0 0 29px}
.showcase__eyebrow{display:inline-block;font-size:.75rem;letter-spacing:.12em;font-weight:800;color:var(--showcase-accent);margin-bottom:12px}
.showcase__intro h2{font-size:clamp(1.7rem,3.2vw,2.75rem);line-height:1.14;letter-spacing:-.045em;margin:0 0 9px;color:#102d4c}
.showcase__intro p{font-size:1rem;line-height:1.65;color:#60758e;margin:0}
.showcase__count{display:inline-flex;align-items:center;white-space:nowrap;color:#28526a;background:#e9f4fb;border:1px solid #ccdfeb;border-radius:99px;padding:10px 15px;font-weight:800;font-size:.82rem}
.showcase__toolbar{display:flex;justify-content:space-between;align-items:end;gap:15px;padding:16px 19px;margin-bottom:21px;border-radius:17px;background:#fff;border:1px solid #dae6ee;box-shadow:0 5px 19px rgba(20,63,94,.035)}
.showcase__toolbar label{display:flex;flex:1;align-items:center;gap:14px;font-size:.87rem;font-weight:750;color:#294863}
.showcase__toolbar input{appearance:none;width:100%;max-width:385px;height:44px;border:1px solid #cbdae9;border-radius:11px;padding:10px 14px;color:#143a55;font-size:.91rem;background:#f7fafd;outline:none}
.showcase__toolbar input:focus{border-color:var(--showcase-accent);box-shadow:0 0 0 3px rgba(41,136,120,.14)}
.showcase__results{color:#6d8398;font-size:.79rem;font-weight:700;white-space:nowrap}
.showcase__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.showcase-card{display:flex;flex-direction:column;min-width:0;padding:10px;text-align:left;background:#fff;color:#152c48;border:1px solid #dbe6ed;border-radius:19px;overflow:hidden;box-shadow:0 7px 24px rgba(28,56,86,.055);font:inherit;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}
.showcase-card:hover{transform:translateY(-4px);border-color:#a6cfc1;box-shadow:0 19px 35px rgba(21,61,65,.12)}
.showcase-card:focus-visible{outline:3px solid #43a993;outline-offset:3px}
.showcase-card__image{display:grid;place-items:center;min-height:242px;height:250px;position:relative;overflow:hidden;border-radius:12px;background:radial-gradient(circle at 50% 35%,#fff 8%,var(--showcase-surface) 150%)}
.showcase-card__image::before{content:"";position:absolute;inset:17px;border:1px dashed rgba(32,87,64,.09);border-radius:9px;pointer-events:none}
.showcase-card__image img{max-width:calc(100% - 38px);max-height:calc(100% - 26px);width:auto;height:auto;object-fit:contain;filter:drop-shadow(0 9px 10px rgba(11,25,35,.14));transition:transform .18s ease}
.showcase-card:hover .showcase-card__image img{transform:scale(1.035)}
.showcase--books .showcase-card__image{height:295px;background:radial-gradient(circle at 50% 27%,#fffdfa 5%,#f4ebda 160%)}
.showcase--apples .showcase-card:nth-child(5n+2) .showcase-card__image{background:linear-gradient(155deg,#f0f8fe,#dceaf8)}
.showcase--apples .showcase-card:nth-child(5n+3) .showcase-card__image{background:linear-gradient(155deg,#fff7ea,#f9e1ca)}
.showcase--apples .showcase-card:nth-child(5n+4) .showcase-card__image{background:linear-gradient(155deg,#f8f0ff,#e6dbf4)}
.showcase--apples .showcase-card:nth-child(5n+5) .showcase-card__image{background:linear-gradient(155deg,#fff2f4,#f8dfe7)}
.showcase-card__footer{display:flex;align-items:center;gap:12px;padding:16px 7px 6px;min-height:64px}
.showcase-card__number{flex:none;display:grid;place-items:center;width:35px;height:35px;background:var(--showcase-soft);border:1px solid #e3edec;border-radius:10px;color:var(--showcase-accent);font-size:.72rem;font-weight:900;font-variant-numeric:tabular-nums}
.showcase-card__title{font-size:clamp(.9rem,1.25vw,1rem);font-weight:800;line-height:1.35;letter-spacing:-.01em;overflow-wrap:anywhere;flex:1;min-width:0}
.showcase-card__arrow{color:var(--showcase-accent);font-size:1.15rem;align-self:center}
.showcase__empty{background:#fff;border:1px dashed #c4d3df;border-radius:16px;padding:28px;text-align:center;color:#627a90;font-size:.95rem}
.showcase__end{text-align:center;margin:34px 0 0;color:#7c90a3;font-size:.71rem;letter-spacing:.2em;font-weight:800}
.showcase__end span{color:var(--showcase-accent);font-size:1rem;vertical-align:-1px;margin-left:8px}
.showcase [hidden]{display:none!important}
.showcase-viewer{position:fixed;inset:0;margin:auto;width:min(900px,calc(100vw - 26px));height:min(850px,calc(100dvh - 26px));max-width:none;max-height:none;border:1px solid #c6d9e4;padding:0;border-radius:20px;overflow:hidden;background:#fff;color:#19314a;box-shadow:0 25px 90px rgba(0,10,29,.42)}
.showcase-viewer::backdrop{background:rgba(3,15,31,.77);backdrop-filter:blur(6px)}
.showcase-viewer__top{height:60px;display:flex;justify-content:space-between;align-items:center;gap:15px;padding:12px 20px;background:#061a44;color:#fff}
.showcase-viewer__badge{font-size:.75rem;font-weight:800;letter-spacing:.13em;color:#d6e8fa}
.showcase-viewer__close{font:inherit;background:rgba(255,255,255,.09);color:#fff;border:1px solid rgba(255,255,255,.23);border-radius:9px;width:36px;height:36px;font-size:27px;display:grid;place-items:center;cursor:pointer}
.showcase-viewer__stage{height:calc(100% - 162px);display:grid;grid-template-columns:53px minmax(0,1fr) 53px;gap:4px;align-items:center;justify-items:center;padding:12px 15px;background:radial-gradient(circle at 50% 30%,#fff,#eaf2f5)}
.showcase-viewer__stage img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;filter:drop-shadow(0 14px 14px rgba(23,47,65,.15))}
.showcase-viewer__prev,.showcase-viewer__next{border:1px solid #d3e2ed;border-radius:50%;width:43px;height:43px;background:#fff;color:#18406b;display:grid;place-items:center;font-size:32px;cursor:pointer}
.showcase-viewer__prev:hover,.showcase-viewer__next:hover{border-color:#7bbfae}
.showcase-viewer__bottom{min-height:102px;padding:15px 22px;display:flex;align-items:center;justify-content:space-between;gap:15px;background:#fff}
.showcase-viewer__bottom h3{margin:0 0 5px;font-size:1.12rem;line-height:1.35;overflow-wrap:anywhere}
.showcase-viewer__bottom span{color:#7790a2;font-size:.83rem}
.showcase-viewer__done{flex:none;background:#0a427c;border:0;border-radius:10px;color:#fff;font:inherit;font-size:.85rem;font-weight:750;padding:11px 15px;cursor:pointer}
.showcase-viewer button:focus-visible{outline:3px solid #5bbfea;outline-offset:3px}
@media(max-width:1150px){.showcase__grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:830px){.showcase__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.showcase__intro{align-items:start}.showcase__count{margin-top:13px}.showcase--books .showcase-card__image{height:260px}}
@media(max-width:570px){
 .hero--books,.hero--apples{min-height:270px;padding:43px 15px}
 .hero--books h1,.hero--apples h1{font-size:clamp(2.6rem,12vw,4.1rem)}
 .hero--books p,.hero--apples p{letter-spacing:normal;margin:16px auto 0}
 .showcase__intro{display:block}.showcase__count{margin-top:15px}
 .showcase__toolbar{align-items:stretch;flex-direction:column;padding:14px}
 .showcase__toolbar label{flex-direction:column;align-items:start;gap:8px}
 .showcase__toolbar input{max-width:none}.showcase__results{align-self:end}
 .showcase__grid{gap:10px}.showcase-card{padding:6px;border-radius:13px}
 .showcase-card__image{height:175px;min-height:175px;border-radius:8px}
 .showcase--books .showcase-card__image{height:202px}
 .showcase-card__image img{max-width:calc(100% - 18px);max-height:calc(100% - 12px)}
 .showcase-card__footer{gap:6px;padding:11px 4px 5px}
 .showcase-card__number{width:28px;height:28px;font-size:.65rem;border-radius:8px}
 .showcase-card__title{font-size:.83rem}.showcase-card__arrow{font-size:1rem}
 .showcase-viewer__stage{grid-template-columns:39px minmax(0,1fr) 39px;padding:5px}
 .showcase-viewer__prev,.showcase-viewer__next{width:35px;height:35px;font-size:27px}
 .showcase-viewer__bottom{padding:12px 14px}.showcase-viewer__done{font-size:.75rem;padding:10px}
 .showcase-viewer__bottom h3{font-size:.92rem}
}
@media(prefers-reduced-motion:reduce){.showcase-card,.showcase-card__image img{transition:none}.showcase-viewer::backdrop{backdrop-filter:none}}


/* Child Books: true static Satisfying-style photographs. No hover, click or zoom. */
.site-body--child-books .gallery-grid .photo-card,
.site-body--child-books .gallery-grid .photo-card:hover,
.site-body--child-books .gallery-grid .photo-card:active,
.site-body--child-books .gallery-grid .photo-card:focus,
.site-body--child-books .gallery-grid .photo-card img,
.site-body--child-books .gallery-grid .photo-card img:hover,
.site-body--child-books .gallery-grid .photo-card img:active {
  pointer-events: none !important;
  cursor: default !important;
  transform: none !important;
  transition: none !important;
  animation: none !important;
}
.site-body--child-books .gallery-grid .photo-card:hover {
  border-color: #dbe6fb;
  box-shadow: 0 9px 26px rgba(22,60,110,.07);
}
.site-body--child-books .gallery-grid .photo-card img:hover {
  filter: none !important;
}
/* Child Books: show each original book image in full, using its natural proportions.
   Other Good Links galleries retain their existing 4:3 cover crop. */
.site-body--child-books .gallery-grid .photo-card {
  align-self: start;
}
.site-body--child-books .gallery-grid .photo-card img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: auto;
  object-fit: contain;
}
/* Other image galleries, especially Apples, keep their existing behaviours. */


/* Apples keep clickable search cards, but never crop or distort any character art. */
.showcase--apples .showcase-card{text-decoration:none}
.showcase--apples .showcase-card__image img{display:block;width:100%;height:100%;max-width:none;max-height:none;padding:14px;object-fit:contain}
.showcase--apples .showcase-card__image{isolation:isolate}
.hero--apple-profile{min-height:235px;padding:38px 18px}
.hero--apple-profile h1{font-size:clamp(2.6rem,6.5vw,4.7rem)}
.apple-profile{max-width:1160px;margin:0 auto}
.apple-profile__back{display:inline-flex;align-items:center;margin:0 0 25px;text-decoration:none;color:#116b57;font-weight:780}
.apple-profile__back:hover{text-decoration:underline}
.apple-profile__layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(20px,4vw,48px);align-items:stretch}
.apple-profile__portrait{margin:0;min-width:0;min-height:340px;height:min(64vh,570px);display:grid;place-items:center;padding:25px;border-radius:25px;background:radial-gradient(circle at 50% 28%,#fff,#e7f6ec 125%);border:1px solid #cfdfda;box-shadow:0 15px 35px rgba(28,75,68,.07)}
.apple-profile__portrait img{display:block;max-width:100%;max-height:100%;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 12px 14px rgba(24,51,46,.12))}
.apple-profile__details{min-width:0;padding:clamp(12px,2vw,28px) 0;display:flex;flex-direction:column;justify-content:center}
.apple-profile__eyebrow{font-size:.78rem;color:#16725f;letter-spacing:.14em;font-weight:900}
.apple-profile__details h2{margin:12px 0;line-height:1.1;color:#103b36;font-size:clamp(2rem,4vw,3.6rem);letter-spacing:-.05em;overflow-wrap:anywhere}
.apple-profile__tagline{margin:0 0 28px;color:#57746f;font-size:clamp(1rem,1.7vw,1.2rem);line-height:1.5}
.apple-profile__story{padding:24px;background:#fff;border:1px solid #d9e9e4;border-radius:19px;box-shadow:0 10px 30px rgba(15,66,54,.05)}
.apple-profile__story h3{margin:0 0 14px;color:#13755e;font-size:.83rem;letter-spacing:.13em;text-transform:uppercase}
.apple-profile__story p{margin:0;color:#284b55;font-size:1.08rem;line-height:1.85;overflow-wrap:anywhere}
.apple-profile__pager{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:32px}
.apple-profile__pager a{min-width:0;display:flex;flex-direction:column;gap:6px;padding:19px 22px;border:1px solid #cee2d9;background:#fff;border-radius:15px;text-decoration:none;transition:background .16s ease,border-color .16s ease}
.apple-profile__pager a:last-child{text-align:right}
.apple-profile__pager a:hover{background:#edf8f1;border-color:#83bfa7}
.apple-profile__pager a span{font-size:.8rem;color:#4c8075;font-weight:750}
.apple-profile__pager a strong{color:#183e36;overflow-wrap:anywhere}
.apple-profile a:focus-visible{outline:3px solid #42a98f;outline-offset:3px}
@media(max-width:760px){.apple-profile__layout{grid-template-columns:minmax(0,1fr)}.apple-profile__portrait{min-height:250px;height:min(48vh,420px);padding:18px}.apple-profile__details{padding:4px 0}.apple-profile__pager{gap:10px}.apple-profile__pager a{padding:15px 12px}}
@media(max-width:400px){.apple-profile__pager{grid-template-columns:1fr}.apple-profile__pager a:last-child{text-align:left}}


/* User-owned imported image collections: original proportions, no cropping.
   Retain the same static, rounded gallery cards as Child Books. */
.site-body--full-gallery .gallery-grid .photo-card {
  align-self: start;
}
.site-body--full-gallery .gallery-grid .photo-card img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: auto;
  object-fit: contain;
}


/* Keep very tall and very wide original apple art inside its rounded card. */
.showcase--apples .showcase__grid { min-width: 0; align-items: stretch; }
.showcase--apples .showcase-card { min-width: 0; max-width: 100%; overflow: hidden; }
.showcase--apples .showcase-card__image {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-width: 0;
  flex: none;
  overflow: hidden;
  contain: layout paint;
}
.showcase--apples .showcase-card__image img {
  position: static;
  display: block;
  box-sizing: border-box;
  flex: 0 1 auto;
  width: auto;
  height: auto;
  max-width: calc(100% - 28px);
  max-height: calc(100% - 26px);
  min-width: 0;
  min-height: 0;
  padding: 0;
  object-fit: contain;
}
.apple-profile__portrait {
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  contain: layout paint;
}
.apple-profile__portrait img {
  display: block;
  flex: none;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 100%;
  min-width: 0;
  min-height: 0;
  object-fit: contain;
}
/* The original Skinny Apple screenshot has a stray mark along its left edge.
   Mask only that small margin, without overwriting or regenerating the image. */
.showcase--apples img.apple-art--edge-cleaned,
.apple-profile__portrait img.apple-art--edge-cleaned {
  clip-path: inset(0 11% 0 0);
}
@media(max-width:570px) {
  .showcase--apples .showcase-card__image img {
    max-width: calc(100% - 12px);
    max-height: calc(100% - 12px);
  }
}


/* Consistent, accessible navigation across every public Good Links page. */
.site-header nav{max-width:100%;min-width:0}
.site-header nav a:focus-visible,.brand:focus-visible,.resource-link:focus-visible{outline:3px solid #45cfff;outline-offset:4px;border-radius:5px}
.hero--gallery{min-height:clamp(185px,21vw,270px);padding:25px 18px}
.hero--gallery h1{font-size:clamp(2.7rem,6vw,4.85rem)}
.hero--listing{min-height:clamp(185px,21vw,285px);padding:25px 18px}
.hero--listing h1{font-size:clamp(2.7rem,6vw,4.85rem)}
.site-body--full-gallery .gallery-grid .photo-card,.site-body--child-books .gallery-grid .photo-card{max-width:100%}
@media(max-width:1000px){.site-header{gap:11px}.site-header nav{gap:clamp(9px,1.6vw,20px)}}
@media(max-width:700px){
 .site-header nav{flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start;width:100%;white-space:nowrap;scrollbar-width:thin;padding:0 4px 6px}
 .site-header nav a{flex:none}
 .hero--gallery,.hero--listing{min-height:185px;padding:22px 15px}
 .hero--gallery h1,.hero--listing h1{font-size:clamp(2.35rem,9vw,3.6rem)}
}

/* Customer-facing temporary notice at the start of the /3d request form. */
.native-request-form .print-backorder-notice{display:flex;align-items:flex-start;gap:13px;padding:18px clamp(20px,4vw,45px);background:#fff8e9;border-bottom:1px solid #ecd8a7;color:#684a13;line-height:1.5}
.print-backorder-marker{display:grid;place-items:center;flex:0 0 26px;width:26px;height:26px;border-radius:50%;background:#f7e6b7;color:#765313;font-size:.94rem;font-weight:900}
.print-backorder-notice strong{display:block;font-size:1rem;line-height:1.35}
.print-backorder-notice p{margin:4px 0 0;font-size:.91rem;color:#735c32}
@media(max-width:730px){.native-request-form .print-backorder-notice{padding:16px 20px;gap:11px}}
