/* icon URLs in --ic resolve relative to this stylesheet: icons/NAME.svg */
*{box-sizing:border-box}html,body{margin:0;height:100%;background:#000}
body{font:var(--tm-size-sm)/1.55 var(--tm-font-mono);color:var(--tm-phosphor)}
.screen{min-height:100vh;display:flow-root;border-radius:0;padding:18px}.inner{position:relative;z-index:1}
a{color:var(--tm-accent);text-decoration:none}a:hover{text-shadow:var(--tm-glow)}
.ic{display:inline-block;width:1.2em;height:1.2em;vertical-align:-.25em;margin-right:.4em;background:currentColor;-webkit-mask:var(--ic) center/contain no-repeat;mask:var(--ic) center/contain no-repeat}
.bar{display:flex;gap:18px;align-items:center;border:var(--tm-border) solid var(--tm-phosphor-dim);padding:8px 14px;margin-bottom:14px;flex-wrap:wrap}
.bar nav{display:flex;gap:14px;flex-wrap:wrap}.bar .right{margin-left:auto}
.logo{font:var(--tm-display-sm) var(--tm-font-display);color:var(--tm-phosphor)}
.cols{display:grid;grid-template-columns:260px 1fr;gap:14px}@media(max-width:760px){.cols{grid-template-columns:1fr}}
.pane{border:var(--tm-border) solid var(--tm-phosphor-dim);padding:12px 16px;min-height:60vh}
.ptitle{font:var(--tm-display-sm) var(--tm-font-display);border-bottom:1px solid var(--tm-phosphor-faint);margin:0 0 12px;padding-bottom:4px;text-shadow:var(--tm-glow)}
.tree,.tree ul{list-style:none;margin:0;padding-left:14px}.tree{padding:0}.tree a{display:block;padding:2px 4px;color:var(--tm-phosphor)}
.tree a.on{background:var(--tm-phosphor);color:var(--tm-ink-inverse)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:16px;margin-bottom:20px}
.file{display:flex;flex-direction:column;align-items:center;text-align:center;padding:10px;border:1px solid transparent;color:var(--tm-phosphor)}
.file:hover{border-color:var(--tm-phosphor-dim)}.file .ic{width:48px;height:48px;margin:0 0 6px}
.file img{width:100%;height:90px;object-fit:cover;filter:grayscale(1) sepia(1) contrast(1.1);opacity:.85;margin-bottom:6px}
.hero{max-width:100%;max-height:60vh;display:block;margin:0 auto 14px;filter:sepia(.4)}
audio{width:100%;margin:10px 0}.body{white-space:normal;max-width:72ch}.dim{color:var(--tm-phosphor-dim)}
input,textarea,select,button,.btn{font:inherit;background:transparent;color:var(--tm-phosphor);border:1px solid var(--tm-phosphor-dim);padding:6px 10px}
input:focus,textarea:focus{outline:1px solid var(--tm-phosphor);box-shadow:0 0 8px var(--tm-phosphor-dim)}
button,.btn,.tbtn{cursor:pointer;display:inline-block}button:hover,.btn:hover{background:var(--tm-phosphor);color:var(--tm-ink-inverse)}
label{display:block;margin:8px 0}label input,label textarea,label select{display:block;width:100%;margin-top:3px}
.box{max-width:520px}.narrow{margin:20px auto}.center{display:grid;place-items:center;min-height:80vh}.err{color:#ff6b6b}
.flash{border:1px dashed var(--tm-phosphor);padding:6px 10px}.msg{border-left:2px solid var(--tm-phosphor-dim);padding:4px 10px;margin:10px 0}
.post textarea{width:100%}table{border-collapse:collapse;width:100%}td,th{border-bottom:1px solid var(--tm-phosphor-faint);padding:5px 8px;text-align:left;vertical-align:top}
th{color:var(--tm-accent)}.tag{padding:0 6px;border:1px solid}.tag.published{background:var(--tm-phosphor);color:#000}.tag.hidden{opacity:.5}
.inline{display:inline}.inline button{padding:2px 8px}

/* ---- header (v2): slim bar, wordmark left, lowercase links, tools right ---- */
.hdr{display:flex;align-items:center;gap:28px;padding:6px 2px 12px;margin-bottom:22px;border-bottom:1px solid var(--tm-phosphor-faint);position:relative}
.brand{font:var(--tm-display-sm) var(--tm-font-display);color:var(--tm-phosphor);white-space:nowrap;letter-spacing:.02em}
.brand .prompt{color:var(--tm-phosphor-dim)}.brand:hover{text-shadow:var(--tm-glow)}
.links{display:flex;gap:26px;flex:1}
.links a{color:var(--tm-phosphor-dim);text-transform:lowercase;letter-spacing:.06em;padding:4px 0;position:relative;transition:color .15s}
.links a::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;background:var(--tm-phosphor);box-shadow:0 0 6px var(--tm-phosphor);transform:scaleX(0);transform-origin:left;transition:transform .2s}
.links a:hover,.links a.on{color:var(--tm-phosphor);text-shadow:var(--tm-glow)}.links a:hover::after,.links a.on::after{transform:scaleX(1)}
.tools{display:flex;align-items:center;gap:14px;white-space:nowrap}.tools a{color:var(--tm-phosphor-dim)}.tools a:hover{color:var(--tm-phosphor)}
.tools .join{border:1px solid var(--tm-phosphor-dim);padding:3px 10px;color:var(--tm-phosphor)}.tools .join:hover{background:var(--tm-phosphor);color:var(--tm-ink-inverse);text-shadow:none}
.tools .who{color:var(--tm-phosphor)}
.hsearch input{width:150px;padding:3px 8px;border-color:var(--tm-phosphor-faint)}.hsearch input:focus{width:200px}
.tbtn{background:none;border:0;color:var(--tm-phosphor-dim);font-size:1.1em;padding:2px 4px}.tbtn:hover{color:var(--tm-phosphor);background:none;text-shadow:var(--tm-glow)}
.navt,.burger{display:none}
@media(max-width:860px){
  .hdr{flex-wrap:wrap;gap:10px}.burger{display:flex;flex-direction:column;gap:4px;margin-left:auto;cursor:pointer;padding:6px}
  .burger span{width:22px;height:2px;background:var(--tm-phosphor);box-shadow:0 0 4px var(--tm-phosphor)}
  .links,.tools{display:none;flex-basis:100%;flex-direction:column;gap:2px}
  .links a{padding:9px 0;border-bottom:1px solid var(--tm-phosphor-faint)}.links a::after{display:none}.links a.on{padding-left:8px;border-left:2px solid var(--tm-phosphor)}
  .tools{flex-direction:row;flex-wrap:wrap;gap:14px;padding-top:8px}.hsearch,.hsearch input,.hsearch input:focus{width:100%}
  .navt:checked~.links,.navt:checked~.tools{display:flex}
}
/* ---- gateway home, sections, items, search ---- */
.wide{max-width:1180px;margin:0 auto}.small{font-size:.8em}
.gate{padding:6px 0 18px}.bigsearch{display:flex;gap:8px;margin:16px 0 24px;max-width:760px}
.bigsearch input{flex:1;font-size:1.15em;padding:10px 14px;border-color:var(--tm-phosphor)}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;margin-top:10px}
.card{border:1px solid var(--tm-phosphor-dim);padding:14px 16px;display:flex;flex-direction:column}
.card:hover{border-color:var(--tm-phosphor);box-shadow:0 0 10px var(--tm-phosphor-faint)}
.chead{display:flex;align-items:center;gap:4px;font:var(--tm-display-sm) var(--tm-font-display);color:var(--tm-phosphor)}
.count{margin-left:auto;font:var(--tm-size-sm) var(--tm-font-mono);color:var(--tm-phosphor-dim)}
.card .more{margin-top:auto;padding-top:8px;font-size:.92em}
.rlist{list-style:none;margin:0 0 10px;padding:0}.rlist li{display:flex;gap:10px;justify-content:space-between;padding:5px 0;border-bottom:1px dotted var(--tm-phosphor-faint)}
.rlist .meta{color:var(--tm-phosphor-dim);font-size:.85em;white-space:nowrap}
.filters{display:flex;gap:16px;flex-wrap:wrap;margin:0 0 14px}.filters label{display:flex;gap:8px;align-items:center;margin:0}.filters select{width:auto;margin:0}
.pager{display:flex;gap:12px;align-items:center;margin:16px 0}.pager b{color:var(--tm-ink-inverse);background:var(--tm-phosphor);padding:0 6px}
video{width:100%;max-height:70vh;background:#000;border:1px solid var(--tm-phosphor-dim);margin:10px 0}
.crumbs{margin:0 0 6px}.prevnext{display:flex;justify-content:space-between;gap:16px;margin:22px 0 10px;padding-top:10px;border-top:1px solid var(--tm-phosphor-faint)}
.related{margin-top:18px}mark{background:var(--tm-phosphor);color:var(--tm-ink-inverse);padding:0 2px}
.sgroup{margin-bottom:18px}.hit{padding:6px 0;border-bottom:1px dotted var(--tm-phosphor-faint)}
.authcard{max-width:420px;margin:40px auto;border:1px solid var(--tm-phosphor-dim);padding:22px 26px;box-shadow:0 0 18px var(--tm-phosphor-faint)}
.authcard button.primary{width:100%;margin-top:10px;border-color:var(--tm-phosphor)}.authcard .switch{text-align:center;margin-top:14px}
.foot{max-width:1180px;margin:30px auto 0;padding-top:10px;border-top:1px solid var(--tm-phosphor-faint);font-size:.85em}
.ptitle.small{font-size:1.25rem}
/* ---- centred home (v3) ---- */
.hero-home{min-height:calc(100vh - 120px);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:14px;padding:10px 0 30px}
.mlogo{width:min(190px,42vw);aspect-ratio:470/640;background:var(--tm-phosphor);-webkit-mask:url(karm-meditate.png) center/contain no-repeat;mask:url(karm-meditate.png) center/contain no-repeat;filter:drop-shadow(0 0 6px var(--tm-phosphor)) drop-shadow(0 0 18px var(--tm-phosphor-dim))}
.hname{font:var(--tm-display-md) var(--tm-font-display);margin:0;letter-spacing:.08em}
.hsearch-big{width:min(600px,92%)}
.hsearch-big input{width:100%;font-size:1.1em;padding:11px 20px;border-radius:24px;border-color:var(--tm-phosphor-dim);text-align:left}
.hsearch-big input:focus{border-color:var(--tm-phosphor);box-shadow:0 0 12px var(--tm-phosphor-dim);outline:0}
.hero-home .intro{max-width:56ch;font-size:.92em;margin-top:6px}.scrollcue{margin-top:10px;font-size:.85em}
/* ---- clickable words + definition card ---- */
.def{cursor:text}.def:hover{cursor:help}
.lx{color:var(--tm-phosphor);text-shadow:var(--tm-glow);border-bottom:1px dotted var(--tm-phosphor-dim);cursor:pointer}
.defcard{position:absolute;z-index:100;width:min(380px,calc(100vw - 16px));background:var(--tm-bg-deep,#000);color:var(--tm-phosphor);border:1px solid var(--tm-phosphor);box-shadow:0 0 16px var(--tm-phosphor-dim);padding:10px 14px;font:var(--tm-size-sm)/1.5 var(--tm-font-mono)}
.defcard .dh{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--tm-phosphor-faint);padding-bottom:4px;margin-bottom:6px}
.defcard .dh b{font:var(--tm-display-sm) var(--tm-font-display);text-shadow:var(--tm-glow)}
.defcard .x{border:0;padding:0 4px;font-size:1.2em;color:var(--tm-phosphor-dim)}.defcard .x:hover{background:none;color:var(--tm-phosphor)}
.defcard .dt{color:var(--tm-accent);font-style:italic}.defcard .dp{color:var(--tm-phosphor-dim)}.defcard p{margin:6px 0}.defcard .de{font-size:.92em}.defcard .ds{font-size:.82em;margin-top:6px}
/* ---- Safari/WebKit hardening for the centred home ---- */
html{scrollbar-gutter:stable}
.wide{width:100%;margin-left:auto;margin-right:auto}
.hero-home{width:100%;min-height:calc(100vh - 120px);min-height:calc(100svh - 120px);-webkit-box-align:center}
.hero-home>*{margin-left:auto;margin-right:auto}
.mlogo{height:calc(min(190px,42vw) * 640 / 470);flex:0 0 auto;-webkit-mask-image:url(karm-meditate.png);-webkit-mask-size:contain;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(karm-meditate.png);mask-size:contain;mask-repeat:no-repeat;mask-position:center}
.hsearch-big{flex:0 0 auto}
.tm-crt::before,.tm-scanlines::after{left:0;top:0;right:0;bottom:0}

/* homepage grid + credit line (Oct 11) */
.credit{text-align:center;font-size:.85em;padding:6px 8px;margin:-12px 0 18px;border-bottom:1px dashed var(--tm-phosphor-faint);opacity:.9}
.credit .tagline{display:block;font-weight:bold;margin-top:2px}
.homeworks .grid,.homecards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.homecards .card{padding:10px 12px;font-size:.92em;min-width:0}
.homeworks .grid>*{min-width:0}
@media(max-width:1200px){.homeworks .grid,.homecards{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.homeworks .grid,.homecards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.homeworks .grid,.homecards{grid-template-columns:1fr}}

/* site links sit under the logo and search (no tabs in the top header) */
.sitelinks{display:flex!important;flex-wrap:wrap;justify-content:center;gap:10px 22px;flex:none;margin:6px auto 18px;flex-direction:row!important;flex-basis:auto!important}
.hero-home .sitelinks{margin:14px auto 6px}
@media(max-width:700px){.sitelinks{gap:6px 16px}.sitelinks a{padding:4px 0!important;border:0!important}}

/* ---- services banner: reggae + dharma (Oct 11) ---- */
.mlogo{transition:filter .3s}.mlogo:hover{filter:drop-shadow(0 0 10px var(--tm-phosphor)) drop-shadow(0 0 28px var(--tm-phosphor))}
.services{position:relative;overflow:hidden;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:18px 28px;margin:6px 0 28px;padding:26px 28px;
  border:1px solid var(--tm-phosphor-dim);isolation:isolate;
  background:linear-gradient(90deg,rgba(200,30,30,.22),rgba(230,180,20,.2) 50%,rgba(20,150,60,.24)),#050505}
.services::before{content:"";position:absolute;inset:-50%;z-index:-1;opacity:.045;pointer-events:none;
  background:repeating-radial-gradient(circle at 50% 50%,transparent 0 14px,var(--tm-phosphor) 14px 15px),repeating-conic-gradient(from 0deg at 50% 50%,transparent 0 11deg,var(--tm-phosphor) 11deg 12deg);
  -webkit-mask-image:radial-gradient(circle at 50% 50%,#000 0 30%,transparent 62%);mask-image:radial-gradient(circle at 50% 50%,#000 0 30%,transparent 62%);animation:svcspin 90s linear infinite}
.services::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;mix-blend-mode:screen;opacity:.35;
  background:linear-gradient(115deg,transparent 30%,rgba(255,60,60,.25) 42%,rgba(255,220,60,.25) 50%,rgba(60,255,120,.25) 58%,transparent 70%);background-size:300% 100%;animation:svcshim 9s ease-in-out infinite}
@keyframes svcspin{to{transform:rotate(360deg)}}@keyframes svcshim{0%,100%{background-position:100% 0}50%{background-position:0 0}}
.svcside{display:grid;gap:14px}.svcside:first-child{justify-items:end;text-align:right}.svcside:last-child{justify-items:start;text-align:left}
.svc{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:12px;align-items:center;max-width:280px;padding:6px 8px;color:var(--tm-phosphor);outline:0}
.svcside:first-child .svc{grid-template-columns:1fr auto}.svcside:first-child .svc svg{grid-column:2;grid-row:1/3}.svcside:first-child .svc b,.svcside:first-child .svc span{grid-column:1}
.svc svg{grid-row:1/3;width:38px;height:38px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;transition:filter .3s,transform .3s;filter:drop-shadow(0 0 2px var(--tm-phosphor-dim))}
.svc b{font:var(--tm-display-sm) var(--tm-font-display);line-height:1.1;text-transform:lowercase}.svc span{color:var(--tm-phosphor);font-size:.85em;text-shadow:0 0 3px #000,0 0 6px #000}
.svc:hover svg,.svc:focus svg{filter:drop-shadow(0 0 6px var(--tm-phosphor)) drop-shadow(0 0 18px var(--tm-phosphor-dim));transform:scale(1.08)}
.svc:hover b,.svc:focus b{text-shadow:var(--tm-glow)}
.svclogo{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:.8em;color:var(--tm-phosphor);letter-spacing:.12em;text-transform:uppercase}
.svclogo .mlogo{width:110px;height:calc(110px * 640 / 470)}
@media(max-width:820px){.services{grid-template-columns:1fr 1fr;padding:20px 16px}.svclogo{grid-column:1/-1;order:-1}
  .svcside{display:contents}.svcside .svc,.svcside:first-child .svc{grid-template-columns:auto 1fr;text-align:left;max-width:none}
  .svcside:first-child .svc svg{grid-column:1}.svcside:first-child .svc b,.svcside:first-child .svc span{grid-column:2}}
@media(max-width:480px){.services{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.services::before,.services::after{animation:none}.svc svg,.mlogo{transition:none}}

/* ---- contact page + service picker (Oct 11) ---- */
a.svc{text-decoration:none}a.svc:hover{text-shadow:none}
.picker .svc.pick{cursor:pointer;border:1px solid transparent;border-radius:4px;position:relative}
.picker .svc.pick input{position:absolute;opacity:0;width:1px;height:1px}
.picker .svc.pick:has(input:checked){border-color:var(--tm-phosphor);background:rgba(0,0,0,.45);box-shadow:0 0 12px var(--tm-phosphor-dim),inset 0 0 10px var(--tm-phosphor-faint)}
.picker .svc.pick:has(input:checked) svg{filter:drop-shadow(0 0 6px var(--tm-phosphor)) drop-shadow(0 0 18px var(--tm-phosphor-dim))}
.picker .svc.pick:has(input:checked) b::before{content:"✓ ";}
.picker .svc.pick:has(input:focus-visible){outline:1px dashed var(--tm-phosphor);outline-offset:2px}
.contact{max-width:900px}.cgrid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}@media(max-width:640px){.cgrid{grid-template-columns:1fr}}
.contact button.primary{margin-top:12px;padding:10px 26px;border-color:var(--tm-phosphor)}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.thanks{text-align:center;padding:40px 0;max-width:560px;margin:0 auto}.thanks .mlogo{margin:0 auto 14px;width:110px;height:calc(110px * 640 / 470)}
.enq{border:1px solid var(--tm-phosphor-dim);padding:10px 14px;margin:0 0 12px}.enq.archived{opacity:.55}.enq .eh{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:4px}.enq .right{margin-left:auto}
/* mobile performance: no whole-page flicker/spin, lighter glow */
@media(max-width:820px),(hover:none){.tm-flicker{animation:none}.services::before,.services::after{animation:none}
.tm-crt{box-shadow:none}.tm-scanlines::after{position:fixed}.tm-crt::before{position:fixed}
.screen{overflow-x:clip}img,video,svg{max-width:100%}input,textarea,select{font-size:16px}}
/* slider captcha */
.cap{margin:14px 0;max-width:300px;border:1px solid var(--tm-phosphor-dim);padding:10px;border-radius:6px}
.cap .capbox{position:relative;width:100%;aspect-ratio:2/1;overflow:hidden;border-radius:4px}
.cap .capimg{display:block;width:100%;height:100%}
.cap .cappiece{position:absolute;left:0;border:2px solid var(--tm-phosphor);border-radius:6px;background:rgba(51,255,102,.35);box-shadow:0 0 10px var(--tm-phosphor);pointer-events:none}
.cap .captrack{position:relative;height:36px;margin-top:8px;border:1px solid var(--tm-phosphor-dim);border-radius:18px}
.cap .capknob{position:absolute;top:0;left:0;height:34px;border-radius:17px;background:var(--tm-phosphor);color:#000;display:flex;align-items:center;justify-content:center;cursor:grab;touch-action:none;user-select:none;font-weight:700}
.cap .capknob:focus-visible{outline:2px solid #ffb000;outline-offset:2px}
.cap .capmsg{font-size:13px;margin:8px 0 0;min-height:1.3em}
.capdone{border-color:var(--tm-phosphor)}.capdone .capknob{cursor:default}
button.primary:disabled{opacity:.4;cursor:not-allowed}
/* section tab icons + active highlight */
.nic{width:15px;height:15px;vertical-align:-2px;margin-right:6px;flex:none;transition:filter .15s,color .15s}
.sectabs{gap:18px}.sectabs a,.sitelinks a{display:inline-flex;align-items:center}
.links a:hover .nic{filter:drop-shadow(0 0 4px currentColor)}
.links a.on,.links a:active,.links a:focus-visible{color:#ffb000;text-shadow:0 0 6px rgba(255,176,0,.6)}
.links a.on::after,.links a:active::after{background:#ffb000;box-shadow:0 0 6px #ffb000;transform:scaleX(1)}
.links a.on .nic,.links a:active .nic{fill:rgba(255,176,0,.18);filter:drop-shadow(0 0 4px #ffb000)}
[data-theme=amber] .links a.on,[data-theme=amber] .links a:active{color:#fff1c2;text-shadow:0 0 8px #ffb000}
@media(max-width:1100px) and (min-width:861px){.sectabs{gap:12px}.hsearch input{width:110px}}
@media(max-width:860px){.links a.on{border-left-color:#ffb000}}
