
:root{--ink:#122044;--navy:#101a3d;--teal:#0bb5c1;--violet:#684acb;--paper:#f6f8fc;--muted:#55637b;--line:#dae3f0;--white:#fff}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:system-ui,-apple-system,'Segoe UI',sans-serif;color:var(--ink);background:var(--paper);line-height:1.65}a{color:#175b9e}a:hover{text-decoration-thickness:2px}img{max-width:100%;height:auto}.container{max-width:1160px;margin:auto;padding:0 24px}.skip{position:absolute;top:-100px;left:8px;background:#fff;padding:12px;z-index:100}.skip:focus{top:8px}.site-header{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}.header-row{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:84px}.brand img{width:250px;max-height:65px;object-fit:contain}.nav{display:flex;gap:20px;flex-wrap:wrap;align-items:center}.nav a{text-decoration:none;color:var(--ink);font-weight:650;font-size:.93rem}.nav a:hover,.nav a[aria-current=page]{color:#007c8e}.hero{color:#fff;background:radial-gradient(circle at 80% 30%,#352676 0,transparent 45%),linear-gradient(140deg,#101a3d,#122755 65%,#075d72);padding:80px 0}.hero-grid{display:grid;grid-template-columns:1.4fr 1fr;align-items:center;gap:44px}.eyebrow{font-size:.8rem;text-transform:uppercase;letter-spacing:.16em;font-weight:800;color:#5ee2e7}h1,h2,h3{line-height:1.18;letter-spacing:-.035em}h1{font-size:clamp(2.4rem,5vw,4.5rem);margin:10px 0 22px}h2{font-size:clamp(1.8rem,3vw,2.65rem);margin:0 0 18px}h3{font-size:1.25rem;margin:0 0 10px}.lead{font-size:1.19rem;color:#d5e3f5;max-width:650px}.hero-panel{background:#ffffff13;border:1px solid #ffffff3a;padding:28px;border-radius:24px;backdrop-filter:blur(6px)}.hero-panel img{width:120px;display:block;margin:auto}.hero-panel .highlight{display:block;margin-top:14px;text-align:center;font-size:1.25rem;font-weight:750}.hero-panel p{color:#d7e5f6;text-align:center}.btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 21px;border-radius:11px;text-decoration:none;font-weight:750;background:#13bfcb;color:#071a31;border:0;cursor:pointer;min-height:46px}.btn:hover{background:#4fdce3}.btn.alt{background:#fff;color:#132346}.btn.outline{background:transparent;color:var(--ink);border:1px solid #91a3ba}.button-row{display:flex;gap:12px;flex-wrap:wrap;margin:25px 0}.section{padding:68px 0}.section.light{background:#fff}.intro{color:var(--muted);max-width:740px}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:30px}.card{background:#fff;border:1px solid var(--line);border-radius:19px;padding:25px;box-shadow:0 8px 26px #11234d09}.card p{color:var(--muted);margin:0 0 18px}.card .symbol{font-size:1.7rem;display:block;margin-bottom:10px}.card a{font-weight:750}.feature{display:grid;grid-template-columns:230px 1fr;gap:30px;align-items:center}.cover{border-radius:12px;box-shadow:0 20px 45px #111c4240;max-height:355px}.small{font-size:.92rem;color:var(--muted)}.pill{display:inline-block;background:#e8f8f9;color:#006a72;border-radius:40px;padding:5px 12px;font-size:.78rem;font-weight:800}.breadcrumbs{padding:20px 0;color:var(--muted);font-size:.9rem}.page-intro{padding:50px 0 28px;background:#fff;border-bottom:1px solid var(--line)}.page-intro h1{font-size:clamp(2.2rem,4vw,3.5rem);margin:10px 0}.page-intro p{max-width:800px;color:var(--muted);font-size:1.09rem}.filters{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:12px;margin:20px 0 25px}.field{display:block;font-size:.86rem;font-weight:750}input,select,textarea{font:inherit;border:1px solid #adbacb;border-radius:10px;padding:11px 13px;width:100%;margin-top:7px;background:#fff;color:var(--ink)}input:focus,select:focus,textarea:focus{outline:3px solid #83e5ed}.resource-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.resource-card{background:#fff;border:1px solid var(--line);padding:20px;border-radius:15px}.resource-card h3{font-size:1.09rem;margin:11px 0}.resource-card a{font-weight:750}.resource-card .meta{color:#566784;font-size:.78rem;font-weight:700}.notice{background:#e9f7fb;border-left:4px solid #11a8b5;padding:17px 20px;border-radius:8px;margin:25px 0}.notice.warning{background:#fff7df;border-left-color:#b7820f}.chapter-list{columns:2;column-gap:34px}.chapter-list li{break-inside:avoid;margin:0 0 14px}.download-list{display:grid;gap:11px;padding:0;list-style:none}.download-list li{padding:14px 16px;border-radius:10px;border:1px solid var(--line);background:#fff}.labbox{background:#fff;border:1px solid var(--line);border-radius:18px;padding:26px;margin:22px 0}.labbox output{display:block;border-radius:10px;background:#eef5fb;padding:16px;min-height:40px;font-size:1.2rem;font-weight:750;margin-top:16px;overflow-wrap:anywhere}.site-footer{background:#101a3d;color:#dce4f5;padding:42px 0;margin-top:60px}.site-footer a{color:#c4ebf6}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:35px}.footer-grid h3{color:#fff} .copyright{border-top:1px solid #384363;padding-top:17px;margin-top:30px;font-size:.84rem;color:#b2c1dc}.hr{border:0;border-top:1px solid var(--line);margin:35px 0}.plain-list li{margin:7px 0}.faq details{background:#fff;margin:12px 0;padding:18px;border:1px solid var(--line);border-radius:12px}.faq summary{cursor:pointer;font-weight:750}.status{font-weight:700;color:#086e79}.brand-mini{font-size:1.3rem;font-weight:850;color:#fff}@media(max-width:850px){.header-row{flex-direction:column;padding-top:11px;padding-bottom:13px}.brand img{width:225px}.nav{justify-content:center;gap:10px 15px}.hero-grid,.feature{grid-template-columns:1fr}.cards,.resource-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.filters{grid-template-columns:repeat(2,minmax(0,1fr))}.footer-grid{grid-template-columns:1fr 1fr}.hero{padding:55px 0}}@media(max-width:550px){.container{padding:0 17px}.cards,.resource-grid,.filters,.footer-grid{grid-template-columns:1fr}.chapter-list{columns:1}.nav{gap:6px 12px;font-size:.84rem}.hero-panel{padding:17px}.section{padding:46px 0}.button-row .btn{width:100%}}
fieldset{border:1px solid var(--line);border-radius:12px;margin:18px 0;padding:14px 18px}fieldset label{display:block;margin:7px 0}fieldset input[type=radio]{width:auto;margin:0 9px 0 0;accent-color:#0a9caa}code{font-size:.93em;background:#e9eef7;padding:2px 5px;border-radius:4px}

/* TutorSyntax v2 lessons and lab */
.lesson-layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:1.4rem;align-items:start}.lesson-panel{background:#fff;border:1px solid #dde5ef;border-radius:16px;padding:1.5rem;margin-bottom:1.2rem}.lesson-panel h2{margin-top:0}.lesson-panel table{border-collapse:collapse;width:100%;margin:1rem 0}.lesson-panel th,.lesson-panel td{border:1px solid #cad8e9;padding:.7rem;text-align:left}.lesson-panel pre{overflow:auto;padding:1rem;border-radius:10px;background:#10203f;color:#eaf5ff;line-height:1.6}.lesson-panel code{font-family:Consolas,monospace}.sidebar-card{background:#ecf5fa;border-radius:16px;padding:1rem;position:sticky;top:1rem}.sidebar-card a{display:block;margin:.65rem 0}.answer-lines{border:1px dashed #9caec3;min-height:92px;border-radius:8px;background:repeating-linear-gradient(#fff 0,#fff 27px,#d7e0e9 28px);margin:.75rem 0 1.25rem}.tool-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.tool-grid .labbox{margin:0}.tool-result{display:block;margin-top:.7rem;padding:.85rem;background:#e9f3fa;color:#132d48;border-radius:8px;min-height:3rem;white-space:pre-wrap;overflow-wrap:anywhere}.tool-table{width:100%;border-collapse:collapse}.tool-table th,.tool-table td{padding:.5rem;border:1px solid #cbd7e4}.intro-links{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1rem}@media(max-width:780px){.lesson-layout,.tool-grid{grid-template-columns:1fr}.sidebar-card{position:static}}@media print{header,footer,.sidebar-card,.button-row,.no-print{display:none!important}.lesson-layout{display:block}.lesson-panel{break-inside:avoid;border:1px solid #999}body{color:#111;background:white}a{color:#111}}

/* Specification navigation — v3 */
.pathway-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:1.3rem}.pathway-card{display:flex;flex-direction:column;gap:.6rem;padding:1.4rem;border:1px solid #cad9e9;border-radius:16px;background:#f6faff;color:#172647;text-decoration:none}.pathway-card strong{font-size:1.18rem}.pathway-card span:last-child{color:#12788b;font-weight:700}.pathway-card:hover,.pathway-card:focus-visible{border-color:#25a4b5;box-shadow:0 4px 18px #18345417}.spec-pathways{background:#f8fbff}.spec-actions{margin-bottom:1rem}.spec-list{display:grid;gap:.85rem}.spec-topic{display:flex;gap:1rem;padding:1.2rem;border:1px solid #dbe5f0;border-radius:14px;background:#fff}.spec-num{flex-shrink:0;align-self:flex-start;min-width:3.3rem;padding:.55rem;text-align:center;background:#10264d;color:#fff;border-radius:8px;font-weight:700}.spec-topic h2{font-size:1.2rem;margin:.1rem 0 .35rem}.spec-topic p{margin:.1rem 0 .6rem}.spec-topic a{font-weight:700}.spec-coming{color:#63728c;font-size:.94rem}.footer-email a{color:inherit;text-decoration:underline}@media(max-width:650px){.pathway-grid{grid-template-columns:1fr}}

/* Analytics consent choices */
.ts-cookie-consent{position:fixed;z-index:9999;bottom:1rem;left:1rem;right:1rem;max-width:850px;margin:auto;background:#102044;color:#fff;border:1px solid #6883ae;border-radius:14px;padding:1rem 1.2rem;box-shadow:0 8px 40px #09152b80;display:flex;gap:1rem;align-items:center;justify-content:space-between;flex-wrap:wrap}
.ts-cookie-consent p{color:#e5eaf4;margin:.4rem 0 0;font-size:.9rem;max-width:560px}
.ts-cookie-consent a{color:#7be4e9;text-decoration:underline}
.ts-cookie-actions{display:flex;gap:.6rem;flex-wrap:wrap}
.ts-cookie-actions button,.cookie-settings-button{border:1px solid #2b9da8;background:#fff;color:#11244c;border-radius:8px;padding:.65rem .9rem;font:inherit;font-weight:650;cursor:pointer}
.ts-cookie-actions button[data-choice="accepted"]{background:#58d0d4;color:#11244c}
.ts-cookie-actions button:focus-visible,.cookie-settings-button:focus-visible{outline:3px solid #f3c75c;outline-offset:3px}

/* Exam practice tools */
.exam-tool{background:#fff;border:1px solid #dce5ed;border-radius:18px;padding:clamp(1rem,3vw,2rem);box-shadow:0 4px 22px #1020440d;max-width:1000px}
.exam-tool button{cursor:pointer}.exam-q{border:1px solid #dae5ef;border-radius:12px;padding:1.2rem;margin:1rem 0;background:#f8fbff}
.exam-q label{display:block;margin:.7rem 0;cursor:pointer}.exam-q input{margin-right:.6rem}
.exam-result{background:#ebf8f7;border-left:4px solid #158b98;border-radius:8px;padding:1rem;margin:1rem 0}
.exam-topic-row{display:grid;grid-template-columns:minmax(190px,2fr) 1fr 1fr auto;gap:.6rem;align-items:end;border-bottom:1px solid #e2e8f0;padding:1rem 0}
.exam-topic-row label{display:grid;gap:.3rem;font-size:.9rem;font-weight:650}.exam-topic-row input,.exam-topic-row select{width:100%;box-sizing:border-box;padding:.7rem;border:1px solid #a7b7c7;border-radius:8px;font:inherit}
.exam-topic-row button{background:#eef4fa;border:1px solid #cddbea;border-radius:8px;padding:.72rem;color:#17305b}
.exam-meter{height:9px;border-radius:20px;background:#dce7ee;overflow:hidden;margin:.5rem 0}.exam-meter span{display:block;height:100%;background:#169ca7}
.exam-tool .btn{border:0}.exam-tool .field select,.exam-tool .field input{width:100%}
@media(max-width:700px){.exam-topic-row{grid-template-columns:repeat(2,minmax(0,1fr))}.exam-topic-row label:first-child{grid-column:1/-1}}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* TutorSyntax v7 learning features */
.written-area {margin-top:1.4rem;padding:1.1rem;border-radius:12px;background:#f3f8fa;border:1px solid #dbe8ef}.written-area textarea{border:1px solid #a3b5c2;border-radius:9px;font:inherit}.written-area select{display:block;padding:.7rem;margin:.6rem 0;border-radius:8px}.written-area #mark-panel{padding:1rem;border-left:4px solid #168e9b;background:#fff;margin:1rem 0}.progress-row{padding:.8rem 0;border-bottom:1px solid #e5edf1}

/* GCSE Python course additions */
.lesson-pill{display:inline-block;padding:.25rem .75rem;border-radius:999px;background:#e9f6f7;color:#136979;font-size:.85rem;font-weight:700}
.code-task{padding:1.1rem;margin:1.1rem 0;border:1px solid #d7e1ee;border-radius:12px;background:#f8fbfe}
.code-task pre{overflow:auto;white-space:pre;font-size:.93rem}
.gcse-check label{display:block;padding:.45rem 0}
.gcse-progress{font-weight:700;color:#146d7d}
@media(prefers-color-scheme:dark){.code-task{background:#15233c;color:#f5f7fc}.lesson-pill{background:#163b4d;color:#b9f4ef}}

/* TutorSyntax v11 interactive Python practice */
.practice-layout{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}.practice-panel{background:#fff;border:1px solid var(--line);border-radius:18px;padding:1.4rem}.practice-code{background:#101a3d;color:#effaff;padding:1.1rem;border-radius:12px;white-space:pre;overflow:auto;line-height:1.65}.practice-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.6rem;margin:1rem 0}.practice-grid div{background:#f0f7fa;border:1px solid #d3e2ed;padding:.7rem;border-radius:9px;overflow-wrap:anywhere}.practice-grid strong{display:block;font-size:.78rem}.practice-choices{display:grid;gap:.5rem;margin:1rem 0}.practice-choice{text-align:left;background:#f4f7fc;border:1px solid #b9c8dc;border-radius:9px;padding:.85rem;cursor:pointer;font:inherit;color:#102044}.practice-choice:hover{background:#e4f5f7}.practice-choice.correct{border-color:#148c69;background:#ddf8eb}.practice-choice.incorrect{border-color:#af5050;background:#fdebea}.practice-feedback{padding:1rem;margin:1rem 0;border-left:4px solid #159eae;background:#f0fafb}.practice-buttons{display:flex;gap:.6rem;flex-wrap:wrap}.practice-buttons button:disabled{opacity:.45;cursor:not-allowed}@media(max-width:850px){.practice-layout{grid-template-columns:1fr}.practice-grid{grid-template-columns:repeat(2,1fr)}}

/* TutorSyntax v11.1: accessible code-block contrast fix.
   Inline code retains its pale background; block code inherits the dark panel. */
pre { overflow-x:auto; }
pre code,
.lesson-panel pre code,
.code-task pre code {
  display:block;
  background:transparent;
  color:inherit;
  padding:0;
  margin:0;
  border-radius:0;
  font-family:Consolas, 'Liberation Mono', Menlo, monospace;
  font-size:0.95rem;
  line-height:1.65;
  white-space:pre;
  -webkit-text-fill-color:currentColor;
}
.lesson-panel pre,
.code-task pre,
.practice-code,
#trace-code {
  background:#10203f;
  color:#f4f8ff;
  border:1px solid #34486b;
  border-radius:10px;
  padding:1rem;
  overflow-x:auto;
}
@media print {
  .lesson-panel pre,.code-task pre,.practice-code,#trace-code {
    background:#fff !important;
    color:#111827 !important;
    border:1px solid #777;
  }
  pre code { color:inherit !important; -webkit-text-fill-color:currentColor; }
}

/* v11.2: forced high-contrast code, independent of global inline code rules */
html body main pre,
html body main .lesson-panel pre,
html body main .code-task pre,
html body main pre.practice-code,
html body main #trace-code {
  background-color:#10203f !important;
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
  opacity:1 !important;
  border:2px solid #49668c !important;
  box-shadow:none !important;
}
html body main pre code,
html body main .lesson-panel pre code,
html body main .code-task pre code,
html body main pre code *,
html body main .lesson-panel pre code * {
  background:none !important;
  background-color:transparent !important;
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
  opacity:1 !important;
  text-shadow:none !important;
  box-shadow:none !important;
  border:0 !important;
}
@media print {
  html body main pre, html body main .lesson-panel pre,
  html body main .code-task pre, html body main pre.practice-code,
  html body main #trace-code {
    background:#ffffff !important;
    color:#111827 !important;
    -webkit-text-fill-color:#111827 !important;
  }
  html body main pre code, html body main .lesson-panel pre code,
  html body main .code-task pre code, html body main pre code * {
    color:#111827 !important;
    -webkit-text-fill-color:#111827 !important;
  }
}


/* TutorSyntax v12 — site navigation, learning UX and accessibility */
.header-row{min-height:78px;gap:24px}
.brand{flex:0 0 auto}
.brand img{width:205px;max-height:62px}
.nav{display:flex;align-items:center;gap:clamp(10px,1.35vw,19px);flex-wrap:nowrap}
.nav a{font-size:.91rem;white-space:nowrap}
.nav-toggle{display:none;align-items:center;justify-content:center;min-height:44px;padding:.5rem .8rem;border:1px solid #93a2b5;border-radius:9px;background:#fff;color:#122044;font:inherit;font-weight:700;cursor:pointer}
:where(button,a,summary,input,select,textarea):focus-visible{outline:3px solid #0b8998;outline-offset:3px}
#main{min-height:45vh}
.breadcrumb-trail{background:#eef3fa;border-bottom:1px solid #dae3ef;padding:8px max(17px,calc((100% - 1112px)/2));font-size:.86rem}
.breadcrumb-trail ol{list-style:none;margin:0;padding:0;display:flex;align-items:center;flex-wrap:wrap;gap:.4rem;color:#506078}
.breadcrumb-trail li+li::before{content:'›';padding-right:.4rem;color:#7888a1}
.breadcrumb-trail [aria-current='page']{font-weight:700;color:#253857}
.lesson-context{background:#fff;border:1px solid #d8e3f1;border-radius:16px;padding:24px;margin-top:26px;margin-bottom:22px;max-width:1112px}
.lesson-context h2{font-size:1.55rem;margin-bottom:12px}
.lesson-context p{max-width:85ch;margin:.6rem 0}
.lesson-context .lesson-byline{border-top:1px solid #dce6f1;color:#52647d;font-size:.9rem;padding-top:10px;margin-top:15px}
.editorial-extra{background:#fff;border:1px solid #dde6ef;border-radius:16px;padding:24px;margin-top:28px;margin-bottom:40px}
.editorial-extra h2{font-size:1.55rem}
.lesson-panel pre,.practice-code,pre{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain}
.lesson-panel pre code,pre code{white-space:pre;overflow-wrap:normal;word-break:normal}
.lesson-panel{min-width:0}
.card{min-width:0}
@media(max-width:900px){
 .header-row{min-height:72px;flex-direction:row;flex-wrap:wrap;gap:8px;padding-top:10px;padding-bottom:10px}
 .brand img{width:205px}
 html.js .nav-toggle{display:inline-flex;margin-left:auto}
 html.js #primary-navigation{display:none;width:100%;padding:8px 0 12px;flex-direction:column;align-items:stretch;gap:0;border-top:1px solid #dde5ee}
 html.js #primary-navigation.is-open{display:flex}
 #primary-navigation a{display:block;padding:10px 12px;border-radius:8px;white-space:normal;font-size:.99rem}
 #primary-navigation a:hover,#primary-navigation a[aria-current='page']{background:#e6f7f7}
 .nav{flex-wrap:wrap;justify-content:center;gap:3px 12px}
 .breadcrumb-trail{padding:10px 17px}
 .lesson-context{margin-top:18px;padding:18px}
}
@media(max-width:550px){
 .nav{font-size:1rem}
 .header-row{padding-top:8px;padding-bottom:8px}
 .lesson-context,.editorial-extra{border-radius:12px;padding:17px}
 .lesson-panel{padding:1rem}
 .site-header{position:relative}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* v13: purpose-built revision hub with accessible print controls */
.revision-reading{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:27px;align-items:start}
.revision-article{min-width:0;line-height:1.72}
.revision-article .revision-section{margin:0 0 29px;padding:22px 23px;border:1px solid #dce5ef;border-radius:16px;background:#fff}
.revision-article h2{font-size:clamp(1.35rem,2.2vw,1.68rem);line-height:1.27;margin:.2rem 0 12px;color:#11244a}
.revision-article h3{font-size:1.12rem;color:#123056}
.revision-article p{max-width:80ch;margin:.6rem 0 1rem}
.revision-article li{margin-bottom:.65rem}
.revision-article a{overflow-wrap:anywhere}
.revision-article pre{line-height:1.6;font-size:.94rem}
.revision-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin:16px 0 8px}
.revision-cards .card{padding:18px}
.revision-cards .card a{font-weight:700}
.revision-tip{border-left:4px solid #048c94;background:#eef9f9;border-radius:8px;padding:13px 17px;margin:16px 0;color:#15314b}
.revision-tip p{margin:.35rem 0}
.revision-question{border:1px solid #cdd9ea;background:#f0f5fc;padding:14px 17px;border-radius:11px;margin:16px 0}
.revision-question summary{cursor:pointer;font-weight:700;color:#07596e;min-height:32px}
.revision-question details[open]{padding-bottom:4px}
.revision-question .pill{font-size:.72rem;margin-left:4px}
.revision-aside{background:#eaf0f8;border:1px solid #d5e1ed;border-radius:14px;padding:18px;position:sticky;top:18px}
.revision-aside h2{font-size:1.12rem}
.revision-aside a{display:block;margin:12px 0;text-decoration:underline;font-weight:700}
.revision-promo{background:#e9f7f8}
.revision-promo h2{max-width:900px}
.revision-table{overflow-x:auto}
.revision-table table{width:100%;border-collapse:collapse;margin:18px 0;font-size:.93rem}
.revision-table th,.revision-table td{border:1px solid #d4deec;text-align:left;padding:12px;vertical-align:top}
.revision-table th{background:#e5eef9;color:#123052}
.revision-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;margin:16px 0}
.revision-form-grid label{font-weight:700;font-size:.93rem}
.revision-form-grid select{display:block;width:100%;border:1px solid #91a8c0;border-radius:8px;padding:.75rem;margin-top:5px;background:#fff;color:#132747;font:inherit}
.revision-planner,.revision-checklist{border:1px solid #cad9e9;border-radius:14px;background:#f4f8fd;padding:18px}
.plan-week{padding:12px 15px;background:#fff;border:1px solid #d7e1ee;border-radius:10px;margin:12px 0}
.plan-week h4{margin:0;color:#113959}
.revision-action-row,.revision-check-controls{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0}
.check-group{margin:16px 0 26px}
.check-row{border-bottom:1px solid #d3dfed;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0}
.check-row fieldset{border:0;display:flex;gap:8px;flex:0 0 auto;margin:0;padding:0}
.check-row label{display:inline-flex;gap:3px;align-items:center;cursor:pointer}
.check-row input{accent-color:#067a8c}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:850px){.revision-reading{grid-template-columns:1fr}.revision-aside{position:static}.revision-form-grid{grid-template-columns:1fr}}
@media(max-width:560px){.revision-article .revision-section{padding:16px}.revision-cards{grid-template-columns:1fr}.check-row{align-items:flex-start;flex-direction:column}.revision-form-grid select{min-height:44px}}
@media print{.site-header,.site-footer,.revision-aside,.breadcrumb-trail,.revision-promo,.revision-check-controls,.revision-action-row,.nav-toggle,.button-row,.no-print{display:none!important}.revision-reading{display:block}.revision-article .revision-section{break-inside:avoid;border:0;padding:5px;margin:8px 0}.revision-planner,.revision-checklist{border:0;background:#fff}.check-row{break-inside:avoid}body{font-size:11pt}a{color:#111!important;text-decoration:none!important}}


/* v13.1: independently written Python-to-pseudocode revision guide */
.pseudo-guide{line-height:1.7}
.pseudo-jump{display:flex;flex-wrap:wrap;gap:9px;margin:14px 0 6px}
.pseudo-jump a{display:inline-block;background:#e8f6f8;color:#075668;border:1px solid #b4d9e0;padding:7px 13px;border-radius:999px;font-weight:700;font-size:.9rem;text-decoration:none}
.pseudo-jump a:hover,.pseudo-jump a:focus-visible{background:#c8f0f2}
.pseudo-comparison{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin:17px 0 15px}
.pseudo-comparison.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.pseudo-col{background:#f0f5fb;border:1px solid #c9d8e9;border-radius:13px;min-width:0;overflow:hidden}
.pseudo-col h3{background:#e0ebfa;color:#132c52;font-size:.98rem;margin:0;padding:11px 14px}
.pseudo-col .pseudo-note{margin:6px 13px 12px;font-size:.82rem;line-height:1.4;color:#3e5675}
html body main .pseudo-col pre{background:#10203f!important;color:#fff!important;-webkit-text-fill-color:#fff!important;border:2px solid #49668c!important;border-radius:0!important;margin:0!important;padding:15px 13px!important;min-height:140px;overflow:auto;font: .86rem/1.7 Consolas,'Liberation Mono',monospace}
html body main .pseudo-col pre code{padding:0!important;background:transparent!important;color:#fff!important;-webkit-text-fill-color:#fff!important;white-space:pre;font:inherit}
.pseudo-key-table{width:100%;border-collapse:collapse;font-size:.94rem}
.pseudo-key-table th,.pseudo-key-table td{padding:12px;border:1px solid #d2dfed;vertical-align:top;text-align:left}
.pseudo-key-table th{background:#e5effa}
.pseudo-key-table tr:nth-child(even){background:#f7fafc}
.pseudo-key-table code{white-space:nowrap}
.pseudo-warning{border-left:4px solid #af7b18;background:#fff8e5;border-radius:9px;padding:14px 17px;color:#41370e;margin:15px 0}
.pseudo-task{border:1px solid #bdd7e5;border-radius:12px;padding:15px 18px;margin:18px 0;background:#f7fbff}
.pseudo-task h3{margin:2px 0 9px}
.pseudo-task details{background:#fff;border-radius:9px;padding:12px;border:1px solid #ccdce8;margin:10px 0}
.pseudo-task summary{cursor:pointer;font-weight:750;color:#035b70}
.pseudo-task pre{max-width:100%}
.pseudo-board-switch{background:#f0f6fd;border:1px solid #bdcedf;border-radius:13px;padding:17px;margin:18px 0}
.pseudo-board-switch label{font-weight:800;display:block;margin-bottom:6px}
.pseudo-board-switch select{max-width:440px;margin:0}
.pseudo-quiz{background:#eff8f8;border:1px solid #bfdfe4;border-radius:13px;padding:18px;margin:15px 0}
.pseudo-quiz fieldset{padding:0;margin:12px 0;border:0}
.pseudo-quiz legend{font-weight:800;margin-bottom:9px;font-size:1.04rem;color:#173051}
.pseudo-quiz .quiz-option{display:flex;gap:10px;align-items:flex-start;background:#fff;padding:10px 12px;margin:7px 0;border:1px solid #c5d6e4;border-radius:9px;cursor:pointer}
.pseudo-quiz .quiz-option input{width:auto;margin:6px 0 0;flex:none}
.pseudo-quiz .quiz-option:has(input:focus-visible){outline:3px solid #15a0b4}
.pseudo-quiz .quiz-option:hover{border-color:#088e9d}
.pseudo-quiz .quiz-controls{display:flex;gap:9px;flex-wrap:wrap;align-items:center;margin:12px 0}
.pseudo-quiz button{padding:10px 18px;border-radius:9px;border:0;background:#086e83;color:#fff;font:inherit;font-weight:750;cursor:pointer}
.pseudo-quiz button:disabled{opacity:.45;cursor:default}
.pseudo-quiz .quiz-feedback{padding:12px 15px;border-left:4px solid #038b95;background:#fff;border-radius:8px;margin-top:12px}
.pseudo-quiz .quiz-feedback p{margin:5px 0}
.pseudo-quiz .quiz-status{font-size:.9rem;color:#384b67;font-weight:700}
.pseudo-steps{counter-reset:step;list-style:none;padding:0}
.pseudo-steps li{counter-increment:step;padding:9px 3px 9px 45px;position:relative;border-bottom:1px solid #edf2f7}
.pseudo-steps li:before{content:counter(step);position:absolute;top:8px;left:0;background:#0c778e;color:#fff;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-weight:800}
.pseudo-footnote{font-size:.9rem;color:#4d6078}
@media(max-width:980px){.pseudo-comparison{grid-template-columns:1fr}}
@media(max-width:650px){.pseudo-comparison.cols-2{grid-template-columns:1fr}.pseudo-jump{gap:7px}.pseudo-col pre{font-size:.81rem!important}}
@media print{.pseudo-jump,.pseudo-board-switch,.pseudo-quiz,.pseudo-print-hide{display:none!important}.pseudo-comparison,.pseudo-comparison.cols-2{display:block}.pseudo-col{break-inside:avoid;margin:9px 0}.pseudo-col pre,html body main .pseudo-col pre,html body main .pseudo-col pre code{color:#111!important;-webkit-text-fill-color:#111!important;background:#fff!important;border:1px solid #aaa!important}.pseudo-task{break-inside:avoid}.pseudo-key-table th,.pseudo-key-table td{padding:7px}.pseudo-col h3{background:#eee}}


/* TutorSyntax v13.2 — consistent compact section rhythm across the site.
   Reduce accidental blank gaps; preserve readable text and comfortable tap targets. */
@media screen {
  .section { padding: clamp(30px, 3.2vw, 44px) 0; }
  .page-intro { padding: clamp(24px, 2.7vw, 36px) 0 18px; }
  .page-intro h1 { margin: 8px 0 10px; }
  .page-intro p { margin: 8px 0 10px; }
  .hero { padding: clamp(42px, 5vw, 62px) 0; }
  .button-row { margin: 15px 0; }
  .cards { margin-top: 20px; }
  .notice { margin: 14px 0; padding: 14px 18px; }
  .section h2 { margin-bottom: 12px; }
  .section p { margin-top: 9px; margin-bottom: 12px; }
  .labbox { margin: 14px 0; padding: 21px; }
  .lesson-panel { margin-bottom: 15px; padding: 1.25rem; }
  .lesson-context { margin-top: 18px; margin-bottom: 15px; padding: 20px; }
  .editorial-extra { margin-top: 20px; margin-bottom: 24px; padding: 20px; }
  .revision-article .revision-section { margin-bottom: 19px; padding: 19px 21px; }
  .revision-article p { margin: .55rem 0 .8rem; }
  .revision-article li { margin-bottom: .4rem; }
  .site-footer { margin-top: 32px; padding: 34px 0; }
  .pathway-grid { margin-top: 16px; }
  .spec-topic { padding: 1rem; }
  .spec-list { gap: .7rem; }
}
@media screen and (max-width: 650px) {
  .section { padding: 26px 0; }
  .page-intro { padding: 22px 0 15px; }
  .hero { padding: 37px 0; }
  .notice { margin: 11px 0; padding: 12px 14px; }
  .lesson-panel { padding: 1rem; }
  .lesson-context,.editorial-extra { padding: 16px; margin-top: 14px; margin-bottom: 14px; }
  .revision-article .revision-section { padding: 16px; margin-bottom: 15px; }
  .site-footer { margin-top: 22px; padding: 26px 0; }
}


/* TutorSyntax v13.3 — bigger six primary navigation links + warmer entry point.
   Future image/illustration system is documented separately; no unnecessary
   image payloads are introduced into content lessons in this release. */
@media screen and (min-width: 1051px) {
  .header-row { min-height: 86px; gap: 16px; }
  .brand img { width: 210px; }
  #primary-navigation { gap: 4px; flex-wrap: nowrap; }
  #primary-navigation a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 11px 12px;
    font-size: 1.02rem;
    font-weight: 750;
    border-radius: 11px;
    line-height: 1.25;
    letter-spacing: -.01em;
    transition: background-color .18s ease, color .18s ease;
  }
  #primary-navigation a:hover,
  #primary-navigation a[aria-current='page'] { background: #eaf8f8; color: #075a69; }
}
@media screen and (max-width: 1050px) {
  .header-row { min-height: 74px; flex-direction: row; flex-wrap: wrap; gap: 8px; padding-top: 10px; padding-bottom: 10px; }
  .brand img { width: min(205px, 60vw); }
  html.js .nav-toggle { display: inline-flex; margin-left: auto; }
  html.js #primary-navigation { display: none; width: 100%; padding: 9px 0 12px; flex-direction: column; align-items: stretch; gap: 3px; border-top: 1px solid #dde5ee; }
  html.js #primary-navigation.is-open { display: flex; }
  #primary-navigation a { display: flex; align-items:center; min-height: 48px; padding: 11px 15px; border-radius: 10px; white-space: normal; font-size: 1.06rem; font-weight: 730; }
  #primary-navigation a:hover, #primary-navigation a[aria-current='page'] { background: #e6f7f7; color: #075d70; }
  .nav { flex-wrap: wrap; justify-content: center; }
}
@media screen {
  .hero .eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    border-radius: 999px;
    border: 1px solid rgba(135, 233, 236, .42);
    background: rgba(22, 148, 163, .16);
    padding: 7px 13px;
    color: #abf1f0;
    letter-spacing: .075em;
    font-size: .79rem;
    text-transform: uppercase;
  }
  .hero .eyebrow::before {
    content: '';
    width: 7px;
    height: 7px;
    flex: 0 0 7px;
    border-radius: 50%;
    background: #82eaeb;
  }
  .hero .lead { max-width: 57ch; line-height: 1.65; }
}
@media (prefers-reduced-motion: reduce) {
  #primary-navigation a { transition: none; }
}


/* TutorSyntax v13.4 — larger, consistently legible book-aligned wordmark.
   Preserve the logo's existing navy/teal/violet artwork across every page.
   Keep all six navigation links usable at every breakpoint. */
@media screen {
  .site-header { border-bottom: 1px solid #d6e0f0; }
  .site-header::after {
    content: "";
    display: block;
    height: 2px;
    background: linear-gradient(90deg, #101a3d 0%, #0bb5c1 46%, #684acb 100%);
    pointer-events: none;
  }
  .brand { display: inline-flex; align-items: center; min-width: 0; flex-shrink: 0; }
  .brand img { display: block; max-height: none; object-fit: contain; height: auto; }
}
/* Desktop: full logo and established large page links side by side. */
@media screen and (min-width: 1180px) {
  .header-row { min-height: 113px; gap: 14px; flex-wrap: nowrap; }
  .brand img { width: 300px; max-width: 300px; }
  #primary-navigation { gap: 2px; }
  #primary-navigation a { padding-left: 10px; padding-right: 10px; font-size: 1rem; }
  html.js .nav-toggle { display: none; }
  html.js #primary-navigation { display: flex; width: auto; flex-direction: row; border: 0; padding: 0; }
}
/* Keep the larger logo, but collapse the nav before it can crowd the wordmark. */
@media screen and (min-width: 431px) and (max-width: 1179px) {
  .header-row { min-height: 100px; }
  .brand img { width: 278px; max-width: min(278px, calc(100vw - 160px)); }
  html.js .nav-toggle { display: inline-flex; margin-left: auto; }
  html.js #primary-navigation { display: none; width: 100%; padding: 9px 0 12px; flex-direction: column; align-items: stretch; gap: 3px; border-top: 1px solid #dde5ee; }
  html.js #primary-navigation.is-open { display: flex; }
  #primary-navigation a { display:flex; align-items:center; min-height:48px; padding:11px 15px; font-size: 1.06rem; font-weight: 730; white-space: normal; border-radius:10px; }
}
@media screen and (max-width: 430px) {
  .header-row { min-height: 90px; gap: 7px; padding-top: 7px; padding-bottom: 7px; }
  .brand img { width: 255px; max-width: calc(100vw - 145px); }
  html.js .nav-toggle { display: inline-flex; margin-left: auto; }
  html.js #primary-navigation { display: none; width: 100%; padding: 9px 0 12px; flex-direction: column; align-items: stretch; gap: 3px; border-top: 1px solid #dde5ee; }
  html.js #primary-navigation.is-open { display: flex; }
  #primary-navigation a { display:flex; align-items:center; min-height:48px; padding:11px 15px; font-size:1.06rem; font-weight:730; white-space:normal; border-radius:10px; }
}


/* TutorSyntax v13.5: illustrated learning identity. Same navy / cyan / violet as the books.
   Compact illustrations preserve fast access to specification resources and lessons. */
.ts-intro-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,0.95fr);align-items:center;gap:clamp(16px,3.4vw,36px)}
.ts-intro-copy{min-width:0}
.ts-intro-illustration{margin:0;min-width:0;background:linear-gradient(135deg,#101a3d,#18275a);border:1px solid #cfdcea;border-radius:19px;overflow:hidden;box-shadow:0 13px 28px #10204416}
.ts-intro-illustration img{width:100%;height:auto;aspect-ratio:960/590;object-fit:cover;display:block}
.hero-panel{padding:clamp(15px,2vw,23px);overflow:hidden}
.hero-panel img.ts-home-art{display:block;width:100%;max-width:none;max-height:none;aspect-ratio:960/590;object-fit:cover;margin:0;border-radius:15px}
.hero-panel .highlight{margin-top:12px}
.hero-panel p{margin-bottom:0}
@media(max-width:780px){
 .ts-intro-grid{grid-template-columns:1fr;gap:14px}
 .ts-intro-illustration{max-width:580px;width:100%}
 .ts-intro-illustration img{height:clamp(145px,31vw,230px);width:100%;object-fit:cover}
}
@media(max-width:550px){
 .ts-intro-illustration{border-radius:13px}
 .ts-intro-illustration img{height:175px}
 .hero-panel img.ts-home-art{aspect-ratio:1.9;object-fit:cover}
}
@media print{
 .ts-intro-grid{display:block}.ts-intro-illustration{display:none}
 .hero-panel img.ts-home-art{max-height:150px;object-fit:contain}
}
@media(prefers-reduced-motion:no-preference){
 .ts-intro-illustration img,.hero-panel img.ts-home-art{transition:transform .24s ease}
 .ts-intro-illustration:hover img{transform:scale(1.016)}
}


/* v13.6: Desktop navigation must not turn into a menu on ordinary laptops.
   Previous v13.4 breakpoint at 1180px was too wide. */
@media screen and (min-width:1024px){
  .site-header .header-row {display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:10px;min-height:100px;padding-top:8px;padding-bottom:8px}
  .site-header .brand {flex:0 0 auto}
  .site-header .brand img {width:clamp(225px,22vw,280px);max-width:280px;height:auto}
  html.js .site-header .nav-toggle {display:none!important}
  html.js .site-header #primary-navigation {display:flex!important;width:auto;flex:1;flex-direction:row;justify-content:flex-end;align-items:center;flex-wrap:nowrap;gap:2px;border:0;padding:0}
  .site-header #primary-navigation a {display:inline-flex;white-space:nowrap;font-size:clamp(.84rem,1vw,1.0rem);font-weight:750;padding:10px clamp(7px,.85vw,11px);min-height:45px;border-radius:10px}
}
/* Tablets retain the entire set of links, in a second row if needed. */
@media screen and (min-width:651px) and (max-width:1023px){
  .site-header .header-row {display:flex;flex-direction:row;flex-wrap:wrap;gap:0;align-items:center;justify-content:center;padding-top:8px;padding-bottom:8px;min-height:auto}
  .site-header .brand {width:100%;justify-content:center}
  .site-header .brand img {width:255px;max-width:280px;height:auto}
  html.js .site-header .nav-toggle{display:none!important}
  html.js .site-header #primary-navigation{display:flex!important;flex:0 0 100%;width:100%;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:center;gap:3px;padding:5px 0 0;border:0}
  .site-header #primary-navigation a{display:inline-flex;min-height:43px;white-space:nowrap;font-size:.93rem;font-weight:750;padding:8px 13px;border-radius:9px}
}
/* Compact phone screens only: accessible toggle menu. */
@media screen and (max-width:650px){
  .site-header .header-row {display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px;min-height:78px;padding-top:8px;padding-bottom:8px}
  .site-header .brand {width:auto;flex:0 1 auto}
  .site-header .brand img{width:min(220px,53vw);max-width:min(220px,53vw);height:auto}
  html.js .site-header .nav-toggle{display:inline-flex!important;flex:0 0 auto;margin-left:auto}
  html.js .site-header #primary-navigation{display:none!important;width:100%;flex:0 0 100%;flex-direction:column;align-items:stretch;gap:3px;padding:7px 0 10px;border-top:1px solid #dde5ee}
  html.js .site-header #primary-navigation.is-open{display:flex!important}
  .site-header #primary-navigation a{display:flex;align-items:center;min-height:46px;padding:10px 12px;font-size:1rem;white-space:normal}
}
/* Immediately visible illustration-led routes, without a tall corporate hero. */
.ts-visual-routes{padding:34px 0 38px;background:#f5f8fd}
.ts-visual-routes .ts-route-heading h2{margin:5px 0 5px}
.ts-visual-routes .ts-route-heading .intro{margin:0 0 17px}
.ts-eyebrow-dark{color:#007585}
.ts-route-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}
.ts-route-card{display:flex;flex-direction:column;min-width:0;text-decoration:none;background:#fff;border:1px solid #d6e0ef;border-radius:18px;overflow:hidden;box-shadow:0 6px 16px rgba(16,26,61,.06);color:#14234c;transition:transform .15s ease,box-shadow .15s ease}
.ts-route-card:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(16,26,61,.13)}
.ts-route-card:focus-visible{outline:3px solid #0796a5;outline-offset:3px}
.ts-route-card>img{display:block;width:100%;height:155px;object-fit:cover;aspect-ratio:960/590;background:#101a3d}
.ts-route-content{padding:14px 18px 17px;display:flex;flex-direction:column;flex:1}
.ts-route-content h3{margin:7px 0 6px;font-size:1.21rem;line-height:1.22}
.ts-route-content p{font-size:.95rem;color:#43536b;line-height:1.45;margin:0 0 14px}
.ts-route-tag{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.055em}
.ts-route-blue{color:#125f9b}.ts-route-purple{color:#684acb}.ts-route-green{color:#00775f}.ts-route-amber{color:#9a5d12}
.ts-route-action{font-size:.9rem;color:#006b83;font-weight:800;margin-top:auto}
.ts-book-visual{height:155px;display:flex;justify-content:center;align-items:center;background:linear-gradient(125deg,#0e1837,#33478c 58%,#5c38a9)}
.ts-book-visual img{height:143px;width:auto;max-width:90%;object-fit:contain;filter:drop-shadow(0 5px 7px rgba(2,6,25,.32))}
.ts-extra-banner{margin:16px 0 2px;width:min(100%,720px);border-radius:15px;overflow:hidden;box-shadow:0 7px 22px rgba(16,26,61,.12);border:1px solid #d8e3ef;background:#101a3d}
.ts-extra-banner img{display:block;width:100%;height:clamp(175px,22vw,285px);object-fit:cover}
@media screen and (max-width:800px){.ts-route-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ts-route-card>img,.ts-book-visual{height:130px}.ts-book-visual img{height:120px}}
@media screen and (max-width:550px){.ts-visual-routes{padding:24px 0 28px}.ts-route-grid{grid-template-columns:1fr;gap:12px}.ts-route-card{display:grid;grid-template-columns:37% minmax(0,1fr);align-items:stretch}.ts-route-card>img,.ts-book-visual{width:100%;height:100%;min-height:150px;object-fit:cover}.ts-book-visual img{height:125px}.ts-route-content{padding:12px 13px}.ts-route-content h3{font-size:1.07rem}.ts-route-content p{font-size:.86rem;margin-bottom:7px}.ts-route-action{font-size:.84rem}.ts-extra-banner img{height:160px}}
@media print{.ts-route-card{break-inside:avoid}.ts-extra-banner{display:none}}
@media (prefers-reduced-motion:reduce){.ts-route-card{transition:none}.ts-route-card:hover{transform:none}}
/* Keep visual routes within easier reach on tablet screens. */
@media screen and (min-width:700px) and (max-width:900px){
  .hero{padding:34px 0}
  .hero-grid{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);align-items:center;gap:20px}
  .hero h1{font-size:clamp(2.1rem,4vw,3.3rem);margin:8px 0 14px}
  .hero .lead{font-size:1.04rem;line-height:1.5}
  .hero-panel{padding:13px}
  .hero-panel .highlight{font-size:1rem}
  .hero-panel p{font-size:.87rem;line-height:1.4}
}


/* ==========================================================
   TutorSyntax v14 — Learning Studio design, inspired by our
   approved visual mock-up. Retains the original brand palette.
   ========================================================== */
:root{--ts14-night:#071934;--ts14-deep:#0b244b;--ts14-cyan:#22d9e4;--ts14-purple:#8958ff;--ts14-white:#f4f9ff;--ts14-green:#05c69d;--ts14-orange:#ee963c}
body.ts14-site{background:#eef5fc;color:#13244b}
.ts14-site .container{max-width:1300px}
.ts14-site :where(a,button,select,input,textarea,summary):focus-visible{outline:3px solid #18b5d6;outline-offset:3px}
/* Navigation — actual links and mobile toggle, not a raster mock-up. */
.ts14-site .ts14-header{background:linear-gradient(115deg,#06132c,#071b39 62%,#0e214a);border-bottom:1px solid #18698e;box-shadow:0 4px 22px #061a3729;position:relative;z-index:30}
.ts14-site .ts14-header::after{background:linear-gradient(90deg,transparent,#02c9d6 25%,#7560ed 70%,transparent);height:2px}
.ts14-site .ts14-header .header-row{min-height:96px;gap:14px;max-width:1520px}
.ts14-site .ts14-header .brand img{width:clamp(225px,23vw,315px);max-width:315px;max-height:none;height:auto;display:block;object-fit:contain}
.ts14-site .ts14-header .brand{min-width:0}
.ts14-site #primary-navigation{gap:7px}
.ts14-site #primary-navigation a{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:46px;padding:9px clamp(9px,1.1vw,15px);border:1px solid #128caa;border-radius:9px;background:#09274c;color:#edf7ff;font-weight:760;font-size:clamp(.81rem,.95vw,.96rem);text-decoration:none;white-space:nowrap;line-height:1.2;transition:background .18s ease,transform .18s ease,border-color .18s ease}
.ts14-site #primary-navigation a.ts14-nav-python{background:#082657;border-color:#1476c4}
.ts14-site #primary-navigation a.ts14-nav-resources{background:#25194e;border-color:#8055dd}
.ts14-site #primary-navigation a.ts14-nav-revision{background:#073d36;border-color:#09ae8e}
.ts14-site #primary-navigation a.ts14-nav-tutoring{background:#29194b;border-color:#8958eb}
.ts14-site #primary-navigation a.ts14-nav-books{background:#412612;border-color:#cb7b30}
.ts14-site #primary-navigation a[aria-current=page]{box-shadow:inset 0 0 0 1px #fff9,0 0 0 2px #ffffff1a}
.ts14-site #primary-navigation a:hover{background:#19517a;border-color:#6beaf2;color:white;transform:translateY(-1px)}
.ts14-nav-icon{display:inline-flex;align-items:center;justify-content:center;min-width:18px;font-size:1.18rem;color:#76f5fa;font-weight:850}
.ts14-nav-resources .ts14-nav-icon,.ts14-nav-tutoring .ts14-nav-icon{color:#c5a8ff}
.ts14-nav-revision .ts14-nav-icon{color:#5ee0a2}.ts14-nav-books .ts14-nav-icon{color:#ffc176}
.ts14-site .ts14-header .nav-toggle{background:#123456;color:white;border-color:#43a2bd;min-height:44px}
/* Home: colourful visual atmosphere with real, readable HTML content. */
.ts14-home-hero{background:#071833;position:relative;color:white;overflow:hidden}
.ts14-home-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 78% 0,#145f9c39,transparent 54%);pointer-events:none}
.ts14-hero-stage{display:grid;grid-template-columns:minmax(0, .92fr) minmax(0,1.08fr);min-height:380px;position:relative;align-items:stretch;max-width:1520px!important}
.ts14-hero-copy{position:relative;z-index:2;padding:47px 0 34px;align-self:center}
.ts14-kicker{display:block;color:#65e7f3;font-size:.72rem;letter-spacing:.135em;font-weight:870;text-transform:uppercase}
.ts14-hero-copy h1{font-size:clamp(2.65rem,4.1vw,4.8rem);letter-spacing:-.052em;line-height:1.08;margin:11px 0 17px;max-width:700px;color:white}
.ts14-hero-copy h1 em{font-style:normal;background:linear-gradient(95deg,#32e1ec,#7187ff 57%,#ae8cff);background-clip:text;-webkit-background-clip:text;color:transparent}
.ts14-hero-lede{color:#e5effd;font-size:1.04rem;line-height:1.55;max-width:510px;margin:0 0 17px}
.ts14-hero-ticks{display:flex;flex-wrap:wrap;gap:9px 16px;list-style:none;padding:0;margin:13px 0 18px;font-weight:650;font-size:.85rem}
.ts14-hero-ticks li{display:flex;align-items:center;gap:7px}
.ts14-hero-ticks li::before{content:'✓';display:inline-grid;place-items:center;background:#19b9c4;border-radius:100%;color:#071d39;width:20px;height:20px;font-weight:850;flex:0 0 auto}
.ts14-hero-copy .button-row{margin:18px 0 4px}
.ts14-site .btn{background:#08bdcb;color:#06223c;border-radius:11px;box-shadow:0 3px 12px #001f4630}
.ts14-site .btn:hover{background:#47e2e8}
.ts14-site .btn.ts14-ghost{background:#102b53;color:#eefaff;border:1px solid #46b7d0}
.ts14-hero-visual{position:absolute;top:0;bottom:0;left:37%;right:-45px;background-image:linear-gradient(90deg,#071833 0%,#07183380 16%,transparent 46%),url('/assets/visuals/learning-studio-hero.webp');background-repeat:no-repeat;background-size:100% 100%,cover;background-position:center,right center;pointer-events:none}
/* Six graphic cards visible directly after hero */
.ts14-route-section{background:linear-gradient(180deg,#0a2143,#0d2b52);color:white;padding:24px 0 27px;border-top:1px solid #1d6b93}
.ts14-section-heading{display:flex;gap:28px;align-items:end;justify-content:space-between;margin-bottom:15px}
.ts14-section-heading h2{font-size:clamp(1.5rem,2.1vw,2.1rem);margin:5px 0 0;color:white}
.ts14-section-heading p{max-width:400px;color:#c7dcef;font-size:.9rem;margin:0 0 3px}
.ts14-learning-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:11px}
.ts14-learning-card{display:flex;flex-direction:column;min-width:0;background:#092549;border:1px solid #176cb6;border-radius:13px;overflow:hidden;text-align:center;text-decoration:none;color:#fff;box-shadow:0 8px 19px #000e2680;transition:transform .16s ease,box-shadow .16s ease}
.ts14-learning-card:hover{transform:translateY(-4px);box-shadow:0 12px 30px #000f2da3}
.ts14-learning-card--resources{background:#23134b;border-color:#8a56e5}.ts14-learning-card--revision{background:#062e31;border-color:#08b88d}.ts14-learning-card--exam{background:#402318;border-color:#ed8f27}.ts14-learning-card--tutoring{background:#241644;border-color:#a079e6}.ts14-learning-card--books{background:#432411;border-color:#e39439}
.ts14-card-image{height:105px;display:block;overflow:hidden;background:#071833}
.ts14-card-image img{width:100%;height:100%;object-fit:cover;display:block}
.ts14-card-body{padding:12px 10px 13px;display:flex;flex-direction:column;align-items:center;flex:1;gap:7px}
.ts14-card-name{color:white;font-size:1rem;font-weight:870;line-height:1.2}
.ts14-card-detail{color:#e8f3ff;line-height:1.36;font-size:.77rem;flex:1}
.ts14-card-action{display:inline-flex;align-items:center;justify-content:center;gap:4px;background:#05aabb;border:1px solid #33e1ef;border-radius:40px;padding:6px 10px;color:#fff;font-size:.79rem;font-weight:800;margin-top:3px}
.ts14-learning-card--resources .ts14-card-action,.ts14-learning-card--tutoring .ts14-card-action{background:#693ce8;border-color:#a98bfa}
.ts14-learning-card--revision .ts14-card-action{background:#007e66;border-color:#16ddaf}
.ts14-learning-card--exam .ts14-card-action,.ts14-learning-card--books .ts14-card-action{background:#ae560e;border-color:#f8a849}
.ts14-benefits{background:#e6f6ff;border-bottom:1px solid #a0c6df;padding:15px 0}
.ts14-benefits-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.ts14-benefits-grid>div{display:flex;align-items:center;gap:12px;min-width:0;padding-right:12px;border-right:1px solid #b4d7e9}
.ts14-benefits-grid>div:last-child{border:0}
.ts14-benefits-grid>div>span{font-size:2rem;line-height:1;color:#007aaf}
.ts14-benefits-grid p{margin:0;line-height:1.3}.ts14-benefits-grid strong{display:block;color:#0d2a56;font-size:.87rem}.ts14-benefits-grid small{display:block;color:#3e5473;font-size:.76rem;margin-top:3px}
.ts14-feature-strip{padding:25px 0 30px;background:#dfefff}
.ts14-feature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.ts14-feature-panel{background:linear-gradient(120deg,#081c3c,#10366a);border:1px solid #3f69aa;min-height:315px;border-radius:17px;overflow:hidden;position:relative;isolation:isolate;color:#fff;box-shadow:0 14px 32px #102d5330}
.ts14-feature-visual{position:absolute;inset:0 0 0 27%;opacity:.95;z-index:-1;background-repeat:no-repeat;background-position:center;background-size:cover}
.ts14-feature-python .ts14-feature-visual{background-image:linear-gradient(90deg,#081b3b 0%,#0b2140d4 16%,transparent 70%),url('/assets/visuals/python-scene.webp')}
.ts14-feature-revision .ts14-feature-visual{background-image:linear-gradient(90deg,#081b3b 0%,#0b2140e3 18%,#081b3b38 75%),url('/assets/visuals/revision-scene.webp')}
.ts14-feature-content{padding:24px;max-width:79%}
.ts14-feature-content h2{color:#fff;font-size:clamp(1.5rem,2.2vw,2.1rem);margin:5px 0 9px}
.ts14-feature-content p{color:#e2f2fb;line-height:1.5;font-size:.93rem;margin:0 0 14px}
.ts14-feature-content ul{padding-left:20px;color:#e0edf9;margin:0 0 17px;font-size:.88rem;line-height:1.6}
.ts14-chip-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:16px 0}
.ts14-chip-list span{padding:8px 5px;border-radius:8px;text-align:center;font-size:.71rem;font-weight:780;line-height:1.25;background:#e5f5ff;color:#072d56;box-shadow:0 2px 6px #0001}
.ts14-feature-content .btn{font-size:.86rem}
/* Landing page heroes: large imagery without sacrificing exam-board links and page reading content. */
.ts14-site .ts14-intro{padding:25px 0 23px;background:radial-gradient(ellipse at 80% -30%,#254d99 0%,transparent 60%),linear-gradient(110deg,#081937,#112c59 62%,#23336e);border-bottom:2px solid #296d96;color:#f4f8ff;overflow:hidden}
.ts14-site .ts14-intro h1{color:white;font-size:clamp(2.05rem,3.3vw,3.4rem);line-height:1.12;max-width:780px;margin:7px 0 12px}
.ts14-site .ts14-intro .eyebrow{color:#5ee9ef}
.ts14-site .ts14-intro :is(p,.intro){color:#e1efff;font-size:1rem;line-height:1.58;max-width:780px}
.ts14-site .ts14-intro a:not(.btn){color:#a6f1ff}
.ts14-site .ts14-intro .notice{background:#163b66;color:#fff;border-color:#12cad5;max-width:700px;padding:10px 15px;margin:5px 0 13px}
.ts14-site .ts14-intro .ts-intro-grid{grid-template-columns:minmax(0,1.15fr) minmax(250px,.85fr);min-height:225px;gap:25px}
.ts14-site .ts14-intro .ts-intro-illustration,.ts14-site .ts14-intro .ts14-intro-visual{display:block;align-self:stretch;max-width:none;box-shadow:0 10px 28px #0003;background:#06152a;border:1px solid #236c91;border-radius:17px;margin:0;overflow:hidden}
.ts14-site .ts14-intro .ts-intro-illustration img,.ts14-site .ts14-intro .ts14-intro-visual img{display:block;width:100%;height:100%;min-height:200px;max-height:295px;object-fit:cover;aspect-ratio:auto}
.ts14-site .ts14-intro .ts14-intro-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(250px,.85fr);gap:25px;align-items:center}
.ts14-site .ts14-intro.ts14-theme-revision{background:linear-gradient(110deg,#061b35,#073d4b 68%,#183a62)}
.ts14-site .ts14-intro.ts14-theme-exam{background:linear-gradient(110deg,#091a35,#3b2751 70%,#4a2d4f)}
.ts14-site .ts14-intro.ts14-theme-tutoring{background:linear-gradient(110deg,#0b1a3e,#31225e 72%,#422656)}
.ts14-site .ts14-intro.ts14-theme-books{background:linear-gradient(110deg,#091c3a,#302254 70%,#3e2d4e)}
.ts14-site .ts14-intro.ts14-theme-resources{background:linear-gradient(110deg,#091a40,#29205b 75%,#34265b)}
.ts14-site .ts14-intro .ts14-intro-copy{min-width:0}
.ts14-site .ts14-intro .ts14-intro-copy .btn{color:#071e34}
.ts14-site .ts14-intro .ts14-intro-copy .button-row{margin:13px 0}
.ts14-site .ts14-intro .ts14-intro-copy p{margin:8px 0}
.ts14-site .ts14-intro .ts14-intro-layout .ts14-intro-copy>.notice:first-child{margin-top:0}
/* Keep actual specification order prominent and create readable, attractive pathways */
.ts14-site .spec-pathways{background:#eef5fc}
.ts14-site .spec-pathways .pathway-grid{gap:14px;margin-top:16px}
.ts14-site .spec-pathways .pathway-card{background:#fff;border:1px solid #c8d8ee;border-top:4px solid #008da5;box-shadow:0 7px 20px #10336610;border-radius:15px;padding:18px 20px;transition:transform .16s ease,box-shadow .16s ease}
.ts14-site .spec-pathways .pathway-card:hover{transform:translateY(-2px);box-shadow:0 14px 28px #0b224729}
.ts14-site .spec-pathways .pathway-card:nth-child(2),.ts14-site .spec-pathways .pathway-card:nth-child(4){border-top-color:#8958dd}
.ts14-site .section{padding:clamp(25px,3vw,39px) 0}
.ts14-site .section.light{background:#fff}
.ts14-site .section .cards{margin-top:17px;gap:14px}
.ts14-site .card{box-shadow:0 6px 22px #11315a0d;border-radius:15px}
.ts14-site .card:hover{border-color:#91c2dd}
.ts14-site .revision-promo{background:linear-gradient(110deg,#d4f3f0,#e7ebff)}
.ts14-site .breadcrumb-trail{background:#e6f2ff;border-color:#c7d9ec}
.ts14-site .page-intro:not(.ts14-intro){background:#f7fbff}
.ts14-site .page-intro:not(.ts14-intro) h1{color:#0c2351}
.ts14-site .ts14-lesson-intro{padding:20px 0 13px!important;border-bottom:1px solid #d2dfef}
.ts14-site .ts14-lesson-intro h1{font-size:clamp(1.9rem,3vw,2.8rem);margin:6px 0}
.ts14-site .lesson-panel{border-radius:15px;box-shadow:0 6px 18px #0d28550b}
.ts14-site pre,.ts14-site .lesson-panel pre,.ts14-site .practice-code{background:#0e2040!important;color:#f5fbff!important;border:1px solid #294674!important;border-radius:11px}
.ts14-site pre code,.ts14-site .lesson-panel pre code,.ts14-site .practice-code code{background:transparent!important;color:inherit!important;box-shadow:none!important;border:0!important}
.ts14-site .revision-article .revision-section{box-shadow:0 6px 18px #10244608}
.ts14-site .site-footer{margin-top:16px;background:linear-gradient(120deg,#091731,#102855);border-top:3px solid #089fae}
.ts14-site .site-footer .brand-mini{color:#61eaf2}
.ts14-site .site-footer a{color:#c8eefe}
/* Responsive: six visible links on desktops and tablets, menu only on phones. */
@media screen and (min-width:1024px){
 .ts14-site .ts14-header .header-row{min-height:91px;flex-direction:row;flex-wrap:nowrap;gap:10px;padding-top:8px;padding-bottom:8px}
 .ts14-site .ts14-header .brand img{width:clamp(205px,22vw,310px);max-width:310px}
 .ts14-site #primary-navigation{display:flex!important;flex:1;width:auto;justify-content:flex-end;flex-wrap:nowrap;gap:4px}
 .ts14-site #primary-navigation a{padding:10px clamp(7px,.85vw,12px);font-size:clamp(.76rem,.94vw,.92rem)}
 .ts14-site .nav-toggle{display:none!important}
}
@media screen and (min-width:651px) and (max-width:1023px){
 .ts14-site .ts14-header .header-row{display:flex;flex-wrap:wrap;justify-content:center;gap:1px;min-height:auto;padding-top:9px;padding-bottom:9px}
 .ts14-site .ts14-header .brand{width:100%;justify-content:center}
 .ts14-site .ts14-header .brand img{width:250px;max-width:270px}
 .ts14-site .ts14-header #primary-navigation{display:flex!important;flex:0 0 100%;width:100%;flex-direction:row;flex-wrap:wrap;justify-content:center;gap:6px;padding:6px 0 0;border:0}
 .ts14-site #primary-navigation a{min-height:40px;padding:8px 13px;font-size:.88rem}
 .ts14-site .nav-toggle{display:none!important}
}
@media (max-width:1279px){.ts14-learning-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.ts14-card-image{height:145px}.ts14-card-name{font-size:1.09rem}.ts14-card-detail{font-size:.85rem}}
@media (max-width:980px){.ts14-hero-stage{grid-template-columns:1.1fr .9fr;min-height:390px}.ts14-hero-copy{padding:38px 0 30px}.ts14-hero-visual{left:42%}.ts14-feature-content{max-width:90%}.ts14-feature-visual{opacity:.55}}
@media (max-width:800px){.ts14-feature-grid{grid-template-columns:1fr}.ts14-feature-panel{min-height:295px}.ts14-feature-content{max-width:68%}.ts14-benefits-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ts14-benefits-grid>div:nth-child(2){border:0}}
@media screen and (max-width:650px){
 .ts14-site .ts14-header .header-row{min-height:73px;justify-content:space-between;flex-wrap:wrap;gap:4px;padding:6px 0}
 .ts14-site .ts14-header .brand{width:auto;flex:0 1 auto}
 .ts14-site .ts14-header .brand img{width:min(225px,57vw);max-width:225px}
 .ts14-site .ts14-header .nav-toggle{display:inline-flex!important;flex:0 0 auto;margin-left:auto;min-height:42px}
 .ts14-site .ts14-header #primary-navigation{display:none!important;flex:0 0 100%;width:100%;padding:8px 0 12px;border-top:1px solid #356f8a;flex-direction:column;align-items:stretch;gap:6px}
 .ts14-site .ts14-header #primary-navigation.is-open{display:flex!important}
 .ts14-site #primary-navigation a{justify-content:flex-start;font-size:1rem;min-height:45px;padding:10px 14px}
 .ts14-home-hero{min-height:auto}
 .ts14-hero-stage{display:block;min-height:0}
 .ts14-hero-copy{padding:31px 0 24px}
 .ts14-hero-copy h1{font-size:clamp(2.25rem,10vw,3.6rem)}
 .ts14-hero-lede{font-size:.98rem}
 .ts14-hero-visual{opacity:.28;left:20%;right:-30%;background-position:center}
 .ts14-hero-ticks{display:grid;grid-template-columns:1fr;gap:7px;font-size:.83rem}
 .ts14-hero-copy .button-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}
 .ts14-hero-copy .button-row .btn{width:100%;padding:9px;min-height:43px;font-size:.84rem}
 .ts14-section-heading{display:block}.ts14-section-heading p{margin-top:8px}
 .ts14-learning-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
 .ts14-card-image{height:95px}.ts14-card-body{padding:10px 7px;gap:6px}
 .ts14-card-name{font-size:.91rem}.ts14-card-detail{font-size:.75rem}.ts14-card-action{font-size:.75rem;padding:6px 9px}
 .ts14-benefits-grid{grid-template-columns:1fr 1fr;gap:10px}.ts14-benefits-grid>div{border:0!important;gap:7px}
 .ts14-benefits-grid>div>span{font-size:1.4rem}.ts14-benefits-grid strong{font-size:.79rem}.ts14-benefits-grid small{font-size:.72rem}
 .ts14-feature-content{max-width:100%;padding:18px}.ts14-feature-panel{min-height:0}
 .ts14-feature-visual{opacity:.24;inset:0 0 0 10%}.ts14-chip-list{grid-template-columns:repeat(3,minmax(0,1fr))}
 .ts14-site .ts14-intro .ts-intro-grid,.ts14-site .ts14-intro .ts14-intro-layout{grid-template-columns:1fr;gap:13px;min-height:0}
 .ts14-site .ts14-intro{padding:22px 0 17px}
 .ts14-site .ts14-intro h1{font-size:clamp(1.95rem,7vw,2.65rem)}
 .ts14-site .ts14-intro :is(.ts-intro-illustration,.ts14-intro-visual){max-height:155px}
 .ts14-site .ts14-intro :is(.ts-intro-illustration,.ts14-intro-visual) img{height:155px;min-height:155px;max-height:155px;object-fit:cover}
 .ts14-site .spec-pathways .pathway-card{padding:15px}
}
@media (max-width:370px){.ts14-learning-grid{grid-template-columns:1fr}.ts14-card-image{height:140px}.ts14-card-body{padding:14px}.ts14-hero-copy .button-row{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.ts14-learning-card,.ts14-site #primary-navigation a,.ts14-site .spec-pathways .pathway-card{transition:none}.ts14-learning-card:hover,.ts14-site #primary-navigation a:hover{transform:none}}
@media print{.ts14-home-hero,.ts14-route-section,.ts14-feature-strip,.ts14-benefits{background:#fff;color:#111}.ts14-site .ts14-intro{background:#fff!important;color:#111}.ts14-site .ts14-intro h1,.ts14-site .ts14-intro p{color:#111!important}.ts14-site .ts14-intro figure{display:none}}

/* TutorSyntax v15: practice panels are designed for learning, not keyword padding. */
.ts15-learning-transfer,.ts15-exam-application{max-width:1080px;margin:18px auto 28px;padding:22px 24px;border:1px solid #cddfed;border-left:5px solid #12b4bd;border-radius:16px;background:linear-gradient(135deg,#f4fbff 0%,#fbfbff 100%);box-shadow:0 8px 18px #1529510c;color:#122343}
.ts15-learning-transfer h2,.ts15-exam-application h2{font-size:clamp(1.25rem,2vw,1.6rem);color:#101a3d;margin:.3em 0 .7em}
.ts15-learning-transfer p,.ts15-exam-application p,.ts15-exam-application li{line-height:1.65}
.ts15-eyebrow{font-size:.74rem;letter-spacing:.085em;font-weight:800;color:#075e77}
.ts15-quick-check,.ts15-exam-application details{background:#fff;border:1px solid #ccdae8;border-radius:10px;padding:13px 16px;margin:14px 0}
.ts15-quick-check summary,.ts15-exam-application summary{cursor:pointer;font-weight:700;color:#17345f;line-height:1.5}
.ts15-quick-check summary:focus-visible,.ts15-exam-application summary:focus-visible{outline:3px solid #108caa;outline-offset:4px}
.ts15-quick-check p,.ts15-exam-application details p{margin-bottom:0}
.ts15-exam-application .ts15-question{font-weight:650}
.ts15-explore-link{margin-bottom:0}
.ts15-explore-link a{font-weight:750;text-underline-offset:3px}
.ts15-byline{font-size:.85rem;color:#47647a;margin:.25em 0 1em}
@media (max-width:650px){.ts15-learning-transfer,.ts15-exam-application{margin:12px 14px 22px;padding:17px 15px;border-radius:12px}}
@media print{.ts15-learning-transfer,.ts15-exam-application{border:1px solid #999!important;background:#fff!important;box-shadow:none!important;break-inside:avoid;max-width:100%;padding:14px}}
/* v15 accessibility: prevent intrinsic code width from stretching the entire lesson on phones. */
.ts14-site .lesson-layout,.ts14-site .lesson-layout > *, .ts14-site .lesson-panel { min-width:0; max-width:100%; }
.ts14-site .lesson-layout pre { width:100%; max-width:100%; overflow-x:auto; white-space:pre; }
@media (max-width:780px){.ts14-site .lesson-layout{grid-template-columns:minmax(0,1fr);} }

.ts15-cookie-settings{background:transparent;color:#caeffa;border:1px solid #759bad;border-radius:8px;padding:8px 12px;min-height:40px;margin:12px 0 4px;cursor:pointer;font:inherit;font-size:.85rem;max-width:max-content}
.ts15-cookie-settings:hover{background:#1a3659;color:#fff}
.ts15-cookie-settings:focus-visible{outline:3px solid #43dbe8;outline-offset:3px}


/* TutorSyntax v16–18 learning journeys, mini-mocks and Python missions */
.ts18-intro{background:linear-gradient(115deg,#0d1b3a 0%,#152c55 60%,#241854 100%);color:#fff;padding:clamp(2.2rem,5vw,4rem) 0}
.ts18-intro h1{color:#fff;font-size:clamp(2rem,4vw,3.25rem);max-width:20ch;margin:.3rem 0 .75rem}
.ts18-intro p{color:#e2edf8;max-width:74ch;font-size:1.08rem;line-height:1.6}
.ts18-kicker{text-transform:uppercase;font-weight:800;color:#7ce8ee;letter-spacing:.13em;font-size:.76rem}
.ts18-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:1.15rem 0}
.ts18-card{background:#fff;border:1px solid #d9e4f0;border-radius:15px;padding:1.3rem;min-width:0;box-shadow:0 4px 16px #0d20440b}
.ts18-card h3{margin:.1rem 0 .55rem;color:#112448}.ts18-card p{line-height:1.58;margin:.4rem 0 .65rem}
.ts18-card a{font-weight:700}.ts18-soft{background:#edf8fc;border-left:4px solid #078fa7;border-radius:9px;padding:.9rem 1rem;margin:1rem 0}
.ts18-flex{display:flex;flex-wrap:wrap;align-items:end;gap:1rem;margin:.8rem 0 1.25rem}
.ts18-field{display:grid;gap:.35rem;font-weight:700;font-size:.92rem;flex:1;min-width:175px;max-width:360px}
.ts18-field select,.ts18-field input,.ts18-field textarea,.ts18-textarea{padding:.75rem;border:1px solid #9eabc3;border-radius:9px;font:inherit;width:100%;background:white;color:#122443;max-width:100%;box-sizing:border-box}
.ts18-progress{width:100%;height:12px;border-radius:99px;background:#deecf1;overflow:hidden;margin:.6rem 0}
.ts18-progress>span{display:block;background:#0b9eaa;height:100%;transition:width .2s}
.ts18-path-head{background:#fff;border:1px solid #d4e3ef;border-radius:15px;padding:1rem 1.2rem;margin:1rem 0}
.ts18-topic{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem;border:1px solid #d6e0ed;border-radius:14px;padding:1.15rem;margin:1rem 0;background:#fff;align-items:center}
.ts18-topic h3{margin:.2rem 0 .4rem;color:#13294d}.ts18-topic p{margin:.3rem 0;color:#374968}
.ts18-tag{display:inline-block;background:#e8f4f8;color:#13677e;border-radius:100px;padding:.25rem .65rem;font-size:.79rem;font-weight:800}
.ts18-links{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:.6rem}.ts18-links a{font-weight:700;font-size:.9rem}
.ts18-rating{display:grid;gap:.4rem;min-width:210px}.ts18-rating label{font-size:.83rem;font-weight:750;color:#172a4d}
.ts18-rating select{padding:.68rem;border:1px solid #9dabbb;border-radius:8px;font:inherit;background:#fff;color:#17305b}
.ts18-rating--red{border-left:4px solid #c7544a}.ts18-rating--amber{border-left:4px solid #cf9430}.ts18-rating--green{border-left:4px solid #178b72}
.ts18-stage{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem}.ts18-stage>*{min-width:0}
.ts18-status{color:#115d68;font-weight:700;margin:.7rem 0}.ts18-actions{display:flex;flex-wrap:wrap;gap:.6rem;margin:.85rem 0}
.ts18-actions button,.ts18-actions a{font:inherit;border-radius:9px;padding:.75rem 1rem;cursor:pointer}
.ts18-button{border:1px solid #069ba9;background:#029bad;color:#fff;font-weight:800}
.ts18-button:hover{background:#087c88}.ts18-button.secondary{background:#fff;color:#15416a;border-color:#9bacc0}
.ts18-question{background:#fff;border:1px solid #d5e4ef;padding:1.3rem;border-radius:15px;margin:.85rem 0}
.ts18-question h3{color:#19274b}.ts18-question fieldset{border:0;margin:0;padding:0}.ts18-question fieldset label{display:block;padding:.7rem;border:1px solid #d5e2ed;border-radius:8px;margin:.45rem 0;cursor:pointer}
.ts18-question input[type=radio]{accent-color:#008f9d}.ts18-question textarea{min-height:125px}
.ts18-markpoints{background:#eef7fb;border:1px solid #ccdee9;border-radius:10px;padding:1.05rem;margin:.7rem 0}
.ts18-markpoints label{display:block;margin:.5rem 0}.ts18-markpoints input{accent-color:#0a9baa}
.ts18-code{background:#10203f!important;color:#fff!important;border:2px solid #405b7a!important;border-radius:11px;overflow-x:auto;padding:1.1rem!important;white-space:pre;font-size:.92rem;line-height:1.65}
.ts18-feedback{background:#edf8f3;border-left:4px solid #0b8b75;padding:1rem;margin:.8rem 0;border-radius:9px}
.ts18-warning{border-left:4px solid #cc8c31;background:#fff8eb;border-radius:8px;padding:.9rem 1rem}
.ts18-timer{font-variant-numeric:tabular-nums;background:#102347;color:#fff;border-radius:8px;padding:.5rem .85rem;font-weight:850;display:inline-block}
.ts18-result{padding:1rem;border:1px solid #b6dae1;background:#f2f9fd;border-radius:12px}
.ts18-hidden{display:none!important}.ts18-js-note{color:#50607b;font-size:.9rem}
@media(max-width:860px){.ts18-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.ts18-stage{grid-template-columns:repeat(2,1fr)}.ts18-topic{grid-template-columns:1fr}.ts18-rating{max-width:350px}}
@media(max-width:560px){.ts18-cards,.ts18-stage{grid-template-columns:1fr}.ts18-intro{padding:2.1rem 0}.ts18-field{max-width:none}.ts18-card,.ts18-topic{padding:1rem}.ts18-question{padding:1rem}}
@media print{.ts18-intro{background:#fff;color:#111;border-bottom:1px solid #999}.ts18-intro h1,.ts18-intro p{color:#111}.ts18-actions,.nav-toggle,.ts18-button{display:none!important}.ts18-card,.ts18-question,.ts18-topic{break-inside:avoid}}
