:root{
  --ink:#0b0b12;
  --surface:#11131c;
  --surface-glass:rgba(14,16,26,.75);
  --line:rgba(255,255,255,.08);
  --accent:#2faff9;
  --accent-2:#b6ef09;
  --accent-3:#ff9d3d;
}

body{background:#0b0b12}
main{padding-top:80px}

.guidelines-hero{position:relative;overflow:hidden;padding:100px 52px 90px;background:radial-gradient(circle at 10% 20%,rgba(47,175,249,.2),transparent 55%),radial-gradient(circle at 85% 10%,rgba(182,239,9,.18),transparent 60%),linear-gradient(180deg,#0b0b12 0%,#0e111a 100%)}
.hero-glow{position:absolute;inset:-20% 0 auto 0;height:340px;background:linear-gradient(120deg,rgba(47,175,249,.4),rgba(182,239,9,.2),rgba(255,157,61,.15));opacity:.45;filter:blur(60px);pointer-events:none}
.guidelines-shell{max-width:1180px;margin:0 auto;position:relative;z-index:2}
.hero-shell{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center}

.hero-kicker{margin-bottom:10px}
.guidelines-deco{position:fixed;pointer-events:none;z-index:1;opacity:.7}
.guidelines-string{top:40px;left:6%;width:140px;opacity:.75;filter:drop-shadow(0 0 22px rgba(47,175,249,.45));animation:guidelinesFloat 9s ease-in-out infinite}
.guidelines-star{width:12px;opacity:.7;animation:guidelinesTwinkle 3.5s ease-in-out infinite}
.guidelines-star-1{top:120px;right:18%}
.guidelines-star-2{bottom:160px;left:18%;animation-delay:1.2s}
.guidelines-mesh{right:-10%;top:40%;width:45%;opacity:.35;filter:blur(.5px);animation:guidelinesDrift 12s ease-in-out infinite}
.guidelines-orb{left:-6%;bottom:80px;width:140px;opacity:.6;filter:drop-shadow(0 0 25px rgba(100,220,255,.25));animation:guidelinesFloat 7s ease-in-out infinite reverse}

@keyframes guidelinesFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
@keyframes guidelinesTwinkle{0%,100%{opacity:.3;transform:scale(.85)}50%{opacity:1;transform:scale(1.15)}}
@keyframes guidelinesDrift{0%,100%{transform:translateX(0) rotate(0deg)}50%{transform:translateX(-18px) rotate(3deg)}}
@keyframes heroPulse{0%,100%{transform:scale(1);opacity:.6}50%{transform:scale(1.08);opacity:1}}
.hero-title{font-family:'Outfit',sans-serif;font-size:clamp(2.6rem,4.7vw,4.2rem);line-height:1.05;margin:16px 0 18px;color:#fff}
.hero-title span{display:block;background:linear-gradient(90deg,var(--accent),var(--accent-2));-webkit-background-clip:text;background-clip:text;color:transparent}
.hero-lede{color:rgba(255,255,255,.68);line-height:1.75;max-width:560px}

.hero-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:26px 0 28px}
.meta-card{background:var(--surface-glass);border:1px solid rgba(255,255,255,.12);border-radius:18px;padding:14px 16px;display:grid;gap:6px;box-shadow:0 16px 40px rgba(0,0,0,.35)}
.meta-card span{font-size:.7rem;text-transform:uppercase;letter-spacing:.2em;color:rgba(255,255,255,.55)}
.meta-card strong{font-size:.95rem;color:#fff}

.hero-actions{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:20px}
.btn-hero,.btn-ghost{font-family:'Outfit',sans-serif;font-size:1rem;padding:14px 26px;border-radius:14px;border:1px solid transparent;transition:all .3s ease}
.btn-hero{background:linear-gradient(120deg,var(--accent),var(--accent-2));color:#071018;box-shadow:0 18px 35px rgba(47,175,249,.25)}
.btn-hero:hover{transform:translateY(-2px);box-shadow:0 22px 40px rgba(47,175,249,.35)}
.btn-hero--register{background:linear-gradient(135deg,#ff4d4d,#ff1f1f);border:none;box-shadow:0 18px 45px rgba(255,60,60,.35);color:#fff;position:relative}
.btn-hero--register::after{content:'';position:absolute;inset:-8px;border-radius:18px;background:radial-gradient(circle,rgba(255,60,60,.45) 0%,transparent 60%);opacity:0;z-index:-1;animation:none}
.btn-hero--register:hover{transform:translateY(-3px) scale(1.02);box-shadow:0 22px 55px rgba(255,60,60,.5)}
.btn-ghost{background:transparent;border-color:rgba(255,255,255,.25);color:#fff}
.btn-ghost:hover{border-color:rgba(255,255,255,.5);background:rgba(255,255,255,.08)}

.hero-tags{display:flex;gap:12px;flex-wrap:wrap}
.hero-tags span{border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:8px 16px;font-size:.85rem;color:rgba(255,255,255,.78);background:rgba(255,255,255,.04);box-shadow:none;font-weight:500;letter-spacing:.02em}

.hero-panel{display:grid;gap:18px}
.panel-card{background:rgba(9,11,18,.85);border:1px solid rgba(255,255,255,.12);border-radius:22px;padding:22px 24px;box-shadow:0 20px 50px rgba(0,0,0,.4)}
.panel-card h3{font-family:'Outfit',sans-serif;font-size:1.1rem;margin-bottom:12px;color:#fff}
.panel-card ul{display:grid;gap:10px;color:rgba(255,255,255,.7);list-style:disc;padding-left:20px}
.panel-card.highlight{border-color:rgba(182,239,9,.35);background:linear-gradient(160deg,rgba(18,20,32,.95),rgba(12,24,20,.85))}
.panel-card.highlight p{color:rgba(255,255,255,.78);line-height:1.7}
.inline-link{display:inline-flex;margin-top:12px;color:var(--accent-2)}

.reveal-on-load.reveal-left,
.scroll-reveal.reveal-left{transform:translateX(-50px)}
.reveal-on-load.reveal-right,
.scroll-reveal.reveal-right{transform:translateX(50px)}
.reveal-on-load.is-visible.reveal-left,
.reveal-on-load.is-visible.reveal-right,
.scroll-reveal.is-visible.reveal-left,
.scroll-reveal.is-visible.reveal-right{transform:translateX(0)}

.guidelines{padding:90px 52px 80px;background:linear-gradient(180deg,#0e111a 0%,#0b0b12 100%)}
.section-head{max-width:700px;margin-bottom:40px}
.section-kicker{font-family:'Outfit',sans-serif;text-transform:uppercase;letter-spacing:.28em;font-size:.72rem;color:rgba(182,239,9,.7)}
.section-title{font-family:'Outfit',sans-serif;font-size:clamp(2rem,3.6vw,3rem);margin:14px 0;color:#fff}
.section-subtitle{color:rgba(255,255,255,.6);line-height:1.7}

.accordion{display:grid;gap:18px}
.accordion-item{border:1px solid var(--line);border-radius:18px;overflow:hidden;background:rgba(11,13,20,.8);box-shadow:0 18px 40px rgba(0,0,0,.35)}
.accordion-trigger{width:100%;text-align:left;padding:18px 22px;font-family:'Outfit',sans-serif;font-size:1.05rem;background:transparent;border:none;color:#fff;display:flex;align-items:center;justify-content:space-between;gap:14px}
.accordion-trigger .indicator{width:16px;height:16px;border:none;position:relative;flex:0 0 16px}
.accordion-trigger .indicator::after{content:'';position:absolute;top:2px;left:2px;width:10px;height:10px;border-right:2px solid rgba(255,255,255,.7);border-bottom:2px solid rgba(255,255,255,.7);transform:rotate(45deg);transition:transform .25s ease,border-color .25s ease}
.accordion-panel{display:grid;grid-template-rows:0fr;overflow:hidden;transition:grid-template-rows .45s ease,padding .45s ease;padding:0 22px}
.accordion-panel-inner{min-height:0}
.accordion-panel p{color:rgba(255,255,255,.68);line-height:1.7;margin-bottom:12px}
.accordion-panel ul{display:grid;gap:10px;color:rgba(255,255,255,.7);margin:0 0 16px;padding-left:20px;list-style:disc}
.accordion-panel ul li{line-height:1.7}
.accordion-item.open .accordion-panel{grid-template-rows:1fr;padding:0 22px 18px}
.accordion-item.open .indicator::after{transform:rotate(-135deg);border-color:rgba(182,239,9,.9)}

.syllabus-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:8px 0 16px;padding-left:18px;color:#dff5ff;list-style:disc}
.syllabus-list li{line-height:1.6}

.format{padding:90px 52px 120px;background:radial-gradient(circle at 75% 40%,rgba(47,175,249,.12),transparent 60%),linear-gradient(180deg,#0b0b12 0%,#0b0b12 100%)}
.format-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px}
.format-card{background:rgba(14,16,26,.85);border:1px solid rgba(255,255,255,.08);border-radius:22px;padding:26px;box-shadow:0 20px 50px rgba(0,0,0,.4)}
.format-card h3{font-family:'Outfit',sans-serif;margin-bottom:12px}
.score-rows{display:grid;gap:14px;margin-top:18px}
.score-rows div{display:grid;gap:6px;padding:14px;border-radius:14px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08)}
.score-rows strong{color:#fff;font-size:.95rem}
.score-rows span{color:rgba(255,255,255,.6);font-size:.85rem}

.table-card{padding:26px 28px}
.section-table{display:grid;gap:0;width:100%}
.section-table__row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border-bottom:1px solid rgba(255,255,255,.08)}
.section-table__row:last-child{border-bottom:none}
.section-table__row > div{padding:12px 10px;text-align:left;color:rgba(255,255,255,.7);font-size:.95rem}
.section-table__header > div{font-family:'Outfit',sans-serif;color:#fff;text-transform:uppercase;letter-spacing:.08em;font-size:.72rem}

.modal{position:fixed;inset:0;display:none;align-items:center;justify-content:center;padding:24px;z-index:1200;overflow:hidden}
.modal.open{display:flex}
.modal-overlay{position:absolute;inset:0;background:rgba(5,7,12,.85);backdrop-filter:blur(8px)}
.modal-card{position:relative;max-width:840px;width:100%;height:auto;max-height:calc(100dvh - 48px);overflow:auto;-webkit-overflow-scrolling:touch;background:#0f121b;border:1px solid rgba(255,255,255,.1);border-radius:22px;padding:30px;z-index:2;box-shadow:0 30px 80px rgba(0,0,0,.6)}
.modal-card h3{font-family:'Outfit',sans-serif;margin-bottom:14px}
.modal-close{position:absolute;top:18px;right:18px;background:rgba(255,255,255,.1);border:none;border-radius:50%;width:36px;height:36px;color:#fff}
.modal-content{display:grid;gap:14px;color:rgba(255,255,255,.7);line-height:1.7}
.modal-lead{font-family:'Outfit',sans-serif;color:#fff;font-size:.95rem}
.modal-samples{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.modal pre{background:#0a0c12;color:#b6ef09;padding:12px;border-radius:12px;overflow:auto;border:1px solid rgba(182,239,9,.15)}
.modal pre code{color:inherit}
.modal-footnote{color:#e8faff;font-size:.9rem;padding:10px 12px;border-radius:12px;background:rgba(47,175,249,.12);border:1px solid rgba(47,175,249,.35);box-shadow:0 12px 26px rgba(47,175,249,.12)}

body.modal-open{overflow:hidden}

@media(max-width:1024px){
  .guidelines-hero{padding:110px 28px 80px}
  .hero-shell{grid-template-columns:1fr}
  .guidelines{padding:80px 28px}
  .format{padding:80px 28px 110px}
}

@media(max-width:768px){
  main{padding-top:110px}
  .guidelines-hero{padding:120px 20px 70px}
  .hero-meta{grid-template-columns:1fr}
  .format-grid{grid-template-columns:1fr}
  .guidelines{padding:70px 20px}
  .format{padding:70px 20px 90px}
  .modal-samples{grid-template-columns:1fr}
  .syllabus-list{grid-template-columns:1fr}
  .modal{padding:calc(12px + env(safe-area-inset-top)) 12px calc(12px + env(safe-area-inset-bottom))}
  .modal-card{max-height:calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));padding:24px 18px 18px}
}

@media(max-width:480px){
  .hero-actions{flex-direction:column;align-items:stretch}
  .btn-hero,.btn-ghost{width:100%;text-align:center}
  .accordion-trigger{font-size:.98rem}
  .modal-close{top:12px;right:12px}
  .modal-card{border-radius:16px;padding:20px 14px 14px}
}

html,
body,
body *,
a,
button,
input,
select,
textarea,
[role="button"] {
  cursor: url("../src/sword.png") 18 22, none !important;
}

body.using-sword-cursor,
body.using-sword-cursor *,
.using-sword-cursor,
.using-sword-cursor * {
  cursor: none !important;
}
