.ct-page{padding-bottom:var(--sp-16)}.ct-hero,.ct-main,.ct-routes{max-width:1120px;margin:0 auto;padding-inline:var(--sp-8)}.ct-hero{padding-top:72px;padding-bottom:var(--sp-10)}.ct-hero h1{max-width:760px;margin:0 0 var(--sp-4);color:var(--color-heading);font-size:clamp(var(--fs-40),5vw,var(--fs-56));font-weight:var(--weight-semibold);letter-spacing:var(--tracking-display);line-height:1.05}.ct-routes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-5)}.ct-route{display:grid;align-content:start;gap:var(--sp-1);min-height:180px;padding:var(--sp-6);border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);transition:var(--transition-control)}.ct-route:hover{border-color:var(--color-brand-accent-text);box-shadow:var(--shadow-card-hover)}.ct-route strong{margin-top:var(--sp-3);color:var(--color-heading);font-size:var(--fs-16);font-weight:var(--weight-semibold)}.ct-route span:not(.ct-route-icon){color:var(--color-text);font-weight:var(--weight-regular);font-size:var(--fs-14)}.ct-route small{font-weight:var(--weight-regular);color:var(--color-text-secondary);font-size:var(--fs-13)}.ct-route-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:var(--radius-pill);background:var(--color-surface-selected);color:var(--color-brand-accent-text)}.ct-main{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:var(--sp-10);margin-top:var(--sp-12);align-items:start}.ct-form-card{padding:var(--sp-8);border:1px solid var(--color-border);border-radius:var(--radius-modal);background:var(--color-surface);box-shadow:var(--shadow-art)}.ct-aside h2,.ct-form-card h2{margin:0 0 var(--sp-5);color:var(--color-heading);font-size:var(--fs-20);font-weight:var(--weight-semibold)}.ct-form{display:grid;gap:var(--sp-5);scroll-margin-top:calc(72px + var(--sp-6))}.ct-topics{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin:0;padding:0;border:0}.ct-topics legend{margin-bottom:var(--sp-3);color:var(--color-heading);font-size:var(--fs-14);font-weight:var(--weight-semibold)}.ct-topic{position:relative}.ct-topic input{position:absolute;opacity:0;inset:0}.ct-topic span{display:inline-flex;align-items:center;min-height:40px;padding:0 var(--sp-4);border:1px solid var(--color-border-strong);border-radius:var(--radius-pill);color:var(--color-text);font-size:var(--fs-14);font-weight:var(--weight-medium);cursor:pointer}.ct-topic input:checked+span{border-color:var(--color-action);background:var(--color-action);color:var(--color-action-text)}.ct-topic input:focus-visible+span{outline:2px solid var(--color-focus);outline-offset:2px}.ct-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-4)}.ct-field{display:grid;gap:var(--sp-2)}.ct-field>span{color:var(--color-heading);font-size:var(--fs-14);font-weight:var(--weight-semibold)}.ct-field small{color:var(--color-text-secondary);font-weight:var(--weight-regular)}.ct-field input,.ct-field select,.ct-field textarea{width:100%;min-height:var(--input-height);padding:var(--sp-2) var(--sp-3);border:1px solid var(--input-border);border-radius:var(--radius-control);background:var(--input-bg);color:var(--input-text);font:inherit;font-size:var(--fs-16)}.ct-field input:focus,.ct-field select:focus,.ct-field textarea:focus{outline:2px solid var(--color-focus);outline-offset:1px}.ct-demo{padding:var(--sp-4);border-radius:var(--radius-card);background:var(--cream)}.ct-demo .ct-hint{grid-column:1/-1}.ct-hint{margin:0;color:var(--color-text-secondary);font-size:var(--fs-13)}.ct-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-4)}.ct-done{margin:0;color:var(--success);font-size:var(--fs-14)}.ct-aside ul{display:grid;gap:var(--sp-4);margin:0;padding:0;list-style:none}.ct-aside li{display:grid;gap:2px}.ct-aside a{color:var(--color-link);font-weight:var(--weight-semibold)}.ct-aside small{color:var(--color-text-secondary);font-size:var(--fs-13)}@media (max-width:860px){.ct-main,.ct-routes,.ct-row{grid-template-columns:1fr}.ct-hero,.ct-main,.ct-routes{padding-inline:var(--sp-4)}.ct-route{min-height:0}.ct-form-card{padding:var(--sp-5)}}.ct-hero .serif-accent{color:var(--color-brand-accent-text)}