Level 1 演算法班課程介紹
此課程適合希望學習競賽相關的演算法 / 挑戰 APCS 實作中高級以上 / 拼資奧的學生。 課程概述 Leve […]
:root {
--aacp-bg: #f5f4f7;
--aacp-bg-soft: #f8f9fa;
--aacp-surface: #ffffff;
--aacp-surface-muted: #f9fafb;
--aacp-text: #2f3033;
--aacp-text-muted: #676b73;
--aacp-link: #00a896;
--aacp-link-hover: #00786c;
--aacp-accent: #00a896;
--aacp-header-bg: rgba(248, 250, 252, 0.92);
--aacp-header-link: #2f3440;
--aacp-footer-bg: #15181d;
--aacp-footer-text: #b1b6c0;
--aacp-g-blue: #4285f4;
--aacp-g-red: #ea4335;
--aacp-g-yellow: #fbbc05;
--aacp-g-green: #34a853;
/* Elementor global tokens */
--e-global-color-primary: #00a896;
--e-global-color-secondary: var(--aacp-text-muted);
--e-global-color-text: var(--aacp-text);
--e-global-color-accent: #00a896;
}
html,
body {
color: var(--aacp-text);
background:
radial-gradient(1200px 560px at 12% -180px, rgba(0, 168, 150, 0.14) 0%, rgba(255, 255, 255, 0) 58%),
radial-gradient(860px 340px at 90% -60px, rgba(66, 133, 244, 0.12) 0%, rgba(255, 255, 255, 0) 66%),
radial-gradient(760px 300px at 72% 0%, rgba(251, 188, 5, 0.08) 0%, rgba(255, 255, 255, 0) 62%),
linear-gradient(180deg, var(--aacp-bg-soft) 0%, var(--aacp-bg) 100%);
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
a {
color: var(--aacp-link);
transition: color 0.18s ease;
}
a:hover,
a:focus,
a:active {
color: var(--aacp-link-hover);
}
::selection {
background: rgba(0, 168, 150, 0.2);
}
/* Header — Style 20 Floating Glass Orbs (Dark) */
.site-header {
position: sticky;
top: 0;
z-index: 140;
background: linear-gradient(135deg, #0d1117 0%, #141b2e 100%);
border-bottom: 1px solid rgba(0, 168, 150, 0.12);
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
overflow: visible;
}
.site-header::after {
display: none;
}
.site-header-inner {
width: min(1360px, calc(100% - 24px));
margin: 0 auto;
min-height: 68px;
display: flex;
align-items: center;
justify-content: center;
gap: 8px;
padding: 10px 0;
flex-wrap: wrap;
}
/* ── Logo (no orb, just the image) ── */
.site-branding {
flex: 0 0 auto;
}
.site-branding a,
.site-branding .custom-logo-link {
display: inline-flex;
align-items: center;
text-decoration: none;
background: none;
padding: 4px 8px;
border: none;
box-shadow: none;
transition: transform .3s, filter .3s;
}
.site-branding a::before {
display: none;
}
.site-branding a:hover {
transform: translateY(-2px) scale(1.05);
filter: brightness(1.2);
box-shadow: none;
}
/* Hidden — replaced by text logo */
.site-header .custom-logo {
display: none;
}
/* ── Nav text logo: 3D perspShift + shimmer ── */
@keyframes navPerspShift {
0%, 100% { transform: perspective(500px) rotateY(-12deg) rotateX(3deg); }
50% { transform: perspective(500px) rotateY(12deg) rotateX(-3deg); }
}
@keyframes navShine {
to { background-position: 200% center; }
}
.nav-logo-text {
display: inline-flex !important;
align-items: center;
gap: 0;
font-size: clamp(1.5rem, 2.2vw, 2rem);
font-weight: 900;
font-family: "Noto Sans TC", sans-serif;
line-height: 1;
letter-spacing: -.02em;
text-decoration: none !important;
animation: navPerspShift 5s ease-in-out infinite;
transform-style: preserve-3d;
}
.nav-logo-aa,
.nav-logo-zj {
background: linear-gradient(120deg, #a8f0e8, #fff, #00e8d4, #00a896, #e8c880, #fff, #a8f0e8);
background-size: 200% auto;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
animation: navShine 7s linear infinite;
}
.nav-logo-aa {
margin-right: .15em;
}
.site-branding__name {
display: inline-flex;
align-items: center;
font-size: 1.15rem;
font-weight: 900;
color: #fff;
}
/* ── Nav orb items ── */
.site-nav {
min-width: 0;
margin-left: 0;
}
.site-nav-legacy {
flex: 0 1 auto;
display: flex;
justify-content: center;
}
.site-nav ul,
.site-nav .menu,
.site-nav .page_item_has_children > ul {
list-style: none;
margin: 0;
padding: 0;
}
.site-nav .menu,
.site-nav > div > ul {
display: flex;
align-items: center;
gap: 5px;
flex-wrap: nowrap;
}
.site-nav .menu > li {
flex: 0 0 auto;
background: radial-gradient(circle at 30% 30%, rgba(255,255,255,.08), rgba(255,255,255,.02));
border-radius: 50px;
border: 1px solid rgba(255,255,255,.07);
box-shadow: 0 3px 12px rgba(0,0,0,.15), inset 0 1px 1px rgba(255,255,255,.04);
transition: all .35s cubic-bezier(.175,.885,.32,1.275);
position: relative;
overflow: hidden;
}
.site-nav .menu > li::before {
content: '';
position: absolute;
top: -50%;
left: -50%;
width: 80%;
height: 80%;
background: radial-gradient(circle, rgba(255,255,255,.06), transparent);
border-radius: 50%;
pointer-events: none;
}
.site-nav .menu > li:hover {
transform: translateY(-3px) scale(1.06);
background: radial-gradient(circle at 30% 30%, rgba(0,168,150,.15), rgba(255,255,255,.05));
border-color: rgba(0,168,150,.3);
box-shadow: 0 8px 24px rgba(0,168,150,.18);
}
.site-nav a {
color: rgba(255,255,255,.65);
text-decoration: none;
font-weight: 600;
font-size: clamp(1rem, 1.08vw, 1.13rem);
letter-spacing: 0.01em;
display: inline-flex;
align-items: center;
gap: 7px;
min-height: auto;
padding: 9px 18px;
white-space: nowrap;
position: relative;
z-index: 1;
transition: color .3s;
}
.site-nav .menu > li:hover a {
color: #fff;
}
.site-nav .menu > li:first-child > a {
color: rgba(255,255,255,.65);
}
/* ── is-hot (暑期營隊) — glowing orb with animation ── */
.site-nav .menu > li.is-hot {
background: radial-gradient(circle at 30% 30%, rgba(0,168,150,.4), rgba(0,168,150,.12));
border-color: rgba(0,168,150,.45);
box-shadow: 0 4px 20px rgba(0,168,150,.25);
animation: aacp-hot-glow 2.5s ease-in-out infinite;
order: -1;
}
.site-nav .menu > li.is-hot > a {
color: #fff !important;
font-weight: 700;
padding: 7px 16px;
background: none;
border-radius: 0;
box-shadow: none;
}
.site-nav .menu > li.is-hot:hover {
transform: translateY(-3px) scale(1.1);
box-shadow: 0 10px 35px rgba(0,168,150,.35);
}
@keyframes aacp-hot-glow {
0%, 100% { box-shadow: 0 4px 20px rgba(0,168,150,.25); border-color: rgba(0,168,150,.45); }
50% { box-shadow: 0 4px 30px rgba(0,168,150,.45), 0 0 12px rgba(0,168,150,.2); border-color: rgba(0,168,150,.6); }
}
/* ── Nav icon (SVG) ── */
.aacp-nav-icon {
line-height: 1;
display: inline-flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
width: 16px;
height: 16px;
opacity: .7;
}
.site-nav .menu > li:hover .aacp-nav-icon {
opacity: 1;
}
.aacp-nav-icon svg {
width: 16px;
height: 16px;
}
/* Nav label + description */
.aacp-nav-label {
display: flex;
flex-direction: column;
gap: 1px;
line-height: 1.2;
}
.aacp-nav-title {
font-weight: 600;
font-size: clamp(1rem, 1.08vw, 1.13rem);
white-space: nowrap;
}
.aacp-nav-desc {
font-size: 0.6rem;
font-weight: 500;
color: rgba(255,255,255,.35);
letter-spacing: 0.01em;
white-space: nowrap;
}
/* Active state indicator */
.site-nav .menu > li.is-current {
border-color: rgba(0,168,150,.35);
background: radial-gradient(circle at 30% 30%, rgba(0,168,150,.12), rgba(255,255,255,.04));
}
.site-nav .menu > li.is-current > a {
color: #00d4aa;
position: relative;
}
.site-nav .menu > li.is-current > a::after {
content: '';
position: absolute;
bottom: 2px;
left: 50%;
transform: translateX(-50%);
width: 14px;
height: 2px;
border-radius: 99px;
background: #00a896;
}
/* ── Hamburger button — hidden on desktop ── */
.aacp-burger {
display: none;
align-items: center;
justify-content: center;
width: 42px;
height: 42px;
border-radius: 50px;
border: 1px solid rgba(255,255,255,.1);
background: radial-gradient(circle at 30% 30%, rgba(255,255,255,.08), rgba(255,255,255,.02));
cursor: pointer;
color: #fff;
flex-shrink: 0;
margin-left: 8px;
transition: all .3s;
box-shadow: 0 3px 12px rgba(0,0,0,.15);
}
.aacp-burger:hover {
background: radial-gradient(circle at 30% 30%, rgba(0,168,150,.15), rgba(255,255,255,.05));
border-color: rgba(0,168,150,.3);
box-shadow: 0 6px 20px rgba(0,168,150,.15);
}
.aacp-burger svg {
width: 20px;
height: 20px;
display: block;
}
.site-header-cta {
display: none;
}
/* Footer */
.site-footer {
margin-top: 0;
background: var(--aacp-footer-bg);
color: var(--aacp-footer-text);
}
.site-footer-inner {
width: min(1220px, calc(100% - 32px));
margin: 0 auto;
padding: 24px 0;
}
.site-footer p {
margin: 0;
}
/* Content readability for post/page fallback templates */
.site-main {
width: min(1100px, calc(100% - clamp(16px, 3.2vw, 40px)));
margin: clamp(18px, 2.2vw, 28px) auto 44px;
}
.single .site-main,
.page .site-main {
width: min(1180px, calc(100% - clamp(16px, 3.2vw, 40px)));
}
.single .site-main article,
.page .site-main article {
border: 1px solid rgba(17, 24, 39, 0.1);
border-radius: 18px;
background: #f5f4f7;
box-shadow: 0 8px 22px rgba(15, 23, 42, 0.05);
padding: clamp(18px, 3.8vw, 44px);
}
.blog .site-main article,
.archive .site-main article,
.search .site-main article {
border: 1px solid rgba(17, 24, 39, 0.08);
border-radius: 14px;
background: rgba(255, 255, 255, 0.97);
box-shadow: 0 3px 12px rgba(15, 23, 42, 0.04);
padding: 18px 20px;
transition: transform 0.16s ease, box-shadow 0.16s ease, border-color 0.16s ease;
}
.blog .site-main article:hover,
.archive .site-main article:hover,
.search .site-main article:hover {
transform: translateY(-1px);
border-color: rgba(0, 168, 150, 0.3);
box-shadow: 0 8px 20px rgba(15, 23, 42, 0.08);
}
.blog .site-main article + article,
.archive .site-main article + article,
.search .site-main article + article {
margin-top: 12px;
}
.site-main .entry-header {
margin-bottom: 14px;
}
.site-main .entry-title,
.site-main .page-title {
margin: 0;
font-size: clamp(1.75rem, 4.6vw, 2.5rem);
letter-spacing: -0.02em;
line-height: 1.2;
}
.site-main .entry-content,
.site-main .entry-summary,
.site-main .archive-description {
font-size: clamp(0.98rem, 1.2vw, 1.08rem);
line-height: 1.86;
color: #4a4f57;
}
.single .site-main .entry-content,
.page .site-main .entry-content {
max-width: 100%;
}
.site-main .entry-content p,
.site-main .entry-summary p {
margin: 0 0 1.06em;
}
.site-main .entry-content > * {
max-width: 100%;
}
.site-main .entry-content li,
.site-main .entry-summary li {
margin-bottom: 0.38em;
color: #3f434b;
}
.site-main .entry-content ul,
.site-main .entry-content ol {
margin: 0 0 1.15em;
padding-left: 1.26em;
}
.site-main .entry-content h2 {
margin-top: 1.8em;
margin-bottom: 0.65em;
line-height: 1.34;
letter-spacing: -0.01em;
padding-bottom: 0.24em;
border-bottom: 1px solid rgba(17, 24, 39, 0.1);
}
.site-main .entry-content h3 {
margin-top: 1.45em;
margin-bottom: 0.58em;
line-height: 1.35;
letter-spacing: -0.01em;
}
.site-main .entry-content h4 {
margin-top: 1.25em;
margin-bottom: 0.45em;
line-height: 1.4;
}
.site-main .entry-content blockquote {
margin: 1.35em 0;
padding: 14px 16px;
border-left: 4px solid rgba(0, 168, 150, 0.46);
border-radius: 10px;
background: #f6fbfb;
}
.site-main .entry-content blockquote p:last-child {
margin-bottom: 0;
}
.site-main .entry-content table {
width: 100%;
border-collapse: collapse;
margin: 1.2em 0;
font-size: clamp(0.9rem, 1.05vw, 0.98rem);
display: block;
overflow-x: auto;
-webkit-overflow-scrolling: touch;
}
.site-main .entry-content th,
.site-main .entry-content td {
padding: 10px 12px;
border: 1px solid rgba(17, 24, 39, 0.12);
}
.site-main .entry-content th {
background: #f6f8fa;
font-weight: 700;
}
.site-main .entry-content code,
.site-main .entry-summary code {
padding: 0.1em 0.34em;
border-radius: 6px;
background: #f4f7f9;
font-size: 0.92em;
}
.site-main .entry-content pre {
max-width: 100%;
overflow-x: auto;
border-radius: 12px;
padding: 14px;
background: #f4f7f9;
}
.site-main .entry-content a:not(.elementor-button),
.site-main .entry-summary a,
.site-main .entry-title a,
.site-main .page-title a {
position: relative;
z-index: 2;
color: var(--aacp-link);
text-decoration: underline;
text-decoration-color: rgba(0, 168, 150, 0.4);
text-underline-offset: 3px;
}
.site-main .entry-content a:not(.elementor-button):hover,
.site-main .entry-summary a:hover,
.site-main .entry-title a:hover,
.site-main .page-title a:hover {
color: var(--aacp-link-hover);
}
.site-main img {
max-width: 100%;
height: auto;
border-radius: 12px;
}
.site-main iframe,
.site-main video,
.site-main canvas,
.site-main svg {
max-width: 100%;
}
.site-main .wp-block-image {
margin: 1.25em 0;
}
/* Preserve original Elementor-designed article layouts */
body.aacp-elementor-builder .site-main {
width: min(1360px, calc(100% - clamp(12px, 2.4vw, 30px)));
}
body.aacp-elementor-builder .site-main article {
border: none;
border-radius: 0;
background: transparent;
box-shadow: none;
padding: 0;
}
body.aacp-elementor-builder .site-main .entry-content {
max-width: 100%;
font-size: inherit;
line-height: inherit;
color: inherit;
}
body.aacp-elementor-builder .site-main .entry-content > * {
max-width: 100%;
}
body.aacp-elementor-builder .site-main .entry-content h2,
body.aacp-elementor-builder .site-main .entry-content h3,
body.aacp-elementor-builder .site-main .entry-content h4 {
padding-bottom: 0;
border-bottom: 0;
}
/* Keep Elementor CTA buttons high-contrast and vivid */
body.aacp-elementor-builder .site-main .elementor-widget-button .elementor-button {
color: #ffffff !important;
text-decoration: none !important;
font-weight: 800;
letter-spacing: 0.01em;
text-shadow: 0 1px 1px rgba(0, 0, 0, 0.14);
box-shadow: 0 10px 24px rgba(15, 23, 42, 0.2);
transition: transform 0.18s ease, box-shadow 0.18s ease, filter 0.18s ease;
}
body.aacp-elementor-builder .site-main .elementor-widget-button .elementor-button .elementor-button-icon,
body.aacp-elementor-builder .site-main .elementor-widget-button .elementor-button .elementor-button-icon i,
body.aacp-elementor-builder .site-main .elementor-widget-button .elementor-button .elementor-button-icon svg {
color: currentColor !important;
fill: currentColor !important;
}
body.aacp-elementor-builder .site-main .elementor-widget-button .elementor-button:hover,
body.aacp-elementor-builder .site-main .elementor-widget-button .elementor-button:focus {
color: #ffffff !important;
transform: translateY(-2px);
box-shadow: 0 14px 30px rgba(15, 23, 42, 0.24);
filter: saturate(1.08);
}
body.aacp-elementor-builder .site-main .elementor-widget-button .elementor-button[href*="instagram.com"] {
background: linear-gradient(135deg, #cc2f86 0%, #405de6 100%) !important;
}
body.aacp-elementor-builder .site-main .elementor-widget-button .elementor-button[href*="line.me"] {
background: #06c755 !important;
}
body.aacp-elementor-builder .site-main .elementor-widget-button .elementor-button[href*="facebook.com"] {
background: #1877f2 !important;
}
body.aacp-elementor-builder .site-main .elementor-widget-button .elementor-button[href*="youtube.com"] {
background: #ff0000 !important;
}
/* Floating actions: FAQ first, LINE second */
.aacp-floating-actions {
position: fixed;
right: 14px;
bottom: 14px;
z-index: 120;
display: grid;
gap: 8px;
justify-items: end;
}
.aacp-floating-faq,
.aacp-floating-line {
display: inline-flex;
align-items: center;
justify-content: center;
min-height: 42px;
border-radius: 999px;
font-size: 0.88rem;
font-weight: 700;
text-decoration: none;
box-shadow: 0 10px 24px rgba(18, 24, 38, 0.14);
white-space: nowrap;
}
.aacp-floating-faq {
padding: 9px 14px;
border: 1px solid rgba(0, 168, 150, 0.28);
background: #ffffff;
color: #036f64;
}
.aacp-floating-faq:hover,
.aacp-floating-faq:focus {
background: #f1fffd;
color: #02564e;
}
.aacp-floating-line {
padding: 9px 16px;
border: 1px solid transparent;
background: #00a896;
color: #ffffff;
}
.aacp-floating-line:hover,
.aacp-floating-line:focus {
background: #008b7d;
color: #ffffff;
}
/* ── Scroll-to-top button — lives inside .aacp-floating-actions ── */
/* Slightly smaller (46px) than LINE/FAQ buttons to show visual hierarchy */
#aacp-scroll-top {
width: 46px;
height: 0; /* collapses when hidden — avoids gap in floating group */
overflow: hidden;
border-radius: 60% 40% 30% 70% / 60% 30% 70% 40%;
background: rgba(0, 168, 150, 0.82);
border: none;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
box-shadow: 0 3px 10px rgba(0, 168, 150, 0.22);
opacity: 0;
transform: scale(0.88);
pointer-events: none;
transition: height 0.32s ease, opacity 0.28s ease, transform 0.38s ease,
border-radius 0.4s ease, box-shadow 0.3s ease;
align-self: center;
}
#aacp-scroll-top.aacp-stt-show {
height: 46px;
opacity: 1;
transform: scale(1);
pointer-events: auto;
}
#aacp-scroll-top:hover {
border-radius: 50%;
background: #00a896;
transform: translateY(-2px) scale(1);
box-shadow: 0 8px 20px rgba(0, 168, 150, 0.38);
}
#aacp-scroll-top svg {
width: 20px;
height: 20px;
stroke: #fff;
fill: none;
stroke-width: 2.4;
stroke-linecap: round;
stroke-linejoin: round;
flex-shrink: 0;
}
/* ── Breadcrumb ── */
.aacp-bc {
max-width: min(1200px, calc(100% - 32px));
margin: 10px auto 0;
padding: 0 20px;
font-size: .78rem;
color: #94a3b8;
display: flex;
align-items: center;
gap: 6px;
flex-wrap: wrap;
}
.aacp-bc a { color: #64748b; text-decoration: none; transition: color .15s; }
.aacp-bc a:hover { color: #00a896; }
.aacp-bc > span:last-child { color: #1e293b; font-weight: 600; }
/* Elementor section container base */
.elementor-section.elementor-section-boxed > .elementor-container {
background-color: transparent;
}
@media (max-width: 980px) {
.site-header-inner {
width: calc(100% - 12px);
gap: 6px;
min-height: 60px;
}
.site-nav {
margin-left: auto;
overflow-x: auto;
scrollbar-width: none;
-webkit-overflow-scrolling: touch;
}
.site-nav::-webkit-scrollbar {
display: none;
}
.site-nav .menu,
.site-nav > div > ul {
gap: 5px;
flex-wrap: nowrap;
}
.site-nav a {
font-size: 0.82rem;
padding: 6px 11px;
}
.site-nav .menu > li.is-hot > a {
padding: 6px 13px;
}
.aacp-floating-actions {
right: 10px;
bottom: 10px;
}
}
/* ── Mobile nav (hamburger) ──────────────────── */
@media (max-width: 720px) {
.site-header {
overflow: visible;
}
.site-header-inner {
justify-content: space-between;
padding: 8px 0;
}
.aacp-burger {
display: flex;
}
/* Dropdown panel — dark glass morphism */
.site-nav {
position: absolute;
top: 100%;
left: 0;
right: 0;
z-index: 200;
background: linear-gradient(180deg, rgba(13,17,23,.97), rgba(20,27,46,.97));
backdrop-filter: blur(20px) saturate(140%);
border-bottom: 1px solid rgba(0,168,150,.18);
box-shadow: 0 12px 40px rgba(0,0,0,.4);
max-height: 0;
overflow: hidden;
transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1);
margin-left: 0;
flex: none;
overflow-x: hidden;
scrollbar-width: auto;
}
.site-nav::-webkit-scrollbar {
display: block;
}
.site-header.aacp-nav-open .site-nav {
max-height: 80vh;
overflow-y: auto;
}
.site-nav .menu,
.site-nav > div > ul {
flex-direction: column;
align-items: stretch;
gap: 4px;
padding: 10px 12px 14px;
flex-wrap: wrap;
}
/* Reset desktop orb styles for mobile list items */
.site-nav .menu > li {
flex: none;
border-radius: 14px;
background: radial-gradient(circle at 30% 30%, rgba(255,255,255,.06), rgba(255,255,255,.015));
border: 1px solid rgba(255,255,255,.06);
box-shadow: 0 2px 8px rgba(0,0,0,.12);
overflow: hidden;
}
.site-nav .menu > li::before {
display: none;
}
.site-nav .menu > li:hover,
.site-nav .menu > li:active {
transform: none;
background: radial-gradient(circle at 30% 30%, rgba(0,168,150,.12), rgba(255,255,255,.04));
border-color: rgba(0,168,150,.25);
box-shadow: 0 4px 16px rgba(0,168,150,.12);
}
.site-nav a {
min-height: 52px;
padding: 12px 16px;
font-size: 0.95rem;
gap: 12px;
justify-content: flex-start;
align-items: center;
white-space: normal;
color: rgba(255,255,255,.7);
border-bottom: none;
}
.site-nav .menu > li:hover a,
.site-nav .menu > li:active a {
color: #fff;
}
.site-nav .menu > li:last-child > a {
border-bottom: none;
}
.aacp-nav-desc {
color: rgba(255,255,255,.35);
font-size: 0.72rem;
}
/* Active indicator: left teal bar on mobile */
.site-nav .menu > li.is-current {
border-color: rgba(0,168,150,.35);
background: radial-gradient(circle at 30% 30%, rgba(0,168,150,.1), rgba(255,255,255,.03));
}
.site-nav .menu > li.is-current > a {
color: #00d4aa;
}
.site-nav .menu > li.is-current > a::after {
bottom: auto;
top: 50%;
left: 0;
transform: translateY(-50%);
width: 3px;
height: 26px;
border-radius: 0 3px 3px 0;
}
/* is-hot: glowing teal card in mobile menu, stays first */
.site-nav .menu > li.is-hot {
background: radial-gradient(circle at 30% 30%, rgba(0,168,150,.3), rgba(0,168,150,.08));
border-color: rgba(0,168,150,.35);
box-shadow: 0 4px 18px rgba(0,168,150,.2);
animation: aacp-hot-glow 2.5s ease-in-out infinite;
order: -1;
}
.site-nav .menu > li.is-hot > a {
color: #fff !important;
font-weight: 700;
padding: 12px 16px;
border-radius: 0;
box-shadow: none;
background: none;
}
/* Nav icon sizing for mobile */
.aacp-nav-icon {
width: 18px;
height: 18px;
}
.aacp-nav-icon svg {
width: 18px;
height: 18px;
}
/* Hero: pill text shift down & logo shrink on mobile */
.fp-hero-pill {
margin-top: 20px;
}
.fp-h1-main img {
width: clamp(320px, 55vw, 680px);
}
/* Hero buttons: stack on very small screens */
.fp-hero-btns {
flex-direction: column;
align-items: center;
gap: 12px;
}
.fp-btn-p,
.fp-btn-s,
.fp-btn-camp {
width: 100%;
max-width: 280px;
text-align: center;
}
/* Scoreboard: single-card carousel on mobile */
.fp-scoreboard {
overflow: hidden;
}
.fp-sb-carousel {
overflow: hidden;
width: 100%;
}
.fp-sb-track {
gap: 16px;
}
.fp-sb-card {
flex: 0 0 calc(100vw - 10% - 16px) !important;
max-width: calc(100vw - 10% - 16px);
min-width: 0;
box-sizing: border-box;
}
.fp-sb-card h3,
.fp-sb-card p {
word-break: break-word;
overflow-wrap: break-word;
}
.fp-sb-prev { left: 2px !important; }
.fp-sb-next { right: 2px !important; }
/* Scroll-to-top: match updated 46px base on mobile too */
#aacp-scroll-top,
#aacp-scroll-top.aacp-stt-show {
width: 40px;
}
#aacp-scroll-top.aacp-stt-show {
height: 40px;
}
}
/* ── Button Style A — solid teal CTA ──────────────────────────── */
.btn-a {
display: inline-flex;
align-items: center;
justify-content: center;
padding: 12px 28px;
border-radius: 8px;
border: none;
background: var(--aacp-accent, #00a896);
color: #fff;
font-size: 0.95rem;
font-weight: 700;
letter-spacing: 0.03em;
text-decoration: none;
cursor: pointer;
transition: background 0.22s ease, transform 0.18s ease, box-shadow 0.22s ease;
}
.btn-a:hover,
.btn-a:focus {
background: var(--aacp-link-hover, #00786c);
color: #fff;
transform: translateY(-2px);
box-shadow: 0 8px 24px rgba(0, 168, 150, 0.38);
text-decoration: none;
}
/* ── Facebook section ── */
.fp-fb-wrapper {
display: flex;
justify-content: center;
}
/* ── Course card meta SVG icons ── */
.fp-c-meta i {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 16px;
}
.fp-c-meta i svg {
flex-shrink: 0;
}
/* ── Course card price section ── */
.fp-c-body > div[style*="font-family:var(--mono)"] {
margin-top: auto;
padding-top: 14px;
border-top: 1px solid rgba(0, 0, 0, 0.06);
}
此課程適合希望學習競賽相關的演算法 / 挑戰 APCS 實作中高級以上 / 拼資奧的學生。 課程概述 Leve […] AA 競程近年已培養多名 TOI 二階選手,本次 2026 TOI 特訓營聚焦六場高品質模擬賽與賽後講題,重現正式賽事節奏,訓練學生在壓力下的判斷與時間管理,是瞄準 2026 TOI 與資訊能力競賽的高強度集訓營隊。 此課程適合希望學習競賽相關的演算法 / 挑戰 APCS 實作 300 以上 / 拼資奧的學生。 課程概述 Le […]標籤: 演算法分析
Level 1 演算法班課程介紹
2026 TOI 特訓營
Level 1 演算法班課程介紹
Deprecated: 從 6.4.0 版開始,the_block_template_skip_link 函式已淘汰不用,請改用 wp_enqueue_block_template_skip_link()。 in /www/aacpschoolcom_395/public/wp-includes/functions.php on line 6131