/* ============================================================
   adamantine.app — "The Grading Report"
   A diamond grading certificate crossed with an engineer's
   setting-out drawing, in Tiffany. Warm, first-person, honest.
   Light = D65 daylight certificate. Dark = jeweller's loupe.
   ============================================================ */

/* ---------- fonts (self-hosted, latin subset, variable) ---------- */
@font-face{
  font-family:'Archivo';
  font-style:normal;
  font-weight:400 900;
  font-stretch:125%;
  font-display:swap;
  src:url('/fonts/archivo.woff2') format('woff2');
}
@font-face{
  font-family:'Hanken Grotesk';
  font-style:normal;
  font-weight:400 700;
  font-display:swap;
  src:url('/fonts/hanken.woff2') format('woff2');
}
@font-face{
  font-family:'Martian Mono';
  font-style:normal;
  font-weight:400 700;
  font-display:swap;
  src:url('/fonts/martian.woff2') format('woff2');
}
/* size-adjusted local fallbacks so swapped text barely moves */
@font-face{font-family:'Archivo Fallback';src:local('Helvetica Neue'),local('Arial');size-adjust:118%;ascent-override:90%;font-display:swap;}
@font-face{font-family:'Hanken Fallback';src:local('Helvetica Neue'),local('Arial');size-adjust:101%;font-display:swap;}

/* ---------- tokens ---------- */
:root{
  --display:'Archivo','Archivo Fallback','Helvetica Neue',Arial,sans-serif;
  --body:'Hanken Grotesk','Hanken Fallback','Helvetica Neue',Arial,sans-serif;
  --mono:'Martian Mono',ui-monospace,'SF Mono',Menlo,monospace;
  --shell:72rem;
  --vt-x:50%;--vt-y:0%;
}
:root[data-theme="light"]{
  color-scheme:light;
  --bg:#F5F8F8;
  --surface:#FFFFFF;
  --tint:#ECF2F2;
  --hairline:#D9E2E2;
  --hairline-2:#AFC0C0;
  --ink:#12191A;
  --ink-soft:#3D5254;
  --ink-faint:#537073;
  --brand-ink:#0A736E;       /* brand-coloured TEXT on light: deep, AA */
  --brand-text-strong:#0A736E;
  --brand-fill:#15B7AF;      /* Tiffany: fills & graphics only on light */
  --brand-soft:rgba(21,183,175,.10);
  --btn-ink:#052F2C;
  --plate-edge:#C7D4D4;
  --grid-line:rgba(10,115,110,.055);
  --shadow:0 1px 2px rgba(18,25,26,.05),0 12px 32px -18px rgba(18,25,26,.18);
}
:root[data-theme="dark"]{
  color-scheme:dark;
  --bg:#0A0F10;
  --surface:#0F1717;
  --tint:#0D1414;
  --hairline:#1F2E2D;
  --hairline-2:#354B4A;
  --ink:#EAF2F1;
  --ink-soft:#AEC2C0;
  --ink-faint:#8AA19F;
  --brand-ink:#15B7AF;       /* Tiffany glows as text in the loupe */
  --brand-text-strong:#3ED8CF; /* thin/small brand text lifts brighter */
  --brand-fill:#15B7AF;
  --brand-soft:rgba(21,183,175,.09);
  --btn-ink:#052F2C;
  --plate-edge:#243635;
  --grid-line:rgba(62,216,207,.05);
  --shadow:0 1px 2px rgba(0,0,0,.4),0 14px 36px -18px rgba(0,0,0,.6);
}

/* ---------- theme re-light (the facet toggle's flourish) ---------- */
::view-transition-old(root),
::view-transition-new(root){animation-duration:.55s;animation-timing-function:ease-out;mix-blend-mode:normal;}
::view-transition-old(root){animation-name:none;}
::view-transition-new(root){animation-name:facet-relight;}
@keyframes facet-relight{
  from{clip-path:circle(0% at var(--vt-x) var(--vt-y));}
  to{clip-path:circle(150% at var(--vt-x) var(--vt-y));}
}
html.theme-fade,
html.theme-fade body,
html.theme-fade .cert,
html.theme-fade .mast{transition:background-color .3s ease-out,color .3s ease-out,border-color .3s ease-out;}
@media (prefers-reduced-motion:reduce){
  ::view-transition-old(root),::view-transition-new(root){animation:none!important;}
}

/* ---------- reset/base ---------- */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:var(--body);
  font-size:1.0625rem;
  line-height:1.65;
  font-weight:400;
  text-rendering:optimizeLegibility;
}
img,svg{max-width:100%;height:auto;}
::selection{background:var(--brand-fill);color:#052F2C;}
:focus-visible{outline:2px solid var(--brand-ink);outline-offset:3px;border-radius:2px;}
a{color:var(--brand-ink);text-decoration-color:var(--hairline-2);text-underline-offset:3px;}
a:hover{text-decoration-color:currentColor;}

.skip{position:absolute;left:-999px;top:0;background:var(--surface);color:var(--ink);padding:.7rem 1.1rem;z-index:99;border:1px solid var(--hairline-2);}
.skip:focus{left:.6rem;top:.6rem;}

.visually-hidden{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;}

/* ---------- type ---------- */
h1,h2,h3,.wordmark{
  font-family:var(--display);
  font-stretch:125%;
  letter-spacing:-0.02em;
  line-height:1.06;
  text-wrap:balance;
  margin:0;
}
h1{font-size:clamp(2.35rem,1.35rem + 4.1vw,5.2rem);font-weight:740;}
h2{font-size:clamp(1.6rem,1.2rem + 1.7vw,2.55rem);font-weight:700;line-height:1.12;}
h3{font-size:clamp(1.12rem,1rem + .5vw,1.4rem);font-weight:660;line-height:1.2;}
p{margin:0;}
.sub{
  font-size:clamp(1.06rem,1rem + .35vw,1.25rem);
  line-height:1.62;color:var(--ink-soft);max-width:38em;
}
.prose{max-width:37em;}
.prose > * + *{margin-top:1.15em;}
.prose p{color:var(--ink-soft);}
.prose strong{color:var(--ink);font-weight:700;}
.lead{font-size:1.13rem;color:var(--ink-soft);max-width:36em;}
.fig{font-family:var(--mono);font-weight:500;letter-spacing:-0.01em;}

/* ---------- layout ---------- */
.shell{max-width:var(--shell);margin:0 auto;padding:0 clamp(1.1rem,4vw,2.5rem);}
section{padding:clamp(2.8rem,7.5vw,6.2rem) 0;}
section.tight{padding:clamp(2rem,5vw,3.8rem) 0;}
.grid{display:grid;grid-template-columns:1fr;gap:2rem;}
@media (min-width:1024px){
  .grid{grid-template-columns:repeat(12,1fr);column-gap:2.2rem;}
  .g1-6{grid-column:1/7;} .g1-7{grid-column:1/8;} .g1-8{grid-column:1/9;}
  .g2-7{grid-column:2/8;} .g2-8{grid-column:2/9;} .g2-11{grid-column:2/12;}
  .g7-12{grid-column:7/13;} .g8-12{grid-column:8/13;} .g9-12{grid-column:9/13;}
  .g5-12{grid-column:5/13;}
  .self-center{align-self:center;} .self-start{align-self:start;}
}

/* setting-out rule: a dimension line between chapters */
.setline{border:0;margin:0;height:1px;background:var(--hairline);position:relative;overflow:visible;}
.setline::before,.setline::after{
  content:"";position:absolute;top:-4px;width:1px;height:9px;background:var(--hairline-2);
}
.setline::before{left:clamp(1.1rem,4vw,2.5rem);}
.setline::after{right:clamp(1.1rem,4vw,2.5rem);}

/* ---------- header ---------- */
.mast{
  border-bottom:1px solid var(--hairline);
  background:var(--bg);
  position:sticky;top:0;z-index:50;
}
.mast-row{
  display:flex;align-items:center;gap:1rem;
  min-height:4.1rem;flex-wrap:wrap;padding-top:.55rem;padding-bottom:.55rem;
}
.brand{display:inline-flex;align-items:center;gap:.6rem;text-decoration:none;color:var(--ink);margin-right:.4rem;}
.brand img{display:block;width:30px;height:30px;}
.wordmark{font-size:1.06rem;font-weight:740;letter-spacing:-0.01em;color:var(--ink);}
.navlinks{display:flex;gap:clamp(.9rem,2vw,1.6rem);margin-left:auto;align-items:center;}
.navlinks a{
  color:var(--ink-soft);text-decoration:none;font-size:.95rem;font-weight:500;
  padding:.35rem 0;border-bottom:2px solid transparent;
}
.navlinks a:hover{color:var(--ink);}
.navlinks a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--brand-fill);}
.mast-tools{display:flex;align-items:center;gap:.8rem;}

/* facet toggle */
.facet-toggle{
  appearance:none;border:1px solid var(--hairline-2);background:var(--surface);
  width:2.6rem;height:2.6rem;border-radius:50%;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;padding:0;
  transition:border-color .2s ease-out,transform .2s ease-out;
}
.facet-toggle:hover{border-color:var(--brand-ink);}
.facet-toggle svg{width:18px;height:18px;transition:transform .5s ease-out;}
.facet-toggle:active svg{transform:rotate(180deg) scale(.9);}
.facet-toggle .fc-a{fill:var(--brand-fill);}
.facet-toggle .fc-b{fill:var(--brand-ink);}
@media (prefers-reduced-motion:reduce){.facet-toggle svg{transition:none;}}

/* buttons */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.55rem;
  font-family:var(--body);font-weight:700;font-size:1rem;line-height:1;
  padding:.9rem 1.45rem;border-radius:999px;text-decoration:none;
  border:1px solid transparent;cursor:pointer;min-height:44px;
  transition:transform .15s ease-out,background-color .2s ease-out,border-color .2s ease-out;
}
.btn-primary{background:var(--brand-fill);color:var(--btn-ink);}
.btn-primary:hover{transform:translateY(-1px);}
.btn-ghost{border-color:var(--hairline-2);color:var(--ink);background:transparent;}
.btn-ghost:hover{border-color:var(--ink-soft);}
.mast .btn{padding:.62rem 1.05rem;font-size:.92rem;}
.cta-row{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:2rem;}

@media (max-width:719px){
  .navlinks{order:3;flex-basis:100%;margin-left:0;gap:1.15rem;
    border-top:1px solid var(--hairline);padding-top:.55rem;overflow-x:auto;}
  .mast-tools{margin-left:auto;}
  .wordmark{display:none;}
}

/* ---------- hero ---------- */
.hero{padding-top:clamp(3.2rem,9vh,6.5rem);}
.hero h1{max-width:11.5em;}
.hero .sub{margin-top:1.6rem;}

/* proof strip: the certificate header row */
.proofstrip{
  margin-top:2.3rem;display:flex;align-items:center;flex-wrap:wrap;
  gap:.55rem 1.15rem;
  font-family:var(--mono);font-size:.84rem;font-weight:500;color:var(--ink);
}
.proofstrip .star{width:15px;height:15px;fill:var(--brand-fill);flex:none;}
.proofstrip .sep{color:var(--hairline-2);}
.proofstrip b{font-weight:700;}
.proofnote{margin-top:.8rem;font-size:.9rem;color:var(--ink-faint);max-width:44em;}
.proofnote a{color:var(--ink-faint);}

/* ---------- certificate card ---------- */
.cert{
  background:var(--surface);
  border:1px solid var(--hairline);
  border-radius:10px;
  box-shadow:var(--shadow);
  background-image:
    linear-gradient(var(--grid-line) 1px,transparent 1px),
    linear-gradient(90deg,var(--grid-line) 1px,transparent 1px);
  background-size:28px 28px;
  overflow:hidden;
}
.cert-cap{
  display:flex;align-items:center;gap:.55rem;
  padding:.8rem 1.25rem;border-bottom:1px solid var(--hairline);
  font-family:var(--mono);font-size:.72rem;font-weight:500;
  letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);
}
.cert-cap img,.cert-cap svg{width:14px;height:14px;flex:none;}
.cert-body{padding:1.25rem;}
.cert-body + .cert-body{border-top:1px solid var(--hairline);}
.cert-row{
  display:flex;align-items:baseline;gap:.9rem;justify-content:space-between;
  padding:.55rem 0;
}
.cert-row + .cert-row{border-top:1px solid var(--hairline);}
.cert-row .k{color:var(--ink-soft);font-size:.95rem;}
.cert-row .v{font-family:var(--mono);font-size:.9rem;font-weight:500;color:var(--ink);text-align:right;}
.cert-big{display:flex;align-items:baseline;gap:.8rem;flex-wrap:wrap;}
.cert-big .n{font-family:var(--mono);font-weight:700;font-size:clamp(2.6rem,2rem + 2vw,3.6rem);line-height:1;color:var(--brand-text-strong);letter-spacing:-0.03em;}
:root[data-theme="light"] .cert-big .n{color:var(--brand-ink);}
.cert-big .lab{color:var(--ink-soft);font-size:.98rem;max-width:16em;line-height:1.4;}
.cert-foot{padding:.85rem 1.25rem;border-top:1px solid var(--hairline);font-size:.86rem;color:var(--ink-faint);}

/* ---------- reviews ---------- */
.gwall{display:grid;gap:1.3rem;margin-top:2.6rem;}
@media (min-width:760px){
  .gwall{grid-template-columns:1fr 1fr;}
  .gwall .gcard:last-child:nth-child(odd){grid-column:1/-1;}
}
.gcard{
  display:flex;flex-direction:column;text-decoration:none;color:inherit;
  transition:transform .18s ease-out,border-color .18s ease-out;
}
a.gcard:hover{transform:translateY(-2px);border-color:var(--hairline-2);}
.gcard .cert-body{display:flex;flex-direction:column;gap:.8rem;flex:1;}
.ghead{display:flex;align-items:center;gap:.8rem;}
.gavatar{width:44px;height:44px;border-radius:50%;border:1px solid var(--hairline);flex:none;}
.gname{font-weight:700;font-size:1rem;line-height:1.25;color:var(--ink);}
.gstars{display:inline-flex;gap:2px;margin-top:2px;}
.gstars svg{width:13px;height:13px;fill:var(--brand-fill);}
.gbody{color:var(--ink-soft);font-size:.98rem;flex:1;}
.gweld{
  margin-top:auto;display:flex;align-items:center;gap:.5rem;
  font-family:var(--mono);font-size:.8rem;font-weight:500;color:var(--brand-text-strong);
}
:root[data-theme="light"] .gweld{color:var(--brand-ink);}
.gweld .arrow{transition:transform .18s ease-out;}
a.gcard:hover .gweld .arrow{transform:translateX(3px);}
.aggline{
  display:flex;align-items:center;gap:.55rem;margin-top:1rem;
  font-family:var(--mono);font-size:.85rem;font-weight:500;color:var(--ink);
}
.aggline .star{width:15px;height:15px;fill:var(--brand-fill);}

/* ---------- work plates (portfolio "settings") ---------- */
.plate{margin:0;}
.plate a.shot{display:block;border-radius:10px;overflow:hidden;border:1px solid var(--plate-edge);box-shadow:var(--shadow);}
.plate img{display:block;width:100%;height:auto;background:var(--tint);}
.plate a.shot:hover img{opacity:.94;}
.platecap{margin-top:1rem;}
.trade-tag{
  display:inline-flex;align-items:center;gap:.45rem;
  font-family:var(--mono);font-size:.72rem;font-weight:500;letter-spacing:.08em;
  text-transform:uppercase;color:var(--ink-faint);
  border:1px solid var(--hairline);border-radius:999px;padding:.28rem .75rem;
}
.trade-tag::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--brand-fill);}
.platecap h3{margin-top:.7rem;}
.platecap p{margin-top:.5rem;color:var(--ink-soft);font-size:.97rem;max-width:34em;}
.platelinks{margin-top:.75rem;display:flex;gap:1.4rem;flex-wrap:wrap;font-size:.93rem;}
.workboard{display:grid;gap:clamp(2.6rem,6vw,4.5rem);}
@media (min-width:1024px){
  .workboard{grid-template-columns:repeat(12,1fr);column-gap:2.2rem;}
  .workboard .plate:nth-child(4n+1){grid-column:1/8;}
  .workboard .plate:nth-child(4n+2){grid-column:8/13;align-self:end;}
  .workboard .plate:nth-child(4n+3){grid-column:1/6;}
  .workboard .plate:nth-child(4n){grid-column:6/13;}
}

/* quote pulled from a review, welded beside work */
.weldquote{border:0;margin:1rem 0 0;padding:1rem 1.25rem;background:var(--brand-soft);border-radius:8px;}
.weldquote p{font-size:.95rem;color:var(--ink-soft);}
.weldquote cite{display:block;margin-top:.55rem;font-style:normal;font-family:var(--mono);font-size:.78rem;color:var(--ink-faint);}

/* ---------- pricing ladder ---------- */
.ladder{display:grid;gap:1.3rem;margin-top:2.6rem;}
@media (min-width:900px){.ladder{grid-template-columns:repeat(3,1fr);}}
.tier .cert-body{display:flex;flex-direction:column;gap:1rem;min-height:100%;}
.tier h3{letter-spacing:-0.01em;}
.price{font-family:var(--mono);font-weight:700;font-size:1.9rem;letter-spacing:-0.02em;color:var(--ink);}
.price small{font-size:.9rem;font-weight:500;color:var(--ink-soft);letter-spacing:0;}
.tier p{color:var(--ink-soft);font-size:.97rem;}
.tier ul{margin:0;padding:0;list-style:none;display:grid;gap:.55rem;}
.tier li{padding-left:1.3rem;position:relative;color:var(--ink-soft);font-size:.95rem;}
.tier li::before{content:"";position:absolute;left:0;top:.52em;width:9px;height:9px;
  background:var(--brand-fill);clip-path:polygon(50% 0,100% 38%,50% 100%,0 38%);}

/* ---------- results story ---------- */
.storyline{max-width:37em;}
.storyline > * + *{margin-top:1.15em;}
.storyline p{color:var(--ink-soft);}
.storyline strong{color:var(--ink);}
.bigclaim{
  font-family:var(--display);font-stretch:125%;font-weight:740;letter-spacing:-0.02em;
  font-size:clamp(1.9rem,1.4rem + 2.2vw,3.2rem);line-height:1.1;color:var(--ink);text-wrap:balance;
}
.bigclaim .n{font-family:var(--mono);color:var(--brand-text-strong);font-weight:700;}
:root[data-theme="light"] .bigclaim .n{color:var(--brand-ink);}

/* ---------- contact ---------- */
.form{display:grid;gap:1.05rem;}
.form label{display:grid;gap:.45rem;font-weight:600;font-size:.95rem;color:var(--ink);}
.form input,.form textarea{
  font:inherit;color:var(--ink);background:var(--bg);
  border:1px solid var(--hairline-2);border-radius:8px;padding:.75rem .9rem;min-height:44px;
}
.form textarea{min-height:8.5rem;resize:vertical;}
.form input:focus-visible,.form textarea:focus-visible{outline:2px solid var(--brand-ink);outline-offset:1px;}
.form ::placeholder{color:var(--ink-faint);opacity:1;}
.contactways{display:grid;gap:.4rem;margin-top:1.8rem;max-width:26rem;}
.contactways a{display:flex;justify-content:space-between;gap:1rem;align-items:baseline;
  padding:.7rem 0;border-bottom:1px solid var(--hairline);text-decoration:none;}
.contactways .k{color:var(--ink);font-weight:600;}
.contactways .v{color:var(--ink-soft);font-size:.92rem;text-align:right;}
.contactways a:hover .k{color:var(--brand-ink);}

/* contact band on other pages */
.askband{background:var(--tint);border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline);}

/* ---------- breadcrumb ---------- */
.crumb{font-size:.88rem;color:var(--ink-faint);display:flex;gap:.5rem;flex-wrap:wrap;padding-top:1.6rem;}
.crumb a{color:var(--ink-faint);}
.crumb .sep{color:var(--hairline-2);}

/* ---------- footer ---------- */
.foot{border-top:1px solid var(--hairline);padding:clamp(2.5rem,6vw,4rem) 0 3rem;background:var(--tint);}
.foot-grid{display:grid;gap:2.2rem;}
@media (min-width:800px){.foot-grid{grid-template-columns:1.7fr 1fr 1fr 1fr;}}
.foot-brand{display:flex;align-items:center;gap:.6rem;}
.foot-brand img{width:26px;height:26px;}
.foot p{color:var(--ink-soft);font-size:.95rem;max-width:26em;margin-top:1rem;}
.foot-head{font-family:var(--mono);font-size:.72rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin:0 0 .9rem;}
.foot nav{display:grid;gap:.55rem;align-content:start;}
.foot nav a{color:var(--ink-soft);text-decoration:none;font-size:.95rem;width:fit-content;}
.foot nav a:hover{color:var(--ink);text-decoration:underline;}
.foot-fine{margin-top:2.6rem;padding-top:1.4rem;border-top:1px solid var(--hairline);
  font-size:.85rem;color:var(--ink-faint);display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;}

/* ---------- reveal ---------- */
.rv{opacity:1;transform:none;}
.rv.pre{opacity:0;transform:translateY(14px);}
.rv{transition:opacity .6s ease-out,transform .6s ease-out;}
@media (prefers-reduced-motion:reduce){
  .rv,.rv.pre{opacity:1;transform:none;transition:none;}
  .btn,.gcard,.gweld .arrow{transition:none;}
}

/* ---------- misc ---------- */
.pagehead{padding-top:clamp(3rem,8vh,5.5rem);}
.pagehead .sub{margin-top:1.4rem;}
.faq{display:grid;gap:0;margin-top:2.4rem;max-width:44rem;}
.faq details{border-top:1px solid var(--hairline);}
.faq details:last-child{border-bottom:1px solid var(--hairline);}
.faq summary{
  cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:1rem;align-items:center;
  padding:1.15rem 0;font-weight:600;font-size:1.02rem;color:var(--ink);
}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"+";font-family:var(--mono);color:var(--ink-faint);font-size:1.1rem;flex:none;}
.faq details[open] summary::after{content:"−";}
.faq .a{padding:0 0 1.3rem;color:var(--ink-soft);max-width:38em;}
.legal h2{font-size:1.25rem;margin-top:2.4rem;}
.legal p{margin-top:.8rem;color:var(--ink-soft);max-width:40em;}
.signoff{display:flex;align-items:center;gap:.9rem;margin-top:2.8rem;}
.signoff img{width:34px;height:34px;flex:none;}
.signoff b{display:block;font-family:var(--display);font-stretch:125%;font-weight:700;font-size:1.1rem;}
.signoff span{color:var(--ink-soft);font-size:.94rem;}
.spine{
  margin-top:2.4rem;padding:1.3rem 1.5rem;background:var(--brand-soft);border-radius:10px;
  font-family:var(--display);font-stretch:125%;font-weight:700;letter-spacing:-0.01em;
  font-size:clamp(1.15rem,1rem + .8vw,1.5rem);line-height:1.35;color:var(--ink);max-width:24em;text-wrap:balance;
}
