.subsite{background:var(--canvas);color:var(--ink)}
.subsite [hidden]{display:none!important}.subsite a{color:inherit}.subsite button,.subsite input{font:inherit}.subsite a:focus-visible,.subsite button:focus-visible,.subsite input:focus-visible,.subsite pre:focus-visible{outline:2px solid var(--focus);outline-offset:5px}
.sub-header,.sub-footer,.oi-main,.notebook-main{width:min(1180px,calc(100% - 80px));margin-inline:auto}.sub-header{display:flex;align-items:center;gap:32px;padding:27px 0;border-bottom:1px solid var(--line)}.sub-header nav{display:flex;gap:28px;margin-left:auto}.sub-header nav a{font-size:14px;text-decoration:none;color:var(--muted);padding:10px 0}.sub-header nav a[aria-current]{color:var(--ink);border-bottom:2px solid var(--moss)}.sub-footer{display:flex;justify-content:space-between;gap:20px;padding:30px 0;margin-top:70px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.sub-footer a{text-decoration:none}
.eyebrow{font-size:11px;letter-spacing:.15em;font-weight:600;color:var(--muted)}.subsite h1{max-width:none;font-size:clamp(40px,5vw,66px);line-height:1.2;letter-spacing:-.045em;margin:23px 0}.subsite h1 em{font-style:normal;color:var(--moss)}.lead{font-size:16px;line-height:1.9;color:var(--ink-soft)}.oi-intro{display:grid;grid-template-columns:1.4fr 1fr;align-items:center;gap:80px;padding:82px 0}.contest-note{padding:32px;border:1px solid var(--line);background:var(--surface);border-radius:4px 30px 4px 4px;transform:rotate(2deg);box-shadow:var(--shadow-card)}.code-art{font-family:Consolas,monospace;font-size:22px;line-height:1.8;color:var(--moss);margin:24px 0}.contest-note a{display:block;font-size:14px;padding-top:18px;border-top:1px solid var(--line);text-decoration:none}.oi-section{display:grid;grid-template-columns:240px 1fr;gap:40px;border-top:1px solid var(--line);padding:38px 0}.section-label>span{font-size:10px;letter-spacing:.13em;color:var(--muted)}.section-label h2{font-size:22px;margin-top:12px}.platforms{display:grid;grid-template-columns:1fr 1fr;gap:14px}.platform{display:flex;align-items:center;gap:17px;border:1px solid var(--line);padding:22px;background:var(--surface);text-decoration:none;border-radius:8px;transition:border-color .15s,transform .15s}.platform:hover{border-color:var(--moss);transform:translateY(-2px)}.platform>span:last-child{margin-left:auto}.platform-mark{font-family:Consolas,monospace;font-size:18px;color:var(--moss);width:30px}.platform h3{font-size:16px;margin:0}.platform p{font-size:12px;color:var(--muted);margin:5px 0 0}.team{display:grid;grid-template-columns:170px 1fr;gap:22px;padding:15px 0 26px}.team+.team{border-top:1px solid var(--line);padding-top:26px}.team p{color:var(--muted);font-size:13px;margin:4px 0}.team h3{font-size:24px;margin:0 0 9px}.status{font-size:11px;color:var(--moss)}.awards{display:flex;gap:24px;align-items:center;padding:25px;background:var(--surface);border:1px dashed var(--line);border-radius:8px}.awards>span{font-size:35px;color:var(--moss)}.awards h3{font-size:18px;margin:0}.awards p{font-size:14px;color:var(--muted);margin:8px 0 0}
.notebook-intro{padding:55px 0 35px}.notebook-intro h1{font-size:48px}.notebook-intro h1 span{color:var(--moss)}.notebook-meta{display:flex;flex-wrap:wrap;gap:24px;font-size:12px;color:var(--muted);margin-top:25px}.notebook-meta a{text-underline-offset:4px}.notebook-layout{display:grid;grid-template-columns:245px minmax(0,1fr);gap:50px;border-top:1px solid var(--line)}.notebook-sidebar{position:sticky;top:20px;align-self:start;max-height:calc(100dvh - 40px);overflow:auto;padding:28px 14px 20px 0;scrollbar-width:thin}.notebook-sidebar label{font-size:13px;font-weight:600}.search-field{display:flex;margin-top:10px;background:var(--surface);border:1px solid var(--line);border-radius:6px;overflow:visible}.search-field input{min-width:0;width:100%;border:0;background:transparent;color:var(--ink);padding:12px 9px;font-size:12px}.search-field button{border:0;background:transparent;color:var(--muted);min-width:36px;cursor:pointer}.notebook-sidebar #search-status{font-size:11px;color:var(--muted);margin:10px 0 26px}.nav-group h3{font-size:12px;margin:24px 0 10px}.nav-group a{display:block;padding:7px 10px;font-size:12px;line-height:1.6;text-decoration:none;color:var(--muted);border-left:1px solid var(--line)}.nav-group a:hover{color:var(--ink);border-color:var(--moss);background:var(--surface)}.notebook-articles{min-width:0;padding-top:25px}.template-group>h2{font-size:27px;padding:8px 0 20px;border-bottom:1px solid var(--line);margin:0 0 25px}.template-group+.template-group{margin-top:70px}.template{scroll-margin-top:24px;margin-bottom:42px}.template>h3{display:flex;gap:15px;font-size:19px;margin:0 0 16px}.template>h3>a{color:var(--muted);font-weight:400;text-decoration:none}.code-box{border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--surface)}.code-bar{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;border-bottom:1px solid var(--line);color:var(--muted);font-size:11px}.copy-code{min-height:30px;padding:3px 10px;border:1px solid var(--line);border-radius:5px;background:var(--canvas);color:var(--ink);cursor:pointer}.subsite pre{margin:0;padding:20px;overflow:auto;max-height:620px;tab-size:4;font-size:13px;line-height:1.75;color:var(--ink-soft);scrollbar-width:thin}.subsite code{font-family:Consolas,'Courier New',monospace}.source-note{font-size:14px;line-height:1.9;overflow-wrap:anywhere}.empty-search{padding:30px 0;color:var(--muted)}.copy-status:not(:empty){position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:var(--action);color:var(--on-action);padding:12px 22px;border-radius:8px;z-index:5}.back-top{display:block;text-align:right;margin-top:35px;font-size:13px}
@media(max-width:800px){.sub-header,.sub-footer,.oi-main,.notebook-main{width:calc(100% - 40px)}.oi-intro{gap:30px;padding:50px 0}.contest-note{padding:22px}.code-art{font-size:17px}.oi-section{grid-template-columns:1fr;gap:20px}.notebook-layout{grid-template-columns:200px minmax(0,1fr);gap:24px}}
@media(max-width:580px){.sub-header{gap:18px;padding:18px 0}.sub-header nav{gap:18px}.sub-header .brand{font-size:30px}.oi-intro{grid-template-columns:1fr;padding:40px 0;gap:25px}.subsite h1{font-size:42px}.contest-note{transform:none}.code-art{font-size:19px;margin:14px 0}.platforms{grid-template-columns:1fr}.team{grid-template-columns:1fr;gap:10px}.sub-footer{flex-direction:column;gap:10px;margin-top:45px}.notebook-layout{display:block}.notebook-sidebar{position:static;max-height:none;padding-right:0}.template-nav{max-height:230px;overflow:auto;border-bottom:1px solid var(--line);padding-bottom:15px}.notebook-intro{padding-top:35px}.notebook-meta{gap:13px}.notebook-articles{padding-top:30px}.subsite pre{font-size:12px;padding:14px}.template>h3{font-size:18px}}
@media(prefers-reduced-motion:reduce){.platform{transition:none}.platform:hover{transform:none}}
.oj-stats-status{grid-column:1/-1;margin:0 0 2px;font-size:11px;color:var(--muted);text-align:right}.platform{min-width:0}.judge-avatar{position:relative;flex:0 0 58px;width:58px;height:58px;border-radius:50%;background:var(--canvas);border:1px solid var(--line);overflow:hidden}.judge-avatar img{position:absolute;inset:3px;width:50px;height:50px;border-radius:50%;object-fit:cover;background:var(--surface)}.judge-avatar .platform-mark{position:absolute;right:-1px;bottom:-1px;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--action);color:var(--on-action);border:2px solid var(--surface);font-size:9px;font-weight:700}.judge-stats{display:flex;gap:18px;margin:0 8px 0 auto}.judge-stats div{min-width:54px}.judge-stats dt{font-size:10px;color:var(--muted);margin-bottom:5px}.judge-stats dd{margin:0;font:600 17px/1.2 Consolas,monospace;color:var(--ink)}.judge-stats .rating{color:var(--rating-color,var(--ink))}.judge-stats .rating small{display:block;margin-top:4px;font:500 9px/1.2 "Segoe UI",sans-serif;text-transform:capitalize;white-space:nowrap}.rating-newbie{--rating-color:#777}.rating-pupil{--rating-color:#258329}.rating-specialist{--rating-color:#007f78}.rating-expert{--rating-color:#3156b8}.rating-candidate-master{--rating-color:#8b36a8}.rating-master,.rating-international-master{--rating-color:#c05600}.rating-grandmaster,.rating-international-grandmaster,.rating-legendary-grandmaster{--rating-color:#c62828}
@media(max-width:800px){.platform{flex-wrap:wrap}.judge-stats{width:100%;margin:5px 0 0 75px}.oj-stats-status{text-align:left}}
@media(max-width:580px){.judge-avatar{flex-basis:54px;width:54px;height:54px}.judge-avatar img{width:46px;height:46px}.judge-stats{margin-left:71px}.judge-stats dd{font-size:16px}}

.template-nav{display:block}.nav-group{display:block}
