/* =====================================================================
   PhD Research Mentor — prm-ui kit (landing + /mentor portal)
   Editorial yellow & ink. Tokens · base · chrome (marquee, netbar,
   translate, visitor counter, motion toggle, scroll rail) · motion.
   ===================================================================== */
:root{
  --paper:#FAF8F2; --paper-2:#F1EDE2; --white:#fff;
  --ink:#0B0B0C; --ink-2:#2A2A2E; --ink-3:#5B5B63; --ink-4:#8B8B93;
  --sun:#FFD23F; --sun-2:#F2BF16; --sun-soft:#FFF4C7;
  --navy:#13254D; --navy-2:#1E3A78;
  --rule:#E3DECF; --rule-2:#CFC8B4;
  --ok:#1F7A4D; --warn:#A45A00; --bad:#B3261E;
  --display:"Bricolage Grotesque",ui-sans-serif,system-ui,sans-serif;
  --serif:"Instrument Serif",Georgia,"Times New Roman",serif;
  --body:"Atkinson Hyperlegible",ui-sans-serif,system-ui,sans-serif;
  --mono:"JetBrains Mono",ui-monospace,Menlo,Consolas,monospace;
  --ease-out:cubic-bezier(.16,1,.3,1); --ease-std:cubic-bezier(.2,.7,.2,1);
  --dur-reveal:.8s; --dur-micro:.18s;
  --shadow-stamp:3px 3px 0 var(--ink); --shadow-stamp-lg:6px 6px 0 var(--ink);
  --mq-h:38px; --net-h:34px;
}

/* ---------- base (landing only; portal keeps OJS base) ---------- */
.prm-site{margin:0;background:var(--paper);color:var(--ink);font:400 17px/1.6 var(--body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
.prm-site *,.prm-site *:before,.prm-site *:after{box-sizing:border-box}
.prm-site img,.prm-site svg{max-width:100%;display:block}
.prm-site a{color:inherit}
.prm-site h1,.prm-site h2,.prm-site h3,.prm-site h4{font-family:var(--display);font-weight:800;letter-spacing:-.03em;line-height:1.02;margin:0;color:var(--ink)}
.prm-site em.acc,.acc-it{font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:-.01em;color:var(--navy-2)}
.prm-site ::selection{background:var(--sun);color:var(--ink)}
.shell{width:min(1240px,100% - 40px);margin-inline:auto}
.eyebrow{font:600 11.5px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);display:inline-flex;align-items:center;gap:10px}
.eyebrow:before{content:"";width:22px;height:2px;background:var(--ink)}
.rule{border:0;border-top:1px solid var(--rule);margin:0}
.rule-ink{border-top:2px solid var(--ink)}
.skip{position:absolute;left:-999px;top:0;background:var(--sun);color:var(--ink);padding:10px 14px;z-index:999;font-weight:700}
.skip:focus{left:12px}
.prm-site :focus-visible{outline:3px solid var(--navy-2);outline-offset:3px}

/* stamp buttons (aiage-style press) */
.btn-stamp,.btn-line{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:12px 22px;font:700 15px/1 var(--display);letter-spacing:.01em;text-decoration:none;cursor:pointer;border:2px solid var(--ink);border-radius:2px;position:relative;transition:transform var(--dur-micro) var(--ease-std),box-shadow var(--dur-micro) var(--ease-std),background .2s}
.btn-stamp{background:var(--sun);color:var(--ink);box-shadow:var(--shadow-stamp)}
.btn-stamp:hover{transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--ink)}
.btn-stamp:active{transform:translate(3px,3px);box-shadow:0 0 0 var(--ink)}
.btn-stamp.ink{background:var(--ink);color:var(--sun)}
.btn-line{background:transparent;color:var(--ink)}
.btn-line:hover{background:var(--ink);color:var(--paper)}
.btn-stamp .arr,.btn-line .arr{transition:transform .25s var(--ease-out)}
.btn-stamp:hover .arr,.btn-line:hover .arr{transform:translateX(4px)}

/* grain */
.grain{position:fixed;inset:0;pointer-events:none;z-index:1;opacity:.05;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

/* ---------- shared chrome ---------- */
#prm-chrome{position:relative;z-index:60;font-family:var(--body)}
.prm-mq{position:relative;display:flex;align-items:stretch;height:var(--mq-h);background:var(--sun);color:var(--ink);border-bottom:2px solid var(--ink);overflow:hidden}
.prm-mq .chip{flex:none;display:flex;align-items:center;gap:8px;padding:0 14px;background:var(--ink);color:var(--sun);font:700 11.5px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;z-index:2}
.prm-mq .chip i{width:7px;height:7px;border-radius:50%;background:var(--sun);animation:prmBlink 1.6s steps(2) infinite}
.prm-mq .vp{flex:1;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent);mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent)}
.prm-mq .track{display:flex;width:max-content;height:100%;animation:prmMarquee var(--mq-dur,60s) linear infinite}
.prm-mq:hover .track,.prm-mq:focus-within .track{animation-play-state:paused}
.prm-mq ul{display:flex;align-items:center;margin:0;padding:0;list-style:none}
.prm-mq li{display:flex;align-items:center;white-space:nowrap;font:700 12.5px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;padding-right:28px}
.prm-mq li:before{content:"✦";margin-right:28px;font-size:11px}
.prm-mq a{text-decoration:none;border-bottom:1.5px solid transparent}.prm-mq a:hover{border-bottom-color:var(--ink)}
@keyframes prmMarquee{to{transform:translateX(-50%)}}
@keyframes prmBlink{50%{opacity:.25}}

.prm-net{display:flex;align-items:center;gap:18px;height:var(--net-h);padding:0 max(20px,calc((100% - 1240px)/2));background:var(--ink);color:#d9d6cc;font:500 11.5px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase}
.prm-net a{color:#d9d6cc;text-decoration:none}.prm-net a:hover{color:var(--sun)}
.prm-net .links{display:flex;gap:16px;align-items:center;overflow:hidden;white-space:nowrap}
.prm-net .links a.home{color:var(--sun);font-weight:700}
.prm-net .sp{flex:1}
.prm-net .live{display:flex;align-items:center;gap:8px;white-space:nowrap}
.prm-net .live .dot{width:8px;height:8px;border-radius:50%;background:#33d17a;box-shadow:0 0 0 0 rgba(51,209,122,.6);animation:prmPing 2s infinite}
.prm-net .live b{color:#fff;font-weight:700}
@keyframes prmPing{70%{box-shadow:0 0 0 7px rgba(51,209,122,0)}100%{box-shadow:0 0 0 0 rgba(51,209,122,0)}}
.prm-net .tr{display:flex;align-items:center;gap:8px}
.prm-net .tr-btn{display:inline-flex;align-items:center;gap:6px;background:transparent;color:var(--sun);border:1px solid rgba(255,210,63,.55);font:700 11px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;padding:5px 9px;cursor:pointer}
.prm-net .tr-btn:hover{background:var(--sun);color:var(--ink)}
#google_translate_element{display:inline-flex;align-items:center;line-height:1}
#google_translate_element .goog-te-gadget{font-size:0!important;color:transparent!important;line-height:1!important;margin:0!important}
#google_translate_element .goog-te-gadget>span,#google_translate_element .goog-logo-link,#google_translate_element img{display:none!important}
#google_translate_element select.goog-te-combo{margin:0!important;background:var(--ink);color:var(--sun);border:1px solid rgba(255,210,63,.55);font:700 11px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;padding:4px 6px;border-radius:0;max-width:42vw;cursor:pointer}
.goog-te-banner-frame,.goog-te-balloon-frame,#goog-gt-tt,.goog-tooltip,.VIpgJd-ZVi9od-ORHb-OEVmcd,.VIpgJd-ZVi9od-aZ2wEe-wOHMyf{display:none!important}
body{top:0!important}
.goog-text-highlight{background:none!important;box-shadow:none!important}
font font{background:none!important;box-shadow:none!important}

.prm-rail{position:fixed;left:0;top:0;height:3px;width:100%;background:var(--sun);transform-origin:0 50%;transform:scaleX(0);z-index:1000;pointer-events:none;box-shadow:0 0 0 1px rgba(11,11,12,.08)}
.prm-motion-btn{position:fixed;right:16px;bottom:16px;z-index:900;display:inline-flex;align-items:center;gap:8px;background:var(--ink);color:var(--sun);border:2px solid var(--ink);box-shadow:3px 3px 0 var(--sun);font:700 11px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;padding:9px 12px;cursor:pointer}
.prm-motion-btn i{width:8px;height:8px;border-radius:50%;background:var(--sun)}
.prm-motion-btn[aria-pressed=false] i{background:#555}
@media (max-width:760px){
  .prm-net .links a:not(.home){display:none}
  .prm-net .live .lbl-today{display:none}
  .prm-mq .chip span{display:none}
  .prm-motion-btn{right:10px;bottom:10px;padding:8px 10px}
}

/* ---------- motion primitives ---------- */
html.js-motion [data-reveal]{opacity:0;transform:translateY(26px);transition:opacity var(--dur-reveal) var(--ease-out),transform var(--dur-reveal) var(--ease-out)}
html.js-motion [data-reveal].is-in{opacity:1;transform:none}
html.js-motion [data-reveal="fade"]{transform:none}
[data-curtain]{position:relative}
html.js-motion [data-curtain] .ct-txt{opacity:0}
html.js-motion [data-curtain].is-in .ct-txt{animation:prmCtTxt .01s .45s forwards}
html.js-motion [data-curtain].is-in:after{content:"";position:absolute;left:-4px;right:-4px;top:4%;bottom:4%;background:var(--ink);transform:scaleX(0);animation:prmCurtain .9s var(--ease-out) forwards;pointer-events:none}
@keyframes prmCurtain{0%{transform:scaleX(0);transform-origin:0 50%}45%{transform:scaleX(1);transform-origin:0 50%}46%{transform:scaleX(1);transform-origin:100% 50%}100%{transform:scaleX(0);transform-origin:100% 50%}}
@keyframes prmCtTxt{to{opacity:1}}
@supports (animation-timeline:view()){
  html.js-motion .ink-in{animation:prmInk both linear;animation-timeline:view();animation-range:entry 10% cover 40%}
  @keyframes prmInk{from{font-variation-settings:"wght" 420;letter-spacing:-.02em}to{font-variation-settings:"wght" 800;letter-spacing:-.035em}}
}
.draw-line path{stroke-dasharray:1;stroke-dashoffset:1}
html.js-motion .is-in .draw-line path,html.js-motion .draw-line.is-in path{animation:prmDraw 1.1s .35s var(--ease-out) forwards}
html:not(.js-motion) .draw-line path{stroke-dashoffset:0}
@keyframes prmDraw{to{stroke-dashoffset:0}}
.page-curtain{position:fixed;inset:0;background:var(--ink);z-index:2000;transform:scaleY(0);transform-origin:50% 100%;pointer-events:none}
.page-curtain.go{transition:transform .38s var(--ease-out);transform:scaleY(1)}

/* motion OFF / reduced motion */
html[data-motion=off] *,html[data-motion=off] *:before,html[data-motion=off] *:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
html[data-motion=off] .prm-mq .vp{overflow-x:auto;scrollbar-width:none;-webkit-mask-image:none;mask-image:none}html[data-motion=off] .prm-mq .vp::-webkit-scrollbar{display:none}
html[data-motion=off] .prm-mq .track{animation:none!important;transform:none!important}
html[data-motion=off] .prm-mq ul[aria-hidden]{display:none}
html[data-motion=off] [data-reveal]{opacity:1!important;transform:none!important}
html[data-motion=off] [data-curtain] .ct-txt{opacity:1!important}
html[data-motion=off] .draw-line path{stroke-dashoffset:0!important}
html[data-motion=off] #aurora{display:none}
@media print{#prm-chrome,.prm-rail,.prm-motion-btn,.grain{display:none!important}}
