:root{--tt-paper: #FBFAF4;--tt-white: #FFFFFF;--tt-ink: #172036;--tt-muted: #4E566A;--tt-line: #DCDDE3;--tt-grid: #E6EBF5;--tt-yellow: #FFD43B;--sky: #D3E6FF;--sky-edge: #3D6FB8;--mint: #CFF0DB;--mint-edge: #2C8A55;--peach: #FFDDC9;--peach-edge: #C2602A;--lilac: #E5DBFF;--lilac-edge: #6A4DC4;--tt-display: "Bricolage Grotesque", system-ui, sans-serif;--tt-mono: "JetBrains Mono", ui-monospace, monospace}body{background:var(--tt-paper);color:var(--tt-ink);font:400 16px/1.6 var(--tt-display)}a{color:var(--tt-ink);text-underline-offset:3px}:focus-visible{outline:3px solid var(--tt-ink);outline-offset:2px;border-radius:4px}.wrap{max-width:1160px;margin:0 auto;padding:0 16px}@media(min-width:768px){.wrap{padding:0 32px}}h1,h2,h3{font-weight:800;line-height:1.1;letter-spacing:-.02em}.tone-sky{--tone: var(--sky);--edge: var(--sky-edge)}.tone-mint{--tone: var(--mint);--edge: var(--mint-edge)}.tone-peach{--tone: var(--peach);--edge: var(--peach-edge)}.tone-lilac{--tone: var(--lilac);--edge: var(--lilac-edge)}.tt-code{font:600 12px/1 var(--tt-mono);letter-spacing:.04em;margin-right:6px}.tt-mono{font-family:var(--tt-mono);font-size:14px}.tt-small{font-size:14px;color:var(--tt-muted)}.tt-btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:10px 20px;border:2px solid var(--tt-ink);border-radius:10px;font-weight:600;text-decoration:none;background:var(--tt-white);transition:transform .15s ease,box-shadow .15s ease;box-shadow:3px 3px 0 var(--tt-ink)}.tt-btn:hover{transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--tt-ink)}.tt-btn-ink{background:var(--tt-ink);color:var(--tt-white)}.tt-btn-ink:hover{color:var(--tt-white)}.tt-btn-yellow{background:var(--tt-yellow)}.tt-head{position:sticky;top:0;z-index:10;background:var(--tt-white);border-bottom:2px solid var(--tt-ink)}.tt-head-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:12px;padding-bottom:12px}.tt-brand{display:flex;align-items:center;gap:10px;text-decoration:none}.tt-bell{width:40px;height:40px;flex:none}.tt-name{display:block;font-weight:800;font-size:18px;line-height:1.1}.tt-sub{display:block;font-size:13px;color:var(--tt-muted)}.tt-nav ul{list-style:none;margin:0;padding:0;display:flex;gap:22px}.tt-nav a{text-decoration:none;font-weight:600;font-size:15px}.tt-nav a:hover{text-decoration:underline}.tt-head .tt-btn{min-height:40px;padding:6px 16px;box-shadow:none}@media(max-width:879px){.tt-nav{display:none}}.tt-hero{padding:48px 0 56px;background-image:linear-gradient(var(--tt-grid) 1px,transparent 1px),linear-gradient(90deg,var(--tt-grid) 1px,transparent 1px);background-size:28px 28px;border-bottom:2px solid var(--tt-ink)}.tt-hero-grid{display:grid;gap:40px}@media(min-width:960px){.tt-hero{padding:80px 0}.tt-hero-grid{grid-template-columns:1.1fr 1fr;align-items:center;gap:56px}}.tt-kicker{display:inline-block;font:600 13px/1 var(--tt-mono);text-transform:uppercase;letter-spacing:.08em;background:var(--tt-ink);color:var(--tt-white);padding:8px 10px;border-radius:6px;margin-bottom:18px}.tt-hero h1{font-size:clamp(34px,5.6vw,60px)}.tt-hero h1 mark{background:linear-gradient(transparent 55%,var(--tt-yellow) 55%);color:inherit;padding:0 2px}.tt-lead{margin-top:18px;font-size:18px;color:var(--tt-muted);max-width:34em}.tt-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:28px}.tt-day{background:var(--tt-white);border:2px solid var(--tt-ink);border-radius:16px;padding:22px;box-shadow:6px 6px 0 var(--tt-ink)}.tt-day-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:20px}.tt-day-head h2{font-size:20px}.tt-day-head span{font:600 12px/1 var(--tt-mono);color:var(--tt-muted);text-transform:uppercase}.tt-track{position:relative;height:64px;border:2px solid var(--tt-ink);border-radius:10px;background:repeating-linear-gradient(90deg,transparent 0 calc(25% - 1px),var(--tt-line) calc(25% - 1px) 25%);overflow:hidden}.tt-bar{position:absolute;top:8px;bottom:8px;background:var(--tone);border:2px solid var(--edge);border-radius:6px;display:flex;align-items:center;justify-content:center;font:600 12px/1 var(--tt-mono);overflow:hidden;white-space:nowrap}.tt-bar span{padding:0 4px;overflow:hidden;text-overflow:ellipsis}.tt-hours{display:flex;justify-content:space-between;font:400 12px/1 var(--tt-mono);color:var(--tt-muted);margin-top:8px}.tt-legend{list-style:none;padding:0;margin:20px 0 0;display:grid;gap:8px;font-size:15px}.tt-legend li{display:flex;align-items:center;gap:8px}.tt-dot{width:14px;height:14px;border-radius:4px;background:var(--tone);border:2px solid var(--edge);flex:none}.tt-section{padding:64px 0;border-bottom:2px solid var(--tt-ink)}@media(min-width:960px){.tt-section{padding:88px 0}}.tt-alt{background:var(--tt-white)}.tt-grid-bg{background-color:var(--tt-white);background-image:linear-gradient(var(--tt-grid) 1px,transparent 1px),linear-gradient(90deg,var(--tt-grid) 1px,transparent 1px);background-size:28px 28px}.tt-section-head{display:grid;gap:8px;margin-bottom:32px;max-width:46em}.tt-section-head h2,.tt-demo h2,.tt-visit h2{font-size:clamp(30px,4.4vw,46px)}.tt-section-head p:last-child:not(.tt-num){color:var(--tt-muted);font-size:17px}.tt-num{font:600 14px/1 var(--tt-mono);color:var(--tt-muted)}.tt-num:before{content:"Period "}.tt-courses{display:grid;gap:18px}@media(min-width:720px){.tt-courses{grid-template-columns:1fr 1fr}}.tt-course{background:var(--tt-white);border:2px solid var(--tt-ink);border-radius:14px;padding:24px;border-top:14px solid var(--edge)}.tt-code-lg{display:inline-block;font-size:13px;background:var(--tone);border:2px solid var(--edge);border-radius:6px;padding:4px 8px;margin-bottom:12px}.tt-course h3{font-size:24px}.tt-course-desc{margin-top:8px;color:var(--tt-muted)}.tt-course dl{margin:16px 0 0;display:grid;gap:8px}.tt-course dl div{display:grid;grid-template-columns:6em 1fr;gap:8px;border-top:1px dashed var(--tt-line);padding-top:8px;font-size:15px}.tt-course dt{color:var(--tt-muted)}.tt-course dd{margin:0;font-weight:600}.tt-table-wrap{overflow-x:auto;background:var(--tt-white);border:2px solid var(--tt-ink);border-radius:14px}.tt-table{width:100%;border-collapse:collapse;font-size:15px}.tt-table th,.tt-table td{padding:10px;border-bottom:1px solid var(--tt-line);text-align:left;vertical-align:top}.tt-table thead th{background:var(--tt-ink);color:var(--tt-white);font:600 13px/1.3 var(--tt-mono);text-transform:uppercase;letter-spacing:.04em}.tt-table tbody tr:last-child>*{border-bottom:0}.tt-time{font:600 13px/1.4 var(--tt-mono);white-space:nowrap}.tt-cell{display:block;background:var(--tone);border-left:5px solid var(--edge);border-radius:6px;padding:8px 10px;font-weight:600;min-height:100%}.tt-cell .tt-code{display:block;margin-bottom:4px}#timetable .tt-table-wrap{display:none}.tt-days{display:grid;gap:14px}@media(min-width:600px){.tt-days{grid-template-columns:1fr 1fr}}@media(min-width:900px){#timetable .tt-table-wrap{display:block}.tt-days{display:none}}.tt-daycard{background:var(--tt-white);border:2px solid var(--tt-ink);border-radius:12px;overflow:hidden}.tt-daycard h3{background:var(--tt-ink);color:var(--tt-white);font-size:16px;padding:10px 14px}.tt-daycard ul{list-style:none;margin:0;padding:8px;display:grid;gap:6px}.tt-daycard li{display:grid;grid-template-columns:8.5em 1fr;gap:8px;align-items:center;background:var(--tone);border-left:5px solid var(--edge);border-radius:6px;padding:8px 10px;font-weight:600;font-size:15px}.tt-fees{display:grid;gap:20px}@media(min-width:960px){.tt-fees{grid-template-columns:1.5fr 1fr;align-items:start}}.tt-fee-table{min-width:520px}.tt-fee-table tbody th{font-weight:600}.tt-refund{background:var(--tt-yellow);border:2px solid var(--tt-ink);border-radius:14px;padding:22px;display:grid;gap:10px}.tt-refund h3{font-size:20px}.tt-refund h3:not(:first-child){margin-top:8px}.tt-refund .tt-small{color:var(--tt-ink)}.tt-refund ul{margin:0;padding-left:20px}.tt-faculty{display:grid;gap:16px}@media(min-width:640px){.tt-faculty{grid-template-columns:1fr 1fr}}@media(min-width:1040px){.tt-faculty{grid-template-columns:repeat(4,1fr)}}.tt-teacher{display:grid;gap:14px;align-content:start;padding:20px;border:2px solid var(--tt-ink);border-radius:14px;background:var(--tt-paper)}.tt-avatar{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:var(--tt-ink);color:var(--tt-yellow);font:600 18px/1 var(--tt-mono)}.tt-teacher h3{font-size:19px}.tt-subject{font-weight:600}.tt-demo{display:grid;gap:32px}@media(min-width:960px){.tt-demo{grid-template-columns:1fr 1fr;align-items:center;gap:56px}}.tt-demo .tt-btn{margin-top:24px}.tt-steps{list-style:none;margin:0;padding:0;counter-reset:step;display:grid;gap:12px}.tt-steps li{counter-increment:step;display:grid;grid-template-columns:48px 1fr;column-gap:14px;padding:16px;background:var(--tt-white);border:2px solid var(--tt-ink);border-radius:12px}.tt-steps li:before{content:counter(step);grid-row:span 2;width:48px;height:48px;display:grid;place-items:center;border-radius:10px;background:var(--tt-yellow);border:2px solid var(--tt-ink);font:600 20px/1 var(--tt-mono)}.tt-steps strong{font-size:18px}.tt-steps span{color:var(--tt-muted);font-size:15px}.tt-faq{display:grid;gap:10px;max-width:820px}.tt-faq details{border:2px solid var(--tt-ink);border-radius:12px;background:var(--tt-paper)}.tt-faq summary{cursor:pointer;padding:16px 18px;font-weight:600;font-size:17px;list-style:none;display:flex;justify-content:space-between;gap:12px}.tt-faq summary::-webkit-details-marker{display:none}.tt-faq summary:after{content:"+";font:600 20px/1 var(--tt-mono)}.tt-faq details[open] summary:after{content:"−"}.tt-faq details p{padding:0 18px 18px;color:var(--tt-muted)}.tt-visit{display:grid;gap:28px}@media(min-width:900px){.tt-visit{grid-template-columns:1fr 1fr;gap:56px}}.tt-visit address{font-style:normal;margin-top:16px;font-size:18px;line-height:1.7}.tt-contact{margin-top:16px;line-height:2}.tt-office{background:var(--tt-white);border:2px solid var(--tt-ink);border-radius:14px;padding:22px;align-self:start}.tt-office h3{font-size:20px;margin-bottom:10px}.tt-office table{width:100%;border-collapse:collapse;margin-bottom:12px}.tt-office th,.tt-office td{padding:10px 0;border-bottom:1px dashed var(--tt-line);text-align:left;font-weight:400}.tt-office td{text-align:right}.tt-foot{background:var(--tt-ink);color:#d7dce8;padding:40px 0 104px}@media(min-width:768px){.tt-foot{padding-bottom:48px}}.tt-foot .wrap{display:grid;gap:8px}.tt-foot-name{font-weight:800;font-size:20px;color:var(--tt-white)}.tt-foot .tt-small{color:#b7bece;max-width:52em}
