:root {
    --tm-ink: #07111f;
    --tm-ink-2: #0c1c31;
    --tm-paper: #f7fbff;
    --tm-text: #eaf5ff;
    --tm-muted: #9eb2c9;
    --tm-cyan: #18c8ff;
    --tm-magenta: #ff2f92;
    --tm-yellow: #ffd84a;
    --tm-violet: #885cff;
    --tm-green: #35df9a;
    --tm-border: rgba(255,255,255,.12);
    --tm-shadow: 0 24px 80px rgba(0,0,0,.32);
    --tm-radius: 24px;
    --tm-header-h: 74px;
    --tm-masonry-columns: 5;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    color: var(--tm-text);
    background:
        radial-gradient(circle at 15% 15%, rgba(24,200,255,.12), transparent 28%),
        radial-gradient(circle at 85% 8%, rgba(255,47,146,.12), transparent 25%),
        radial-gradient(circle at 60% 90%, rgba(136,92,255,.10), transparent 28%),
        #07111f;
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    line-height: 1.65;
    min-height: 100vh;
}
body::before {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: -1;
    opacity: .16;
    background-image:
        radial-gradient(circle, rgba(255,255,255,.5) 1px, transparent 1.5px),
        linear-gradient(115deg, transparent 0 48%, rgba(255,255,255,.04) 48% 49%, transparent 49% 100%);
    background-size: 18px 18px, 220px 220px;
}
img { max-width: 100%; height: auto; }
a { color: inherit; }
button, input, textarea, select { font: inherit; }
.screen-reader-text { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
.screen-reader-text:focus { clip:auto!important; width:auto!important; height:auto!important; padding:.8rem 1rem!important; background:#fff!important; color:#000!important; z-index:99999!important; top:8px!important; left:8px!important; }

.tm-reading-progress { position: fixed; top: 0; left: 0; right: 0; height: 3px; z-index: 9999; pointer-events: none; }
.tm-reading-progress span { display:block; height:100%; width:0; background: linear-gradient(90deg,var(--tm-cyan),var(--tm-magenta),var(--tm-yellow)); box-shadow:0 0 16px var(--tm-cyan); }

.tm-site-header {
    position: sticky;
    top: 0;
    z-index: 1000;
    border-bottom: 1px solid rgba(255,255,255,.08);
    background: rgba(5,14,26,.82);
    backdrop-filter: blur(18px) saturate(155%);
}
.tm-site-header::after {
    content:"";
    position:absolute;
    left:0; right:0; bottom:-1px; height:2px;
    background:linear-gradient(90deg,transparent,var(--tm-cyan),var(--tm-magenta),var(--tm-yellow),transparent);
    opacity:.75;
}
.tm-header-inner { max-width: 1500px; margin: 0 auto; min-height: var(--tm-header-h); padding: 0 28px; display:flex; align-items:center; justify-content:space-between; gap:28px; }
.tm-brand-link { text-decoration:none; display:flex; align-items:center; }
.tm-logo-wrap .custom-logo-link { display:flex; }
.custom-logo { max-height:52px; width:auto; }
.tm-brand-wordmark { font-weight: 950; font-size: clamp(1.65rem, 3vw, 2.35rem); letter-spacing:-.06em; font-style:italic; line-height:1; }
.tm-brand-wordmark span { color:var(--tm-cyan); text-shadow:0 0 18px rgba(24,200,255,.45); }
.tm-brand-wordmark em { color:#fff; font-size:.58em; font-style:normal; letter-spacing:-.03em; }
.tm-primary-nav ul { display:flex; align-items:center; gap:8px; list-style:none; padding:0; margin:0; }
.tm-primary-nav a { text-decoration:none; color:#dff5ff; font-weight:800; font-size:.9rem; padding:10px 13px; border-radius:12px; transition:.2s ease; }
.tm-primary-nav a:hover, .tm-primary-nav a:focus-visible { color:#07111f; background:var(--tm-yellow); transform:translateY(-2px) rotate(-1deg); outline:none; }
.tm-menu-toggle { display:none; width:44px; height:44px; border-radius:12px; border:1px solid var(--tm-border); background:rgba(255,255,255,.05); padding:10px; }
.tm-menu-toggle span:not(.screen-reader-text) { display:block; height:2px; background:#fff; margin:5px 0; border-radius:10px; }

.tm-site-content { min-height:65vh; }

/* Front page: visuals only */
.tm-masonry-shell { max-width: 1800px; margin: 0 auto; padding: 18px 16px 54px; }
.tm-masonry-grid {
    display:grid;
    grid-template-columns: repeat(var(--tm-masonry-columns), minmax(0,1fr));
    grid-auto-rows: 8px;
    grid-auto-flow: row dense;
    gap:14px;
}
.tm-masonry-item { margin:0; padding:0; position:relative; min-width:0; }
.tm-masonry-link {
    display:block;
    position:relative;
    overflow:hidden;
    border-radius:20px;
    background:#0d223c;
    border:1px solid rgba(255,255,255,.10);
    box-shadow:0 12px 32px rgba(0,0,0,.28);
    transform:translateZ(0);
    isolation:isolate;
    transition:transform .23s cubic-bezier(.2,.8,.2,1), box-shadow .23s ease, border-color .23s ease;
}
.tm-masonry-link::before {
    content:"";
    position:absolute;
    inset:-30% -20%;
    z-index:2;
    background:linear-gradient(115deg,transparent 40%,rgba(255,255,255,.28) 49%,transparent 58%);
    transform:translateX(-70%) rotate(5deg);
    transition:transform .55s ease;
    pointer-events:none;
}
.tm-masonry-link::after {
    content:"";
    position:absolute;
    inset:0;
    z-index:1;
    background:linear-gradient(180deg,transparent 58%,rgba(7,17,31,.36));
    opacity:0;
    transition:opacity .22s ease;
    pointer-events:none;
}
.tm-masonry-link:hover { transform:translateY(-7px) scale(1.012); border-color:rgba(24,200,255,.52); box-shadow:0 22px 55px rgba(0,0,0,.42),0 0 0 1px rgba(255,47,146,.16),0 0 30px rgba(24,200,255,.16); }
.tm-masonry-link:hover::before { transform:translateX(70%) rotate(5deg); }
.tm-masonry-link:hover::after { opacity:1; }
.tm-masonry-link:focus-visible { outline:3px solid var(--tm-yellow); outline-offset:3px; }
.tm-masonry-image { width:100%; height:auto; display:block; transition:filter .25s ease, transform .35s ease; }
.tm-masonry-link:hover .tm-masonry-image { transform:scale(1.018); filter:saturate(1.10) contrast(1.04); }
.tm-empty-state { min-height:50vh; display:grid; place-items:center; font-size:1.25rem; color:var(--tm-muted); }

/* Archive / blog */
.tm-archive-shell, .tm-singular-shell { width:min(1420px, calc(100% - 32px)); margin:0 auto; padding:clamp(32px,6vw,84px) 0 70px; }
.tm-archive-hero, .tm-entry-header {
    position:relative;
    overflow:hidden;
    border:1px solid var(--tm-border);
    border-radius:30px;
    padding:clamp(28px,5vw,64px);
    margin-bottom:32px;
    background:
        linear-gradient(135deg,rgba(24,200,255,.12),rgba(136,92,255,.10) 45%,rgba(255,47,146,.12)),
        rgba(10,28,49,.86);
    box-shadow:var(--tm-shadow);
}
.tm-archive-hero::before, .tm-entry-header::before {
    content:"";
    position:absolute;
    width:380px; height:380px;
    right:-110px; top:-170px;
    border-radius:50%;
    background:repeating-conic-gradient(from 0deg,var(--tm-yellow) 0 4deg,transparent 4deg 10deg);
    opacity:.11;
}
.tm-archive-hero::after, .tm-entry-header::after {
    content:"";
    position:absolute; left:0; right:0; bottom:0; height:5px;
    background:linear-gradient(90deg,var(--tm-cyan),var(--tm-magenta),var(--tm-yellow),var(--tm-violet));
}
.tm-kicker { display:inline-flex; align-items:center; gap:8px; font-weight:950; letter-spacing:.12em; text-transform:uppercase; color:var(--tm-yellow); font-size:.76rem; }
.tm-kicker::before { content:""; width:26px; height:3px; background:var(--tm-magenta); box-shadow:10px -6px 0 var(--tm-cyan); transform:skewX(-18deg); }
.tm-archive-hero h1, .tm-entry-header h1 { position:relative; z-index:1; margin:.2em 0 .15em; max-width:1100px; font-size:clamp(2rem,5.5vw,5.4rem); line-height:.98; letter-spacing:-.055em; font-weight:950; text-wrap:balance; }
.tm-archive-hero p, .tm-archive-description { position:relative; z-index:1; color:#c8d8e8; max-width:760px; font-size:clamp(1rem,1.5vw,1.15rem); }
.tm-entry-meta { display:flex; flex-wrap:wrap; gap:12px; color:#a9bfd4; font-size:.9rem; font-weight:700; }

.tm-post-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.tm-post-card { overflow:hidden; border-radius:26px; background:rgba(12,28,49,.9); border:1px solid var(--tm-border); box-shadow:0 18px 50px rgba(0,0,0,.28); transition:.25s ease; }
.tm-post-card:hover { transform:translateY(-7px); border-color:rgba(24,200,255,.38); }
.tm-post-card-visual { display:block; aspect-ratio: 4 / 5; overflow:hidden; background:#0b2039; }
.tm-post-card-visual img { width:100%; height:100%; object-fit:cover; transition:transform .45s ease; }
.tm-post-card:hover .tm-post-card-visual img { transform:scale(1.045); }
.tm-post-card-placeholder { display:grid; place-items:center; width:100%; height:100%; font-weight:950; font-size:4rem; color:var(--tm-cyan); background:radial-gradient(circle at 30% 30%,rgba(24,200,255,.25),transparent 35%),#0b2039; }
.tm-post-card-body { padding:22px; }
.tm-post-card-meta { color:var(--tm-cyan); font-size:.78rem; font-weight:900; text-transform:uppercase; letter-spacing:.08em; }
.tm-post-card h2 { margin:.45rem 0 .6rem; line-height:1.08; font-size:clamp(1.25rem,2vw,1.65rem); letter-spacing:-.03em; }
.tm-post-card h2 a { text-decoration:none; }
.tm-post-card-excerpt { color:#b8c9da; font-size:.95rem; }
.tm-arrow-link { display:inline-flex; gap:8px; align-items:center; text-decoration:none; color:var(--tm-yellow); font-weight:900; margin-top:10px; }
.tm-arrow-link span { transition:transform .2s ease; }
.tm-arrow-link:hover span { transform:translateX(5px); }

/* Singular */
.tm-singular-shell { max-width:1180px; }
.tm-entry { min-width:0; }
.tm-entry-content {
    color:#13283d;
    background:rgba(249,252,255,.985);
    border-radius:30px;
    border:1px solid rgba(255,255,255,.65);
    box-shadow:0 30px 90px rgba(0,0,0,.34);
    padding:clamp(24px,5vw,68px);
    overflow:hidden;
}
.tm-entry-content > :first-child { margin-top:0; }
.tm-entry-content > :last-child { margin-bottom:0; }
.tm-entry-content h2, .tm-entry-content h3, .tm-entry-content h4 { color:#07111f; line-height:1.08; letter-spacing:-.035em; }
.tm-entry-content h2 { font-size:clamp(1.7rem,3vw,2.7rem); margin-top:1.8em; }
.tm-entry-content a { color:#006a9d; font-weight:750; text-decoration-thickness:2px; text-underline-offset:3px; }
.tm-entry-content img { border-radius:20px; box-shadow:0 18px 50px rgba(8,25,43,.15); }
.tm-entry-content figure { max-width:100%; }
.tm-entry-content blockquote { margin:1.8rem 0; padding:1.2rem 1.35rem; border-left:5px solid var(--tm-magenta); background:linear-gradient(90deg,rgba(255,47,146,.08),transparent); border-radius:0 18px 18px 0; }
.tm-entry-content pre { overflow:auto; border-radius:18px; background:#07111f; color:#dff7ff; padding:18px; }
.tm-entry-content table { width:100%; border-collapse:collapse; }
.tm-entry-content th, .tm-entry-content td { padding:10px 12px; border:1px solid #d7e3ec; }
.tm-entry-content th { background:#e9f7ff; }
.tm-entry-content .wp-block-button__link { background:linear-gradient(135deg,var(--tm-cyan),var(--tm-violet)); color:white; border-radius:999px; box-shadow:0 12px 28px rgba(24,200,255,.2); }
.tm-page-header { background:linear-gradient(135deg,rgba(255,216,74,.12),rgba(255,47,146,.12),rgba(24,200,255,.12)),rgba(10,28,49,.86); }

/* Comments */
.tm-comments-area { margin-top:32px; padding:clamp(22px,4vw,42px); border-radius:28px; background:rgba(12,28,49,.9); border:1px solid var(--tm-border); }
.comment-list { padding-left:0; list-style:none; }
.comment-list .comment { padding:18px 0; border-top:1px solid rgba(255,255,255,.08); }
.comment-form input:not([type=submit]), .comment-form textarea { width:100%; background:#08192d; color:#eef9ff; border:1px solid rgba(255,255,255,.14); border-radius:14px; padding:12px 14px; }
.comment-form input[type=submit], .tm-button { display:inline-flex; align-items:center; justify-content:center; border:0; border-radius:999px; padding:12px 20px; background:linear-gradient(135deg,var(--tm-cyan),var(--tm-violet)); color:#fff; font-weight:900; text-decoration:none; cursor:pointer; }

/* Pagination */
.tm-pagination { display:flex; justify-content:center; margin-top:38px; }
.tm-pagination ul { display:flex; flex-wrap:wrap; gap:8px; list-style:none; margin:0; padding:0; }
.tm-pagination a, .tm-pagination span { display:grid; place-items:center; min-width:42px; min-height:42px; padding:7px 11px; border-radius:12px; text-decoration:none; background:rgba(255,255,255,.06); border:1px solid var(--tm-border); font-weight:850; }
.tm-pagination .current { color:#07111f; background:var(--tm-yellow); border-color:var(--tm-yellow); }

/* Footer */
.tm-site-footer { position:relative; overflow:hidden; border-top:1px solid var(--tm-border); background:#050d18; }
.tm-footer-speedlines { position:absolute; inset:0; opacity:.1; background:repeating-linear-gradient(165deg,transparent 0 18px,rgba(24,200,255,.45) 18px 20px,transparent 20px 46px); }
.tm-footer-inner { position:relative; max-width:1450px; margin:0 auto; padding:40px 28px; display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; }
.tm-footer-brand { text-decoration:none; font-weight:950; font-size:1.6rem; letter-spacing:-.055em; }
.tm-footer-brand span { color:var(--tm-cyan); }
.tm-footer-inner p { margin:0; color:#8fa7bd; }
.tm-footer-inner ul { list-style:none; display:flex; gap:12px; margin:0; padding:0; }
.tm-footer-inner ul a { text-decoration:none; color:#cde3f5; font-weight:700; }

/* Error */
.tm-error-shell { min-height:65vh; display:grid; place-items:center; padding:40px 20px; }
.tm-error-card { text-align:center; max-width:760px; padding:48px; border-radius:34px; background:linear-gradient(135deg,rgba(24,200,255,.12),rgba(255,47,146,.12)),rgba(10,28,49,.94); border:1px solid var(--tm-border); box-shadow:var(--tm-shadow); }
.tm-error-number { display:block; font-size:clamp(6rem,18vw,13rem); font-weight:950; line-height:.78; letter-spacing:-.09em; color:transparent; -webkit-text-stroke:2px var(--tm-cyan); text-shadow:10px 10px 0 rgba(255,47,146,.25); }
.tm-error-card h1 { font-size:clamp(2rem,5vw,4rem); margin:.5em 0 .2em; }

/* WordPress alignment */
.alignwide { width:min(1280px, calc(100vw - 48px)); max-width:none; margin-left:50%; transform:translateX(-50%); }
.alignfull { width:100vw; max-width:none; margin-left:50%; transform:translateX(-50%); }

@media (max-width: 1350px) {
    .tm-masonry-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
}
@media (max-width: 1050px) {
    .tm-masonry-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .tm-post-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .tm-menu-toggle { display:block; color:white; }
    .tm-primary-nav { position:absolute; top:calc(100% + 10px); left:16px; right:16px; padding:12px; border-radius:20px; background:rgba(5,14,26,.97); border:1px solid var(--tm-border); box-shadow:var(--tm-shadow); transform:translateY(-8px) scale(.98); opacity:0; pointer-events:none; transition:.2s ease; }
    .tm-primary-nav.is-open { opacity:1; pointer-events:auto; transform:none; }
    .tm-primary-nav ul { flex-direction:column; align-items:stretch; }
    .tm-primary-nav a { display:block; }
}
@media (max-width: 720px) {
    :root { --tm-header-h:66px; }
    .tm-header-inner { padding:0 16px; }
    .tm-masonry-shell { padding:10px 8px 42px; }
    .tm-masonry-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
    .tm-masonry-link { border-radius:14px; }
    .tm-archive-shell, .tm-singular-shell { width:min(100% - 20px,1180px); padding:24px 0 46px; }
    .tm-archive-hero, .tm-entry-header { border-radius:22px; padding:24px 20px; margin-bottom:18px; }
    .tm-post-grid { grid-template-columns:1fr; gap:16px; }
    .tm-entry-content { border-radius:22px; padding:22px 16px; }
    .tm-footer-inner { padding:32px 18px; flex-direction:column; align-items:flex-start; }
}
@media (max-width: 430px) {
    .tm-masonry-grid { gap:7px; }
    .tm-masonry-link { border-radius:11px; }
    .tm-brand-wordmark { font-size:1.55rem; }
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior:auto!important; animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; }
}
