/* Template pages: light design. Tokens match the gallery (build shell.css, "Light design: gallery"); keep them in sync. */
.crb-tp{--ld-bg:#F7F8FA;--ld-card:#FFFFFF;--ld-ink:#1c1b18;--ld-muted:#6b655a;--ld-line:#e4ddce;--ld-serif:Poppins,sans-serif;--ld-shadow:0 1px 2px rgba(60,45,20,.04),0 10px 28px rgba(60,45,20,.06);--ld-pill:linear-gradient(180deg,#fff 0%,#EEF0F3 100%)}
html{scroll-behavior:smooth}
body.crb-tp-body{margin:0;background:var(--crb-bg,#F7F8FA)}
.crb-tp.crb-page{min-height:100vh;display:flex;flex-direction:column;line-height:1.6;color:var(--ld-ink);background:radial-gradient(120% 55% at 50% 0,#FFFFFF 0,rgba(251,248,241,0) 70%),var(--ld-bg)}
.crb-tp [hidden]{display:none!important}
.crb-tp-view{display:flex;flex-direction:column;flex:1}
.crb-tp-editor{flex:1;min-width:0}
.crb-tp.is-loading .crb-tp-start{opacity:.7;cursor:progress}
.crb-tp-wrap{width:100%;max-width:1200px;margin:0 auto;padding:8px 20px 32px;display:grid;grid-template-columns:minmax(0,1fr);gap:28px;flex:1}
.crb-tp-w-full .crb-tp-wrap{max-width:none}
.crb-tp-wrap:not(.has-left):not(.has-right) .crb-tp-main{width:100%;max-width:880px;margin:0 auto}
.crb-tp-sp-compact .crb-tp-sec{margin-bottom:24px}
.crb-tp-sp-roomy .crb-tp-sec{margin-bottom:72px}
.crb-tp-main{min-width:0}
.crb-tp-sec{margin:0 0 48px}
.crb-tp-view h1,.crb-tp-view h2{font-family:var(--ld-serif);font-weight:400;color:var(--ld-ink);letter-spacing:-.02em}
.crb-tp-view h1{font-size:clamp(2rem,6.2vw,3.1rem);line-height:1.1;margin:6px 0 16px}
.crb-tp-view h2{font-size:clamp(1.5rem,4vw,2rem);line-height:1.2;margin:0 0 14px}
.crb-tp-view h3{font-size:1.05rem;font-weight:600;margin:22px 0 8px;color:var(--ld-ink)}
.crb-tp-intro{position:relative;isolation:isolate;text-align:center;padding-top:28px}
.crb-tp-intro{overflow-x:clip}.crb-tp-intro::before{content:"";position:absolute;z-index:-1;left:50%;top:-150px;width:min(760px,130vw);aspect-ratio:1;transform:translateX(-50%);background:repeating-radial-gradient(circle,rgba(70,58,35,.05) 0 1px,transparent 1px 16px);-webkit-mask-image:radial-gradient(circle,#000 0,transparent 64%);mask-image:radial-gradient(circle,#000 0,transparent 64%);pointer-events:none}
.crb-tp-intro .crb-tp-prose{margin:0 auto;color:var(--ld-muted);font-size:1.06rem}
.crb-tp-prose{color:var(--ld-ink);max-width:68ch}
.crb-tp-prose p{margin:0 0 14px}
.crb-tp-prose img{max-width:100%;height:auto;border-radius:12px}
.crb-tp-al-left .crb-tp-intro{text-align:left}
.crb-tp-al-left .crb-tp-intro .crb-tp-prose{margin-left:0}
.crb-tp-al-left .crb-tp-actions{justify-content:flex-start}
.crb-tp-actions{display:flex;flex-wrap:wrap;gap:12px 14px;align-items:center;justify-content:center;margin:22px 0 14px}
.crb-tp .crb-button,.crb-tp-secondary,.crb-tp-tools button{transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease,border-color .2s ease}
.crb-tp .crb-button{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 30px;background:var(--ld-ink);color:#fff;border-radius:999px;font-weight:600;font-size:16px;letter-spacing:.005em;text-decoration:none;border:0;cursor:pointer;box-shadow:0 8px 18px rgba(28,27,24,.2)}
.crb-tp .crb-button:hover{background:#34312c;transform:translateY(-1px);box-shadow:0 10px 22px rgba(28,27,24,.26)}
.crb-tp .crb-button:active{transform:translateY(0)}
.crb-tp-secondary{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 26px;border-radius:999px;border:1px solid #d9d1c0;background:var(--ld-pill);color:var(--ld-ink);font-weight:600;text-decoration:none;box-shadow:0 6px 16px rgba(60,45,20,.1)}
.crb-tp-secondary:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(60,45,20,.14)}
.crb-tp-drafts{margin:0;font-size:14px;text-align:center}
.crb-tp-drafts a{color:var(--ld-muted);text-underline-offset:3px}
.crb-tp-headbtn{margin-left:8px;min-height:40px!important;padding:0 18px!important;font-size:14px!important}
.crb-tp-preview{margin-top:8px}
.crb-tp-tools{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:0 0 16px}
.crb-tp-tools button{min-height:44px;min-width:44px;padding:0 16px;border:1px solid #d9d1c0;background:var(--ld-pill);color:var(--ld-ink);border-radius:999px;font-size:15px;cursor:pointer;box-shadow:0 3px 10px rgba(60,45,20,.08)}
.crb-tp-tools button:hover{transform:translateY(-1px)}
.crb-tp-tools button:focus-visible,.crb-tp-close:focus-visible,.crb-tp .crb-button:focus-visible,.crb-tp-secondary:focus-visible,.crb-tp-q summary:focus-visible{outline:3px solid var(--ld-ink);outline-offset:3px}
.crb-tp-figure{margin:0}
.crb-tp-stage{--crb-zoom:1;overflow:auto;max-width:660px;margin:0 auto;border:1px solid var(--ld-line);border-radius:14px;background:#fff;box-shadow:0 2px 4px rgba(60,45,20,.05),0 22px 48px rgba(60,45,20,.12);-webkit-overflow-scrolling:touch}
.crb-tp-stage.is-zoomed{max-height:80vh}
.crb-tp-img,.crb-tp-art{display:block;width:calc(100% * var(--crb-zoom));max-width:none;height:auto}
.crb-tp-list{padding-left:20px;margin:0 0 14px;color:var(--ld-ink)}
.crb-tp-list li{margin:6px 0}
.crb-tp-q{border:1px solid var(--ld-line);border-radius:16px;background:var(--ld-card);margin:0 0 10px;box-shadow:var(--ld-shadow)}
.crb-tp-q summary{cursor:pointer;padding:14px 18px;font-weight:600;min-height:48px;display:flex;align-items:center}
.crb-tp-q[open] summary{color:var(--ld-ink)}
.crb-tp-q .crb-tp-prose{padding:0 18px 8px;color:var(--ld-muted)}
.crb-tp-cta{background:var(--ld-card);border:1px solid var(--ld-line);border-radius:24px;padding:36px 22px;text-align:center;box-shadow:var(--ld-shadow)}
.crb-tp-cta p{margin:0 auto 18px;color:var(--ld-muted);max-width:52ch}
.crb-tp-extra{margin:0 0 36px}
.crb-tp-side{min-width:0}
.crb-tp-note{padding:14px;border:1px solid var(--ld-line);background:var(--ld-card);border-radius:14px;text-align:center}
.crb-tp-footgrid{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.crb-tp-footnav ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 16px}
.crb-tp-footnav a{display:inline-flex;min-height:44px;align-items:center}
.crb-tp-copy{margin:12px 0 0;font-size:14px}
.crb-tp-dialog{border:0;padding:0;max-width:96vw;max-height:96vh;background:#fff;border-radius:14px}
.crb-tp-dialog::backdrop{background:#1c1b18b3}
.crb-tp-dialog-body{overflow:auto;max-height:94vh}
.crb-tp-dialog-body img{display:block;max-width:100%;height:auto;margin:0 auto}
.crb-tp-close{position:absolute;top:8px;right:8px;width:44px;height:44px;border:0;border-radius:50%;background:var(--ld-ink);color:#fff;font-size:24px;cursor:pointer;z-index:1}
@media (min-width:1024px){
  .crb-tp-wrap.has-right{grid-template-columns:minmax(0,1fr) 300px}
  .crb-tp-wrap.has-left{grid-template-columns:260px minmax(0,1fr)}
  .crb-tp-wrap.has-left.has-right{grid-template-columns:260px minmax(0,1fr) 300px}
}
@media (max-width:1023px){
  .crb-tp-sm-hide .crb-tp-side{display:none}
  .crb-tp-sm-above .crb-tp-side-left,.crb-tp-sm-above .crb-tp-side-right{order:-1}
}
@media (max-width:640px){
  .crb-tp-headbtn{display:none!important}
  .crb-tp-actions .crb-button,.crb-tp-actions .crb-tp-secondary{width:100%}
  .crb-tp-wrap{padding-left:16px;padding-right:16px}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.crb-tp .crb-button,.crb-tp-secondary,.crb-tp-tools button{transition:none}.crb-tp .crb-button:hover,.crb-tp-secondary:hover,.crb-tp-tools button:hover{transform:none}}
/* The gallery's own top bar and footer, used when no site menu or footer is set up: they must take only their own height. */
.crb-tp-topbar{min-height:0!important;width:100%}
.crb-tp-bar{min-height:0!important;background:transparent!important}
/* Flat, square-style controls and boxes: warm cream, 6px corners, no shadows. */
.crb-tp{--ld-shadow:none}
.crb-tp .crb-button,.crb-tp-secondary,.crb-tp-tools button{border-radius:6px;box-shadow:none;transform:none;transition:background-color .2s ease,border-color .2s ease}
.crb-tp .crb-button{background:#e9e0cb;color:var(--ld-ink);border:1px solid #cdbf9f}
.crb-tp .crb-button:hover{background:#e0d5bb;transform:none;box-shadow:none}
.crb-tp-secondary,.crb-tp-tools button{background:#FFFFFF;border:1px solid #d9d1c0;color:var(--ld-ink)}
.crb-tp-secondary:hover,.crb-tp-tools button:hover{background:#EEF0F3;border-color:#cdbf9f;transform:none;box-shadow:none}
.crb-tp-stage,.crb-tp-q,.crb-tp-cta,.crb-tp-note,.crb-tp-dialog,.crb-tp-prose img{border-radius:6px;box-shadow:none}
.crb-tp-close{border-radius:6px;background:#e9e0cb;color:var(--ld-ink);border:1px solid #cdbf9f}
/* Printing or saving as PDF from the browser while editing: only the résumé prints (no top bar, footer or page chrome). */
@media print{.crb-tp-topbar,.crb-tp-view,.crb-tp-dialog{display:none!important}.crb-tp.crb-page{display:block!important;min-height:0!important;background:#fff!important}}

/* Typography: headings use the Resume Builder title font; the page heading is a little smaller. */
.crb-tp{--ld-serif:"Bricolage Grotesque",Poppins,sans-serif}
.crb-tp-view h1,.crb-tp-view h2{font-weight:700}
.crb-tp-view h1{font-size:clamp(1.65rem,5.2vw,2.5rem)}

/* The pressed start button shows that the editor is opening. */
.crb-tp [aria-busy=true]{cursor:progress;pointer-events:none}
.crb-tp [aria-busy=true]::before{content:"";display:inline-block;width:.9em;height:.9em;margin-right:.5em;vertical-align:-.1em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:crb-tp-spin .8s linear infinite}
@keyframes crb-tp-spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.crb-tp [aria-busy=true]::before{animation:none;border-right-color:currentColor;opacity:.6}}
