/* ==========================================================================
   NIGHT THOUGHTS - PSYCHOLOGY NOIR
   Every value here comes from the active DESIGN.md. Do not introduce a font,
   colour or radius this file does not already declare.
   ========================================================================== */

@font-face{font-family:Oswald;src:url(https://nightthoughts.space/wp-content/uploads/fonts/oswald-latin-400-normal.woff2) format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Oswald;src:url(https://nightthoughts.space/wp-content/uploads/fonts/oswald-latin-500-normal.woff2) format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:Oswald;src:url(https://nightthoughts.space/wp-content/uploads/fonts/oswald-latin-600-normal.woff2) format('woff2');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:Manrope;src:url(https://nightthoughts.space/wp-content/uploads/fonts/manrope-latin-400-normal.woff2) format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Manrope;src:url(https://nightthoughts.space/wp-content/uploads/fonts/manrope-latin-500-normal.woff2) format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:Manrope;src:url(https://nightthoughts.space/wp-content/uploads/fonts/manrope-latin-700-normal.woff2) format('woff2');font-weight:700;font-style:normal;font-display:swap}

:root{
  --nt-bg:#070706; --nt-surface:#171310; --nt-surface-2:#211B16;
  --nt-ink:#F2ECE4; --nt-ink-muted:#A79E96;
  --nt-accent:#E28A32; --nt-accent-deep:#B85F1B;
  --nt-border:#332B23; --nt-border-interactive:#7E7065;
  --nt-success:#8FB58A; --nt-warning:#E0B45E; --nt-danger:#E08472;
  --nt-display:Oswald,'Arial Narrow',sans-serif;
  --nt-body:Manrope,system-ui,-apple-system,sans-serif;
  --nt-sp-sm:8px; --nt-sp-md:16px; --nt-sp-lg:32px; --nt-sp-xl:64px; --nt-sp-xxl:112px;
  --nt-measure:66ch; --nt-wide:1180px;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  background:var(--nt-bg); color:var(--nt-ink);
  font-family:var(--nt-body); font-size:17.5px; line-height:1.72;
  font-weight:400; margin:0;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
img,svg,video{max-width:100%;height:auto}

/* ---------- Typography ---------- */
h1,h2,h3,h4,h5,h6{font-family:var(--nt-display);font-weight:600;color:var(--nt-ink);margin:0 0 .5em;text-wrap:balance}
h1{font-size:clamp(2.4rem,5.2vw,3.9rem);line-height:1.06;letter-spacing:-.005em}
h2{font-size:clamp(1.55rem,3vw,2.1rem);line-height:1.18;font-weight:500;margin-top:2.1em}
h3{font-size:clamp(1.2rem,2.2vw,1.45rem);line-height:1.24;font-weight:500;margin-top:1.7em}
h4{font-size:1.1rem;font-weight:500}
p{margin:0 0 1.15em}
strong,b{font-weight:700;color:var(--nt-ink)}
em,i{font-style:italic}
small{font-size:.86em;color:var(--nt-ink-muted)}
sup{font-size:.7em;vertical-align:super;line-height:0}
sup a{text-decoration:none;padding:0 .15em}
blockquote{margin:1.8em 0;padding:0 0 0 var(--nt-sp-lg);border-left:2px solid var(--nt-accent-deep);color:var(--nt-ink-muted);font-size:1.06em}
ul,ol{margin:0 0 1.3em;padding-left:1.3em}
li{margin-bottom:.55em}
li::marker{color:var(--nt-accent-deep)}
hr{border:0;border-top:1px solid var(--nt-border);margin:var(--nt-sp-xl) 0}
code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.88em;background:var(--nt-surface);padding:.15em .4em}

/* ---------- Links ---------- */
a{color:var(--nt-accent);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;transition:color .16s ease}
a:hover{color:var(--nt-ink)}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[tabindex]:focus-visible{
  outline:2px solid var(--nt-accent); outline-offset:2px; border-radius:0;
}

/* ---------- Layout ---------- */
.nt-wrap{max-width:var(--nt-wide);margin:0 auto;padding:0 var(--nt-sp-lg)}
.nt-measure{max-width:var(--nt-measure)}
.site-main,.page-content,.entry-content{max-width:var(--nt-wide);margin:0 auto;padding:0 var(--nt-sp-lg)}

/* ---------- Header ---------- */
.site-header{background:var(--nt-bg);border-bottom:1px solid var(--nt-border);padding:var(--nt-sp-md) 0;position:relative;z-index:20}
.site-header .site-branding{display:flex;align-items:center;gap:14px}
.site-header .site-title,.site-header .site-title a{
  font-family:var(--nt-display);font-weight:600;font-size:1.32rem;line-height:1;
  letter-spacing:.15em;text-transform:uppercase;color:var(--nt-ink);text-decoration:none;
}
.site-header .site-description{font-size:9.5px;letter-spacing:.3em;text-transform:uppercase;color:var(--nt-ink-muted);margin-top:7px}
.nt-mark{flex:0 0 auto;color:var(--nt-ink)}
.site-navigation ul,.site-navigation-toggle-holder ul{list-style:none;margin:0;padding:0;display:flex;gap:var(--nt-sp-lg);align-items:center}
.site-navigation a{
  font-family:var(--nt-display);font-weight:400;font-size:.86rem;letter-spacing:.15em;
  text-transform:uppercase;color:var(--nt-ink-muted);text-decoration:none;padding:.6em 0;display:inline-block;
  border-bottom:1px solid transparent;
}
.site-navigation a:hover,.site-navigation .current-menu-item>a{color:var(--nt-ink);border-bottom-color:var(--nt-accent)}

/* ---------- Footer ---------- */
.site-footer{background:var(--nt-bg);border-top:1px solid var(--nt-border);margin-top:var(--nt-sp-xxl);padding:var(--nt-sp-xl) 0}
.site-footer a{color:var(--nt-ink-muted);text-decoration:none}
.site-footer a:hover{color:var(--nt-accent);text-decoration:underline}
.nt-foot{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:var(--nt-sp-xl)}
.nt-foot h3{font-family:var(--nt-display);font-size:.76rem;letter-spacing:.2em;text-transform:uppercase;color:var(--nt-ink-muted);font-weight:500;margin-bottom:1.1em}
.nt-foot ul{list-style:none;padding:0;margin:0;font-size:.93rem;line-height:2}
.nt-legal{border-top:1px solid var(--nt-border);margin-top:var(--nt-sp-xl);padding-top:var(--nt-sp-lg);font-size:.82rem;color:var(--nt-ink-muted);display:flex;justify-content:space-between;gap:var(--nt-sp-md);flex-wrap:wrap}

/* ---------- Editorial furniture ---------- */
.nt-standfirst{font-size:1.18em;line-height:1.6;color:var(--nt-ink-muted);max-width:34em;margin-bottom:1.7em}
.nt-eyebrow{font-family:var(--nt-display);font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--nt-accent);margin-bottom:1em;display:block}
.nt-meta{font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;color:var(--nt-ink-muted)}
.entry-content,.nt-article{max-width:var(--nt-measure)}
.entry-content>*,.nt-article>*{max-width:var(--nt-measure)}

/* Reference list and disclaimer, set apart from the reading column */
.nt-refs{font-size:.9rem;color:var(--nt-ink-muted);line-height:1.6}
.nt-refs li{margin-bottom:.9em}
.nt-disclaimer{
  background:var(--nt-surface);border-left:3px solid var(--nt-accent-deep);
  padding:var(--nt-sp-lg);font-size:.94rem;color:var(--nt-ink-muted);margin-top:var(--nt-sp-xl);
}
.nt-disclaimer strong{color:var(--nt-ink)}

/* ---------- Buttons ---------- */
.nt-btn,.wp-block-button__link,input[type=submit],button[type=submit],.ff-btn-submit{
  display:inline-block;font-family:var(--nt-body);font-weight:700;font-size:.88rem;
  letter-spacing:.09em;text-transform:uppercase;
  background:var(--nt-accent);color:var(--nt-bg)!important;
  border:1px solid var(--nt-accent);border-radius:0;padding:15px 30px;
  text-decoration:none;cursor:pointer;transition:background .16s ease,border-color .16s ease;
}
.nt-btn:hover,input[type=submit]:hover,button[type=submit]:hover,.ff-btn-submit:hover{background:#F0A254;border-color:#F0A254;color:var(--nt-bg)!important}
.nt-btn--ghost{background:transparent;color:var(--nt-ink)!important;border:1px solid var(--nt-border-interactive);font-weight:500}
.nt-btn--ghost:hover{background:transparent;border-color:var(--nt-ink);color:var(--nt-ink)!important}

/* ---------- Cards ---------- */
.nt-grid{display:grid;gap:1px;background:var(--nt-border);border:1px solid var(--nt-border)}
.nt-grid--3{grid-template-columns:repeat(3,1fr)}
.nt-grid--2{grid-template-columns:repeat(2,1fr)}
.nt-card{background:var(--nt-surface);padding:var(--nt-sp-lg);display:flex;flex-direction:column;gap:.6em}
.nt-card h3{margin:0;font-size:1.22rem;line-height:1.22}
.nt-card h3 a{color:var(--nt-ink);text-decoration:none}
.nt-card h3 a:hover{color:var(--nt-accent)}
.nt-card p{margin:0;font-size:.96rem;color:var(--nt-ink-muted);line-height:1.62}
.nt-card .nt-cat{font-family:var(--nt-display);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--nt-accent);text-decoration:none}

/* Topic list, hairline separated rather than boxed */
.nt-topics{border-top:1px solid var(--nt-border);margin:0;padding:0;list-style:none}
.nt-topics li{border-bottom:1px solid var(--nt-border);margin:0}
.nt-topics a{display:grid;grid-template-columns:minmax(0,15em) 1fr;gap:var(--nt-sp-lg);align-items:baseline;padding:1.4em 0;text-decoration:none;color:var(--nt-ink)}
.nt-topics a:hover{color:var(--nt-accent)}
.nt-topics .t{font-family:var(--nt-display);font-size:1.25rem;font-weight:500;line-height:1.2}
.nt-topics .d{color:var(--nt-ink-muted);font-size:.95rem;line-height:1.6}
.nt-topics .soon{color:var(--nt-ink-muted);opacity:.65;cursor:default}

/* ---------- Sections ---------- */
.nt-section{padding:56px 0}
.nt-section--tight{padding:40px 0}
.nt-section-head{display:flex;justify-content:space-between;align-items:baseline;gap:var(--nt-sp-md);margin-bottom:var(--nt-sp-lg);border-bottom:1px solid var(--nt-border);padding-bottom:var(--nt-sp-md)}
.nt-section-head h2{margin:0;font-size:1.5rem}

/* ---------- Hero ---------- */
.nt-hero{position:relative;min-height:min(78vh,660px);display:flex;align-items:center;overflow:hidden;border-bottom:1px solid var(--nt-border)}
.nt-hero__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:70% center;z-index:0}
.nt-hero::after{content:'';position:absolute;inset:0;z-index:1;
  background:linear-gradient(90deg,var(--nt-bg) 0%,rgba(7,7,6,.94) 42%,rgba(7,7,6,.55) 72%,rgba(7,7,6,.35) 100%)}
.nt-hero__inner{position:relative;z-index:2;max-width:var(--nt-wide);margin:0 auto;padding:88px var(--nt-sp-lg);width:100%}
.nt-hero h1{max-width:16ch;margin-bottom:.4em}
.nt-hero .nt-tagline{font-family:var(--nt-display);font-size:.8rem;letter-spacing:.3em;text-transform:uppercase;color:var(--nt-accent);margin-bottom:1.6em}
.nt-hero p{max-width:33em;color:var(--nt-ink-muted);font-size:1.1rem}
.nt-hero .nt-cta{margin-top:var(--nt-sp-lg);display:flex;gap:var(--nt-sp-md);flex-wrap:wrap}

/* ---------- Fluent Forms ---------- */
.fluentform .ff-el-group{margin-bottom:var(--nt-sp-md)}
.fluentform .ff-el-input--label label{font-family:var(--nt-body);font-weight:500;font-size:.9rem;color:var(--nt-ink);margin-bottom:.45em;display:block}
.fluentform input[type=text],.fluentform input[type=email],.fluentform textarea{
  width:100%;background:var(--nt-surface);color:var(--nt-ink);
  border:1px solid var(--nt-border-interactive);border-radius:0;
  padding:13px 15px;font-family:var(--nt-body);font-size:1rem;line-height:1.5;
}
.fluentform input::placeholder,.fluentform textarea::placeholder{color:#8A8078}
.fluentform input:focus,.fluentform textarea:focus{border-color:var(--nt-accent);outline:2px solid var(--nt-accent);outline-offset:1px}
.fluentform .ff-el-form-check-label{color:var(--nt-ink-muted);font-size:.93rem;line-height:1.6}
.fluentform .ff-el-is-error input,.fluentform .ff-el-is-error textarea{border-color:var(--nt-danger)}
.fluentform .error,.fluentform .text-danger,.fluentform .ff-el-is-error .error{color:var(--nt-danger);font-size:.88rem;margin-top:.4em}
.fluentform .ff-message-success,.ff_message_success{
  background:var(--nt-surface);border-left:3px solid var(--nt-success);
  color:var(--nt-ink);padding:var(--nt-sp-lg);font-size:1rem;
}
.ff-el-form-required,.fluentform .ff-el-is-required{color:var(--nt-accent)}

/* ---------- Responsive ---------- */
@media (max-width:1024px){
  .nt-grid--3{grid-template-columns:repeat(2,1fr)}
  :root{--nt-sp-xxl:80px}
}
@media (max-width:900px){
  .site-navigation ul{gap:var(--nt-sp-md)}
  .nt-foot{grid-template-columns:1fr 1fr;gap:var(--nt-sp-lg)}
}
@media (max-width:768px){
  body{font-size:17px}
  :root{--nt-sp-xxl:64px;--nt-sp-xl:44px}
  .nt-grid--3,.nt-grid--2{grid-template-columns:1fr}
  .nt-foot{grid-template-columns:1fr}
  .nt-topics a{grid-template-columns:1fr;gap:.4em;padding:1.15em 0}
  .nt-hero{min-height:auto}
  .nt-hero h1{max-width:100%}
  .nt-hero::after{background:linear-gradient(180deg,rgba(7,7,6,.88) 0%,rgba(7,7,6,.94) 60%,var(--nt-bg) 100%)}
  .site-main,.page-content,.entry-content,.nt-wrap,.nt-hero__inner{padding-left:var(--nt-sp-md);padding-right:var(--nt-sp-md)}
  .nt-legal{flex-direction:column;gap:.6em}
}
@media (max-width:360px){ body{font-size:16.5px} }

/* ---------- Motion ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
}

/* ---------- Utility ---------- */
.screen-reader-text,.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.nt-skip{position:absolute;left:-9999px;top:0;background:var(--nt-accent);color:var(--nt-bg);padding:12px 20px;z-index:999;font-weight:700}
.nt-skip:focus{left:0}
/* Splits, declared so they can actually collapse on small screens */
.nt-split{display:grid;grid-template-columns:1fr 1fr;gap:var(--nt-sp-xl);align-items:start}
.nt-split--wide{display:grid;grid-template-columns:1.6fr 1fr;gap:var(--nt-sp-xl);align-items:start}
.nt-aside{border-left:1px solid var(--nt-border);padding-left:var(--nt-sp-lg)}
@media (max-width:900px){.nt-split,.nt-split--wide{grid-template-columns:1fr;gap:var(--nt-sp-lg)}.nt-aside{border-left:0;padding-left:0;border-top:1px solid var(--nt-border);padding-top:var(--nt-sp-lg)}}
@media (max-width:768px){.nt-section{padding:40px 0}.nt-hero__inner{padding:56px var(--nt-sp-md)}}

/* Small-screen corrections found by rendering at 390px */
@media (max-width:768px){
  .header-inner{flex-direction:column;align-items:flex-start;gap:14px}
  .footer-inner{flex-direction:column;align-items:flex-start;gap:20px}
  .site-footer .site-navigation ul{flex-direction:column;gap:.35em;align-items:flex-start}
  .site-header .site-navigation ul{flex-wrap:wrap;gap:18px}
  .nt-hero .nt-tagline{letter-spacing:.18em;font-size:.72rem}
  .nt-section-head{flex-wrap:wrap;gap:.4em}
}
@media (max-width:480px){ .nt-btn{width:100%;text-align:center} .nt-cta{flex-direction:column} }
/* ==== IMAGE LAYER ================================================== */
.nt-card{background:var(--nt-surface);padding:0;gap:0;overflow:hidden}
.nt-card__media{display:block;line-height:0;overflow:hidden;background:var(--nt-surface-2)}
.nt-card__media img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;display:block;opacity:.88;transition:transform .4s cubic-bezier(.16,1,.3,1),opacity .25s ease}
.nt-card:hover .nt-card__media img{transform:scale(1.035);opacity:1}
.nt-card__body{padding:var(--nt-sp-lg);display:flex;flex-direction:column;gap:.55em}
.nt-card h3{margin:0;font-size:1.2rem;line-height:1.24}
.nt-card h3 a{color:var(--nt-ink);text-decoration:none;transition:color .18s ease}
.nt-card:hover h3 a{color:var(--nt-accent)}
.nt-card p{margin:0;font-size:.95rem;color:var(--nt-ink-muted);line-height:1.6}
.nt-cat{font-family:var(--nt-display);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--nt-accent);text-decoration:none;align-self:flex-start}
.nt-cat:hover{color:var(--nt-ink)}

.nt-feature{display:grid;grid-template-columns:1.15fr 1fr;gap:var(--nt-sp-xl);align-items:center}
.nt-feature__media{display:block;line-height:0;overflow:hidden;background:var(--nt-surface-2)}
.nt-feature__media img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;display:block;opacity:.9;transition:opacity .3s ease,transform .5s cubic-bezier(.16,1,.3,1)}
.nt-feature:hover .nt-feature__media img{opacity:1;transform:scale(1.02)}
.nt-feature__body{display:flex;flex-direction:column;gap:.7em;align-items:flex-start}
.nt-feature__title{font-size:clamp(1.6rem,3vw,2.3rem);line-height:1.14;margin:0}
.nt-feature__title a{color:var(--nt-ink);text-decoration:none;transition:color .18s ease}
.nt-feature__title a:hover{color:var(--nt-accent)}
.nt-feature__body p{margin:0;color:var(--nt-ink-muted);font-size:1.04rem;line-height:1.66}

.nt-grid--topics{grid-template-columns:repeat(4,1fr)}
.nt-topic{background:var(--nt-surface);display:flex;flex-direction:column;text-decoration:none;color:var(--nt-ink);overflow:hidden}
.nt-topic__media{display:block;line-height:0;background:var(--nt-surface-2);aspect-ratio:3/2;position:relative;overflow:hidden}
.nt-topic__media img{width:100%;height:100%;object-fit:cover;display:block;opacity:.62;transition:transform .45s cubic-bezier(.16,1,.3,1),opacity .25s ease}
.nt-topic:hover .nt-topic__media img{transform:scale(1.05);opacity:.85}
.nt-topic--soon .nt-topic__media{background:linear-gradient(135deg,#1d1712 0%,#120e0a 55%,#0b0908 100%)}
.nt-topic--soon .nt-topic__media::after{content:"";position:absolute;left:50%;top:50%;width:34px;height:34px;margin:-17px 0 0 -17px;border:2px solid rgba(184,95,27,.55);border-radius:50%;border-right-color:transparent;border-bottom-color:transparent;transform:rotate(-45deg)}
.nt-topic__body{padding:var(--nt-sp-md) 20px 22px;display:flex;flex-direction:column;gap:.4em}
.nt-topic .t{font-family:var(--nt-display);font-size:1.05rem;font-weight:500;line-height:1.2;letter-spacing:.01em}
.nt-topic:hover .t{color:var(--nt-accent)}
.nt-topic .d{color:var(--nt-ink-muted);font-size:.86rem;line-height:1.55}
.nt-soon{color:#8A8078}

@media (max-width:1100px){.nt-grid--topics{grid-template-columns:repeat(3,1fr)}}
@media (max-width:900px){.nt-feature{grid-template-columns:1fr;gap:var(--nt-sp-lg)}.nt-grid--topics{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.nt-grid--topics{grid-template-columns:1fr}}

@media (prefers-reduced-motion:reduce){
  .nt-card__media img,.nt-feature__media img,.nt-topic__media img{transition:none!important;transform:none!important}
  .nt-card:hover .nt-card__media img,.nt-feature:hover .nt-feature__media img,.nt-topic:hover .nt-topic__media img{transform:none!important}
}

a,button,.nt-card,.nt-topic,.nt-feature{cursor:pointer}
.nt-card,.nt-topic{transition:background .2s ease}
.nt-card:hover,.nt-topic:hover{background:var(--nt-surface-2)}

.nt-draft{position:absolute;margin:12px;background:var(--nt-warning);color:var(--nt-bg);font-family:var(--nt-body);font-weight:700;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;padding:5px 9px;z-index:3}
.nt-card{position:relative}
.nt-previewbar{background:var(--nt-surface-2);border-bottom:1px solid var(--nt-border);color:var(--nt-ink-muted);font-size:.78rem;letter-spacing:.06em;padding:9px 0;text-align:center}
.nt-previewbar strong{color:var(--nt-warning)}
