:root{--paper:#0a0a0a;--paper-2:#161616;--ink:#fff;--ink-soft:#a3a3a3;--blueprint:#40e0d0;--brass:#e63946;--brass-dark:#ff5252;--line:#2a2a2a;--display:"Space Grotesk", sans-serif;--body:"Source Serif 4", serif;--mono:"IBM Plex Mono", monospace}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);font-family:var(--body);-webkit-font-smoothing:antialiased;font-size:17px;line-height:1.6}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.wrap{max-width:1180px;margin:0 auto;padding:0 32px}.eyebrow{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--blueprint);align-items:center;gap:10px;font-size:12px;display:flex}.eyebrow:before{content:"";background:var(--blueprint);width:18px;height:1px;display:inline-block}h1,h2,h3,h4{font-family:var(--display);letter-spacing:-.01em;color:var(--ink);font-weight:600}.hr{background:var(--line);border:none;width:100%;height:1px}header{z-index:40;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-bottom:1px solid var(--line);background:#0a0a0ad9;position:sticky;top:0}nav{justify-content:space-between;align-items:center;max-width:1180px;margin:0 auto;padding:18px 32px;display:flex}.logo{font-family:var(--display);align-items:baseline;gap:8px;display:flex}.logo .mark{letter-spacing:.01em;font-size:22px;font-weight:700}.logo .sub{font-family:var(--mono);letter-spacing:.1em;color:var(--ink-soft);text-transform:uppercase;font-size:11px}.navlinks{align-items:center;gap:28px;display:flex}.navlinks a{font-family:var(--mono);letter-spacing:.03em;color:var(--ink-soft);border-bottom:1px solid #0000;padding-bottom:2px;font-size:13px;transition:border-color .2s,color .2s}.navlinks a:hover{color:var(--ink);border-color:var(--brass)}.navlinks a.active{color:var(--ink);border-color:var(--blueprint)}.cta-btn{font-family:var(--mono);letter-spacing:.03em;background:var(--brass-dark);color:var(--ink);border:1px solid var(--ink);white-space:nowrap;padding:10px 18px;font-size:13px;transition:background .2s,color .2s}.cta-btn:hover{background:var(--brass);border-color:var(--brass);color:#fff}.navtoggle{cursor:pointer;background:0 0;border:none;flex-direction:column;gap:4px;display:none}.navtoggle span{background:var(--ink);width:22px;height:2px;display:block}.rhino-logo{border-radius:4px;width:32px;height:auto;position:absolute;top:50%;right:30px;transform:translateY(-50%)}.page-hero{border-bottom:1px solid var(--line);padding:56px 0 48px}.page-hero h1{max-width:760px;margin:18px 0 16px;font-size:clamp(32px,4.6vw,50px);line-height:1.1}.page-hero p.lede{color:var(--ink-soft);max-width:600px;margin-bottom:24px;font-size:17px}.rating-badge{font-family:var(--mono);color:var(--ink-soft);border:1px solid var(--line);align-items:center;gap:10px;padding:10px 16px;font-size:12px;display:inline-flex}.rating-badge strong{color:var(--ink)}.rating-badge .stars{color:var(--brass)}.insta-section{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:40px;padding:72px 0;display:flex}.insta-left h2{margin-bottom:10px;font-size:clamp(22px,2.8vw,30px)}.insta-left p{color:var(--ink-soft);max-width:420px;font-size:15px}.insta-btn{font-family:var(--mono);letter-spacing:.04em;border:1px solid var(--ink);color:var(--ink);white-space:nowrap;align-items:center;gap:12px;padding:14px 28px;font-size:13px;transition:background .2s,color .2s;display:inline-flex}.insta-btn:hover{background:var(--ink);color:var(--paper)}.insta-btn svg{flex-shrink:0;width:17px;height:17px}@media (max-width:880px){.insta-section{flex-direction:column;align-items:flex-start}}.hero h1{margin-bottom:22px;font-size:clamp(34px,5vw,58px);line-height:1.08}.hero h1 em{color:var(--brass);font-style:normal}.hero p.lede{color:var(--ink-soft);max-width:540px;margin-bottom:30px;font-size:18px}.hero-actions{flex-wrap:wrap;gap:16px;margin-bottom:28px;display:flex}.credline{font-family:var(--mono);color:var(--ink-soft);border-top:1px solid var(--line);padding-top:14px;font-size:12px}.credline strong{color:var(--ink)}.coord-tooltip{background:var(--paper-2);color:var(--ink);font-family:var(--mono);letter-spacing:.05em;border:1px solid var(--line);pointer-events:none;opacity:0;z-index:10;white-space:nowrap;padding:8px 12px;font-size:11px;line-height:1.4;transition:opacity .2s;position:absolute;box-shadow:4px 4px #000c}.coord-tooltip span{color:var(--blueprint);width:14px;margin-right:4px;display:inline-block}section{border-bottom:1px solid var(--line);padding:72px 0}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:40px;display:flex}.section-head h2{font-size:clamp(24px,3vw,34px)}.section-head .note{font-family:var(--mono);color:var(--ink-soft);text-align:right;max-width:300px;font-size:12px}.dark{background:var(--paper-2);color:var(--ink);border-bottom:1px solid var(--line)}.dark .eyebrow{color:var(--blueprint)}.dark .eyebrow:before{background:var(--blueprint)}.dark h2{color:var(--ink)}.dark .hr{background:var(--line)}.btn-primary{font-family:var(--mono);letter-spacing:.03em;background:var(--brass);color:#fff;border:1px solid var(--brass);padding:13px 24px;font-size:13px;transition:background .2s}.btn-primary:hover{background:var(--brass-dark)}.btn-primary:disabled{opacity:.6;cursor:default}.btn-secondary{font-family:var(--mono);letter-spacing:.03em;color:var(--ink);border:1px solid var(--ink);padding:13px 24px;font-size:13px;transition:all .2s}.btn-secondary:hover{background:var(--ink);color:var(--paper)}.btn-ghost{font-family:var(--mono);letter-spacing:.03em;color:var(--ink-soft);border:1px solid var(--line);cursor:pointer;background:0 0;padding:13px 20px;font-size:13px}.btn-ghost:hover{color:var(--ink);border-color:var(--ink)}.enquire{font-family:var(--mono);color:var(--brass);border-bottom:1px solid var(--brass);white-space:nowrap;font-size:13px}.enquire:hover{color:var(--brass-dark)}.syllabus-link{font-family:var(--mono);color:var(--ink-soft);border:none;border-bottom:1px solid var(--line);cursor:pointer;background:0 0;padding:0;font-size:12px}.syllabus-link:hover{color:var(--blueprint);border-color:var(--blueprint)}.syllabus-link .lock{margin-right:5px}.software-note{border:1px dashed var(--line);font-family:var(--mono);color:var(--ink-soft);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:28px;padding:18px 22px;font-size:13px;display:flex}.software-note a{color:var(--blueprint);border-bottom:1px solid var(--blueprint)}.badge-row{flex-wrap:wrap;gap:10px;margin-top:20px;display:flex}.badge{font-family:var(--mono);border:1px solid var(--line);color:var(--ink-soft);padding:6px 10px;font-size:11px}.notes-grid{grid-template-columns:repeat(3,1fr);gap:36px;display:grid}.note-card{padding-top:18px}.note-card .num{font-family:var(--mono);color:var(--brass);margin-bottom:10px;font-size:12px;display:block}.note-card h3{margin-bottom:8px;font-size:19px}.note-card p{color:var(--ink-soft);font-size:15px}.req-grid{grid-template-columns:repeat(3,1fr);gap:36px;display:grid}.req-card{border-top:2px solid var(--line);padding-top:18px}.req-card .num{font-family:var(--mono);color:var(--brass);margin-bottom:10px;font-size:12px;display:block}.req-card h3{margin-bottom:8px;font-size:18px}.req-card p{color:var(--ink-soft);font-size:14.5px}.faq-item{border-bottom:1px solid var(--line);padding:20px 0}.faq-q{cursor:pointer;font-family:var(--display);text-align:left;width:100%;color:var(--ink);background:0 0;border:none;justify-content:space-between;align-items:center;font-size:17px;font-weight:500;display:flex}.faq-q .plus{font-family:var(--mono);color:var(--brass);font-size:18px;transition:transform .25s}.faq-item.open .plus{transform:rotate(45deg)}.faq-a{max-height:0;transition:max-height .3s;overflow:hidden}.faq-item.open .faq-a{max-height:240px}.faq-a p{color:var(--ink-soft);max-width:620px;padding-top:12px;font-size:15px}.contact-grid{grid-template-columns:1fr 1fr;gap:56px;display:grid}.field{margin-bottom:18px}.field label{font-family:var(--mono);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:6px;font-size:11px;display:block}.field input,.field select,.field textarea{border:none;border-bottom:1px solid var(--line);width:100%;font-family:var(--body);color:var(--ink);background:0 0;padding:8px 2px;font-size:15px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--brass);outline:none}.field input::placeholder,.field textarea::placeholder{color:#555}.field select option{background:var(--paper-2);color:var(--ink)}.contact-info dt{font-family:var(--mono);text-transform:uppercase;color:var(--blueprint);letter-spacing:.05em;margin-top:22px;font-size:11px}.contact-info dd{margin-top:4px;font-size:16px}.contact-info a{border-bottom:1px solid var(--line)}.contact-info a:hover{border-color:var(--brass)}.faculty-wrap{grid-template-columns:.9fr 1.4fr;gap:56px;display:grid}.faculty-photo-stand{border:1px solid var(--line);aspect-ratio:4/5;font-family:var(--mono);color:var(--ink-soft);background:var(--paper-2);text-align:center;object-fit:cover;justify-content:center;align-items:center;width:100%;padding:24px;font-size:12px;display:flex}.faculty-text h3{margin-bottom:6px;font-size:24px}.faculty-role{font-family:var(--mono);color:var(--blueprint);margin-bottom:18px;font-size:13px}.faculty-text p{color:var(--ink-soft);margin-bottom:14px}.profile-link{font-family:var(--mono);color:var(--brass);border-bottom:1px solid var(--brass);font-size:12.5px;display:inline-block}.profile-link:hover{color:var(--brass-dark)}footer{padding:48px 0 32px}.foot-bottom{font-family:var(--mono);color:var(--ink-soft);flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:20px;font-size:12px;display:flex}.foot-bottom .fcol h4{font-family:var(--mono);color:var(--ink);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px;font-size:11px}.foot-bottom .fcol p{line-height:1.7}.modal-overlay{z-index:200;justify-content:center;align-items:center;padding:20px;display:none;position:fixed;inset:0}.modal-overlay.open{display:flex}.modal-backdrop{-webkit-backdrop-filter:blur(8px);background:#0a0a0ad1;position:absolute;inset:0}.modal-box{z-index:2;background:var(--paper-2);border:1px solid var(--line);width:100%;max-width:440px;padding:34px 30px;position:relative;box-shadow:0 20px 60px #00000080}.modal-close{width:30px;height:30px;color:var(--ink-soft);font-family:var(--mono);cursor:pointer;background:0 0;border:none;font-size:16px;position:absolute;top:14px;right:14px}.modal-close:hover{color:var(--brass)}.modal-box h3{margin:14px 0 8px;font-size:21px}.modal-lede{color:var(--ink-soft);margin-bottom:22px;font-size:14px}.modal-course{font-family:var(--mono);color:var(--blueprint);border:1px solid var(--blueprint);margin-bottom:16px;padding:3px 9px;font-size:11px;display:inline-block}.modal-error{color:var(--brass-dark);font-family:var(--mono);margin:-6px 0 14px;font-size:12px;display:none}.modal-error.show{display:block}.modal-actions{justify-content:flex-end;gap:12px;margin-top:20px;display:flex}.modal-status{font-family:var(--mono);color:var(--blueprint);margin-top:14px;font-size:12px;display:none}.modal-status.show{display:block}@media (max-width:880px){.req-grid,.notes-grid{grid-template-columns:1fr;gap:28px}.contact-grid,.faculty-wrap{grid-template-columns:1fr}.navlinks{display:none}.navtoggle{display:flex}.navlinks.open{background:var(--paper);border-bottom:1px solid var(--line);flex-direction:column;gap:18px;padding:20px 32px;display:flex;position:absolute;top:100%;left:0;right:0}.rhino-logo{border-radius:4px;width:32px;height:auto;position:absolute;top:50%;transform:translate(-50%,-50%)}}
