/* Preciousky — editorial tech blog. Fraunces (display) + Spline Sans (text). */
:root{
  --ink:#1b1714; --ink-soft:#3a332c; --paper:#f3ece1; --paper-2:#ece2d3; --card:#fbf7f0;
  --gold:#b07a36; --gold-deep:#8a5d24; --line:#ddd0bb; --line-2:#e7ddcc; --muted:#6d6358;
  --ok:#3f7d4e; --max:1180px; --measure:68ch; --radius:16px; --radius-sm:11px;
  --shadow:0 1px 2px rgba(27,23,20,.04),0 6px 22px rgba(27,23,20,.06);
  --shadow-lift:0 4px 10px rgba(27,23,20,.07),0 18px 40px rgba(27,23,20,.10);
  --serif:"Fraunces",Georgia,serif; --sans:"Spline Sans",ui-sans-serif,system-ui,sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:radial-gradient(120% 80% at 88% -8%,#f9f3e9 0%,var(--paper) 46%,var(--paper-2) 100%);
  color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased;min-height:100vh}
img{max-width:100%;height:auto;display:block}
a{color:var(--gold-deep);text-decoration:none}
a:hover{color:var(--gold)}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:3px}
.skip{position:absolute;left:-9999px;top:0;background:var(--ink);color:#fff;padding:10px 16px;border-radius:0 0 10px 0;z-index:100}
.skip:focus{left:0}

/* ---------- header ---------- */
header.site{position:sticky;top:0;z-index:50;background:rgba(243,236,225,.82);backdrop-filter:saturate(1.2) blur(10px);border-bottom:1px solid var(--line)}
.bar{max-width:var(--max);margin:0 auto;padding:13px clamp(18px,4vw,40px);display:flex;align-items:center;gap:22px}
.brand{display:flex;align-items:center;gap:11px;color:var(--ink)}
.seal{width:36px;height:36px;border-radius:50%;border:1.5px solid var(--gold);display:grid;place-items:center;
  font-family:var(--serif);font-weight:600;font-size:18px;color:var(--gold-deep);background:rgba(176,122,54,.06);flex:none}
.word{font-family:var(--serif);font-weight:600;letter-spacing:.05em;font-size:15px}
.nav{display:flex;gap:4px;margin-left:auto;flex-wrap:wrap}
.nav a{color:var(--ink-soft);font-weight:500;font-size:14.5px;padding:7px 12px;border-radius:999px;transition:background .15s,color .15s}
.nav a:hover{background:rgba(176,122,54,.10);color:var(--gold-deep)}
.nav a.on{background:var(--ink);color:var(--paper)}
.rss{font-size:12px;font-weight:600;letter-spacing:.08em;color:var(--muted);border:1px solid var(--line);padding:6px 10px;border-radius:8px}
.rss:hover{border-color:var(--gold);color:var(--gold-deep)}
@media(max-width:720px){.nav{display:none}.rss{margin-left:auto}}

main{display:block;max-width:var(--max);margin:0 auto;padding:clamp(28px,5vw,56px) clamp(18px,4vw,40px) 24px}

/* ---------- home lead ---------- */
.lead{padding:18px 0 8px;border-bottom:1px solid var(--line-2);margin-bottom:36px}
.kicker{font-family:var(--sans);text-transform:uppercase;letter-spacing:.22em;font-size:12px;font-weight:600;color:var(--gold-deep);margin:0 0 14px}
.lead h1{font-family:var(--serif);font-weight:400;font-size:clamp(33px,6vw,60px);line-height:1.04;letter-spacing:-.018em;margin:0 0 18px;max-width:18ch}
.lead h1 em{font-style:italic;color:var(--gold-deep)}
.lede{font-size:clamp(16px,2.2vw,20px);line-height:1.6;color:var(--muted);max-width:58ch;margin:0 0 22px}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chips a{font-size:13.5px;font-weight:500;color:var(--ink-soft);background:var(--card);border:1px solid var(--line);padding:7px 14px;border-radius:999px;transition:.15s}
.chips a:hover{border-color:var(--gold);color:var(--gold-deep);transform:translateY(-1px)}

/* ---------- featured ---------- */
.featured{display:grid;grid-template-columns:1.55fr 1fr;gap:26px;margin-bottom:52px}
.side{display:flex;flex-direction:column;gap:22px}
@media(max-width:860px){.featured{grid-template-columns:1fr}}

/* ---------- cards ---------- */
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px 24px}
@media(max-width:900px){.grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.grid{grid-template-columns:1fr}}
.card{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);transition:transform .18s ease,box-shadow .18s ease,border-color .18s}
.card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lift);border-color:#cdbb9c}
.cmedia{display:block;aspect-ratio:16/9;overflow:hidden;background:var(--paper-2)}
.cmedia img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.card:hover .cmedia img{transform:scale(1.03)}
.cbody{padding:16px 18px 18px;display:flex;flex-direction:column;gap:9px;flex:1}
.cat{align-self:flex-start;font-size:11.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-deep)}
.card h3{font-family:var(--serif);font-weight:600;font-size:1.18rem;line-height:1.22;margin:0;letter-spacing:-.01em}
.card h3 a{color:var(--ink)}
.card h3 a:hover{color:var(--gold-deep)}
.card p{margin:0;color:var(--muted);font-size:14.5px;line-height:1.55}
.meta{margin-top:auto;display:flex;gap:8px;align-items:center;color:#8a7f70;font-size:12.5px;padding-top:4px}
.hero-card .cmedia{aspect-ratio:16/9}
.hero-card h2{font-family:var(--serif);font-weight:600;font-size:clamp(1.5rem,3.4vw,2.1rem);line-height:1.1;margin:0;letter-spacing:-.015em}
.hero-card h2 a{color:var(--ink)} .hero-card h2 a:hover{color:var(--gold-deep)}
.hero-card .cbody{padding:22px 24px 24px;gap:12px}
.hero-card p{font-size:16px}
.card.big{grid-column:1/-1;flex-direction:row}
.card.big .cmedia{flex:0 0 46%;aspect-ratio:auto}
.card.big .cbody{justify-content:center}
.card.big h3{font-size:1.6rem}
@media(max-width:680px){.card.big{flex-direction:column}.card.big .cmedia{flex:none;aspect-ratio:16/9}}

.sec-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:22px;border-bottom:1px solid var(--line-2);padding-bottom:10px}
.sec-head h2{font-family:var(--serif);font-weight:600;font-size:1.5rem;margin:0}
.sec-head a{font-size:14px;font-weight:500}
.stream{margin-bottom:40px}

/* ---------- topic head ---------- */
.topic-head{padding:8px 0 26px;margin-bottom:18px;border-bottom:1px solid var(--line-2)}
.topic-head h1{font-family:var(--serif);font-weight:500;font-size:clamp(30px,5vw,46px);margin:.2em 0 .15em;letter-spacing:-.015em}

/* ---------- breadcrumbs ---------- */
.crumbs{display:flex;gap:9px;align-items:center;font-size:13px;color:var(--muted);margin-bottom:14px;flex-wrap:wrap}
.crumbs span{color:#b9ad9c}

/* ---------- post ---------- */
.post{max-width:760px;margin:0 auto}
.phead{margin-bottom:8px}
.phead .cat{display:inline-block;margin-bottom:12px}
.phead h1{font-family:var(--serif);font-weight:600;font-size:clamp(30px,5.4vw,50px);line-height:1.07;letter-spacing:-.02em;margin:0 0 16px}
.standfirst{font-size:clamp(17px,2.4vw,21px);line-height:1.5;color:var(--ink-soft);margin:0 0 18px;font-weight:400}
.byline{display:flex;gap:9px;align-items:center;flex-wrap:wrap;color:var(--muted);font-size:13.5px;padding-bottom:18px;border-bottom:1px solid var(--line-2)}
.byline .who{color:var(--ink);font-weight:600}
.fig{margin:30px 0}
.fig img{width:100%;border-radius:var(--radius);border:1px solid var(--line);background:var(--paper-2)}
.fig.hero{margin:26px 0 8px}
.fig figcaption{font-size:13px;color:var(--muted);margin-top:9px;padding-left:2px;line-height:1.45}

.prose{font-size:18px;line-height:1.75;color:var(--ink-soft)}
.prose>*{max-width:var(--measure)}
.prose .fig{max-width:none}
.prose p{margin:0 0 1.15em}
.prose h2{font-family:var(--serif);font-weight:600;font-size:1.7rem;line-height:1.2;letter-spacing:-.01em;color:var(--ink);margin:1.9em 0 .5em}
.prose h3{font-family:var(--serif);font-weight:600;font-size:1.3rem;color:var(--ink);margin:1.5em 0 .4em}
.prose a{border-bottom:1px solid rgba(176,122,54,.4)}
.prose a:hover{border-color:var(--gold)}
.prose ul,.prose ol{margin:0 0 1.2em;padding-left:1.3em}
.prose li{margin:.4em 0}
.prose li::marker{color:var(--gold)}
.prose strong{color:var(--ink);font-weight:600}
.prose blockquote{margin:1.6em 0;padding:4px 0 4px 22px;border-left:3px solid var(--gold);font-family:var(--serif);font-style:italic;font-size:1.3rem;line-height:1.4;color:var(--ink)}
.prose code{font-family:ui-monospace,"SF Mono",Menlo,Consolas,monospace;font-size:.86em;background:#efe6d6;border:1px solid var(--line);padding:1px 6px;border-radius:6px;color:#7a5320}
.prose pre{background:#211d18;color:#f0e9da;padding:16px 18px;border-radius:var(--radius-sm);overflow:auto;font-size:14px;line-height:1.55;margin:1.3em 0}
.prose pre code{background:none;border:none;color:inherit;padding:0}
.prose table{width:100%;border-collapse:collapse;margin:1.4em 0;font-size:15.5px}
.prose th,.prose td{border:1px solid var(--line);padding:9px 12px;text-align:left;vertical-align:top}
.prose th{background:#efe6d6;font-weight:600;color:var(--ink)}
.prose tr:nth-child(even) td{background:rgba(255,255,255,.4)}
/* callout / key takeaways */
.prose .note,.prose .takeaways{background:var(--card);border:1px solid var(--line);border-left:3px solid var(--gold);border-radius:var(--radius-sm);padding:16px 20px;margin:1.6em 0}
.prose .takeaways h3,.prose .note h3{margin:0 0 .5em;font-size:1.05rem}
.prose .takeaways ul{margin:0;padding-left:1.2em}
.prose .takeaways li{margin:.35em 0}

/* faq */
.faqs{max-width:760px;margin:48px auto 0;border-top:1px solid var(--line-2);padding-top:30px}
.faqs h2{font-family:var(--serif);font-weight:600;font-size:1.6rem;margin:0 0 14px}
.faq{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--card);margin-bottom:10px;overflow:hidden}
.faq summary{cursor:pointer;padding:15px 18px;font-weight:600;color:var(--ink);list-style:none;display:flex;justify-content:space-between;gap:12px;align-items:center}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--serif);font-size:1.4rem;color:var(--gold-deep);line-height:1}
.faq[open] summary::after{content:"\2212"}
.faq summary:hover{color:var(--gold-deep)}
.faq>div{padding:0 18px 16px;color:var(--ink-soft);line-height:1.65}
.faq>div p{margin:0 0 .6em}

.tags{display:flex;gap:8px;flex-wrap:wrap;margin:34px auto 0;max-width:760px}
.tag{font-size:13px;color:var(--muted);background:var(--card);border:1px solid var(--line);padding:5px 12px;border-radius:999px}
.tag:hover{border-color:var(--gold);color:var(--gold-deep)}

.related{max-width:var(--max);margin:60px auto 0;border-top:1px solid var(--line-2);padding-top:30px}
.related h2{font-family:var(--serif);font-weight:600;font-size:1.5rem;margin:0 0 22px}

/* ---------- footer ---------- */
footer.site{background:var(--ink);color:#cfc4b4;margin-top:70px}
.fwrap{max-width:var(--max);margin:0 auto;padding:48px clamp(18px,4vw,40px) 30px;display:grid;grid-template-columns:2fr 1fr 1fr;gap:34px}
.fbrand .seal{border-color:#6b5a3f;color:#d8b87e;background:rgba(216,184,126,.07);margin-bottom:14px}
.fbrand p{color:#a89b88;max-width:42ch;font-size:14.5px;line-height:1.6;margin:0}
footer.site h4{font-family:var(--serif);font-weight:600;color:#f3ece1;font-size:1rem;margin:0 0 12px}
footer.site ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
footer.site a{color:#cfc4b4;font-size:14.5px}
footer.site a:hover{color:#e8c994}
.fbar{max-width:var(--max);margin:0 auto;padding:18px clamp(18px,4vw,40px);border-top:1px solid #332c24;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:12.5px;color:#8a7d6b}
@media(max-width:680px){.fwrap{grid-template-columns:1fr 1fr}.fbrand{grid-column:1/-1}}

/* ---------- mobile overflow safety ---------- */
html,body{overflow-x:hidden;max-width:100%}
.bar,.featured,.grid,.side,.byline,.crumbs,.meta,.chips,.cbody{min-width:0}
.bar>*,.featured>*,.grid>*,.side>*{min-width:0}
.card h3,.hero-card h2,.card p,.standfirst,.lede,.prose>*{overflow-wrap:break-word;word-break:normal}
.prose pre{max-width:100%}
img,svg,video,table{max-width:100%}

@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* ---------- call-to-action box ---------- */
.prose .cta{background:linear-gradient(180deg,#fbf7f0,#f1e7d6);border:1px solid var(--gold);border-radius:var(--radius);padding:22px 24px;margin:2em 0;box-shadow:var(--shadow)}
.prose .cta h3{margin:0 0 .45em;font-family:var(--serif);font-weight:600;font-size:1.3rem;color:var(--ink)}
.prose .cta p{margin:0 0 15px;color:var(--ink-soft)}
.prose .cta a:not(.btn){border-bottom:1px solid rgba(176,122,54,.5)}
.prose .cta .btn{display:inline-block;background:var(--ink);color:var(--paper);font-weight:600;font-size:15px;padding:11px 22px;border-radius:10px;border-bottom:none;transition:background .15s,transform .12s}
.prose .cta .btn:hover{background:#000;color:#fff}
.prose .cta .btn:active{transform:translateY(1px)}
.prose .cta .small{display:block;margin-top:11px;font-size:12.5px;color:var(--muted)}

/* ---------- q&a / tags / search ---------- */
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.qna-body{max-width:var(--measure);margin:8px auto 0}
.qgroup{margin:30px 0 0}
.qgroup>h2{font-family:var(--serif);font-weight:600;font-size:1.5rem;margin:0 0 4px;padding-top:18px;border-top:1px solid var(--line-2)}
.qrow{padding:18px 0;border-bottom:1px solid var(--line-2)}
.qrow h3{font-size:1.16rem;margin:0 0 .45em;line-height:1.35}
.qrow h3 a.qlink{color:var(--ink);border-bottom:none}
.qrow h3 a.qlink:hover{color:var(--gold-deep)}
.qrow .qa{color:var(--ink-soft)}
.qrow .qa p{margin:0 0 .5em}
.qrow .qa a{border-bottom:1px solid rgba(176,122,54,.4)}
.qrow .qtags{margin-top:11px;display:flex;flex-wrap:wrap;gap:7px}
.tagcloud{display:flex;flex-wrap:wrap;gap:10px;margin:8px 0 24px}
.tagchip{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:14px;color:var(--ink);background:var(--card);border:1px solid var(--line);padding:8px 14px;border-radius:999px;box-shadow:var(--shadow)}
.tagchip:hover{border-color:var(--gold);color:var(--gold-deep)}
.tagchip span{font-size:12px;color:var(--muted);background:rgba(27,23,20,.06);border-radius:999px;padding:1px 8px}
.tag-qna{margin:36px 0 0;border-top:1px solid var(--line-2);padding-top:18px}
.tag-qna h2{font-family:var(--serif);font-size:1.4rem;margin:0 0 10px}
.tag-qna ul{padding-left:1.2em}.tag-qna li{margin:.4em 0}
.searchwrap{max-width:760px;margin:0 auto}
.searchwrap input[type=search]{width:100%;font:inherit;font-size:18px;padding:15px 18px;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}
.searchwrap input[type=search]:focus-visible{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(176,122,54,.18)}
.scount{color:var(--muted);font-size:14px;margin:14px 2px}
#results.grid{margin-top:6px}

/* ---------- question pages + inline tag answers ---------- */
.qrow .qh{font-size:1.16rem;margin:0 0 .45em;line-height:1.35;font-family:var(--sans);font-weight:600}
.qrow .qh a.qlink{color:var(--ink);border-bottom:none}
.qrow .qh a.qlink:hover{color:var(--gold-deep)}
.qmore{font-size:12px;font-weight:600;color:var(--gold-deep);margin-left:auto;white-space:nowrap;border-bottom:none}
.tag-qna-head{font-family:var(--serif);font-size:1.5rem;margin:0 0 8px}
.tag-qna-more{margin-top:16px}
.qrel-list{padding-left:1.2em}.qrel-list li{margin:.4em 0}
.qpage .prose h2{margin-top:1.5em}
