:root {
    --paper:var(--bg-primary);
    --ink:var(--text-primary);
    --muted:#686e63;
    --sage:var(--accent);
    --action:#596b4c;
    --line:var(--border);
    --wash:#eff2eb;
    --white:#fff;
    --radius:16px
}

* {
    box-sizing:border-box
}
body {
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font:16px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif
}
a {
    color:var(--action);
    text-underline-offset:4px
}
button,input,textarea {
    font:inherit
}
button,a,input,textarea {
    outline-offset:5px
}
button {
    cursor:pointer
}
a.button {
    text-decoration:none
}
.public-header { font: var(--font-size-base)/1.5 var(--font-family); }
.public-header #return-link { font-size: var(--font-size-sm); }
.nav {
    display:flex;
    gap:16px;
    align-items:center;
    font-size:14px;
    flex-wrap:wrap;
    justify-content:flex-end;
    margin-left:auto
}
.nav a {
    text-decoration:none;
    color:var(--muted)
}
.nav a[aria-current=page] {
    color:var(--ink);
    text-decoration:underline
}
.nav .student-link {
    color:var(--action);
    padding-left:16px;
    border-left:1px solid #d9dcd2
}
.hero {
    display:grid;
    grid-template-columns:1.5fr 1fr;
    align-items:center;
    gap:40px;
    padding:64px 0 48px
}
.eyebrow {
    font-size:12px;
    letter-spacing:.13em;
    text-transform:uppercase;
    color:var(--action);
    font-weight:650;
    margin:0 0 17px
}
h1,h2,h3,p {
    margin-top:0
}
h1,h2 {
    font-family:Georgia,"Times New Roman",serif;
    font-weight:400
}
h1 {
    font-size:56px;
    line-height:1.13;
    letter-spacing:-1.6px;
    margin-bottom:24px
}
h2 {
    font-size:33px;
    line-height:1.25;
    margin-bottom:15px
}
h3 {
    font-size:18px;
    font-weight:600;
    margin-bottom:10px
}
.lead {
    font-size:19px;
    color:#61665d;
    line-height:1.65;
    max-width:590px
}
.lotus {
    background-image:url(/assets/img/lotus_sprite_green_light.png);
    background-size:800% 400%;
    background-position:71.429% 100%;
    transform:rotate(45deg);
    width:300px;
    height:300px;
    margin:auto;
    opacity:.85
}
.actions {
    display:flex;
    align-items:center;
    gap:24px;
    flex-wrap:wrap;
    margin-top:28px
}
.button,button.primary {
    background:var(--action);
    border:1px solid var(--action);
    color:white;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:46px;
    padding:11px 21px;
    border-radius:9px;
    font-weight:600;
    font-size:15px
}
.button:hover,button.primary:hover {
    background:#46573b
}
.quiet-link {
    font-size:15px
}
.app-preview {
    margin:0 0 32px
}
.app-preview img {
    display:block;
    width:100%;
    height:auto;
    border:1px solid var(--line);
    border-radius:var(--radius)
}
.app-preview figcaption {
    font-size:14px;
    color:var(--muted);
    margin-top:10px
}
.renew-entry {
    padding:28px 32px;
    background:var(--white);
    border:1px solid var(--line);
    border-radius:var(--radius);
    display:flex;
    gap:28px;
    align-items:center;
    justify-content:space-between
}
.renew-entry h2 {
    font-size:28px;
    margin:0 0 8px
}
.renew-entry p {
    color:var(--muted);
    margin:0;
    font-size:15px;
    max-width:580px
}
.renew-entry .eyebrow {
    margin:0 0 8px;
    font-size:11px
}
.renew-entry .button {
    white-space:nowrap;
    background:var(--wash);
    border-color:#d5ddce;
    color:#46573b
}
.footer {
    padding:30px 0 22px;
    margin-top:22px;
    display:flex;
    justify-content:space-between;
    gap:20px;
    color:var(--muted);
    font-size:12px
}
.footer a {
    margin-left:20px
}
.page-title {
    padding-top:52px;
    max-width:810px
}
.page-title h1 {
    font-size:46px
}
.back {
    display:inline-block;
    margin-bottom:24px;
    font-size:14px
}
.about-grid {
    display:grid;
    grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);
    gap:68px;
    margin:28px 0 40px
}
.story section {
    margin-bottom:30px
}
.philosophy { max-width: 720px; padding: 24px 0 32px; }
.story h2 {
    font-size:27px
}
.story p {
    color:var(--muted);
    margin-bottom:12px
}
.student-note {
    background:var(--wash);
    padding:28px;
    border-radius:var(--radius);
    align-self:start
}
.student-note h2 {
    font-size:27px
}
.student-note p {
    font-size:15px;
    color:#555f4d
}
.student-note ol {
    padding-left:21px;
    font-size:15px
}
.student-note li {
    padding-left:6px;
    margin-bottom:13px
}
.studio-invite {
    margin-top:32px;
    border-top:1px solid var(--line);
    padding-top:24px
}
.studio-invite h2 {
    font-size:27px
}
.access-layout {
    display:grid;
    grid-template-columns:.9fr 1.25fr;
    gap:64px;
    padding-top:55px;
    align-items:start
}
.access-layout h1 {
    font-size:47px
}
.access-layout .lead {
    font-size:18px
}
.details-list {
    border-top:1px solid var(--line);
    padding-top:24px;
    margin-top:30px
}
.details-list p {
    font-size:15px;
    margin-bottom:18px;
    color:var(--muted)
}
.form-card {
    background:white;
    border:1px solid var(--line);
    padding:30px;
    border-radius:var(--radius)
}
.form-card h2 {
    font-size:26px
}
.form-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:17px
}
.field {
    display:block;
    font-size:14px;
    font-weight:600;
    margin-bottom:18px
}
.field .optional {
    font-weight:400;
    color:var(--muted);
    font-size:12px
}
input,textarea {
    display:block;
    width:100%;
    background:white;
    border:1px solid #cdd2c6;
    border-radius:7px;
    padding:10px 12px;
    min-height:46px;
    color:var(--ink);
    margin-top:7px;
    font-size:16px
}
textarea {
    min-height:108px;
    resize:vertical
}
input::placeholder,textarea::placeholder {
    color:#74786f;
    font-size:14px
}
.privacy {
    font-size:12px;
    color:var(--muted);
    line-height:1.6;
    margin:2px 0 20px
}
.form-card button {
    width:100%
}
.result {
    max-width:720px;
    margin:62px auto 70px;
    padding:46px;
    background:white;
    border:1px solid var(--line);
    border-radius:var(--radius)
}
.result h1 {
    font-size:43px
}
.result .stamp {
    display:inline-flex;
    width:48px;
    height:48px;
    align-items:center;
    justify-content:center;
    background:var(--wash);
    color:var(--action);
    border-radius:50%;
    font-size:26px;
    margin-bottom:24px
}
.result p {
    color:var(--muted);
    font-size:17px
}
.result .summary {
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
    padding:18px 0;
    margin:24px 0
}
.error {
    background:#fbefec;
    color:#8c443c;
    border-left:3px solid #b55d50;
    padding:14px 16px;
    border-radius:4px;
    margin-bottom:22px;
    font-size:14px
}
.error strong {
    display:block;
    margin-bottom:4px
}
.availability-note {
    margin-top: 17px;
    color:#767066;
    font-size:12px
}
.confirmation-link {
    margin-top:18px;
    display:inline-block
}
 [hidden] {
    display:none!important
}

@media(max-width:900px) {
    .hero .lotus {
        width:200px;
        height:200px
    }
}

@media(max-width:720px) {
.public-header #return-link { max-width: 70px; font-size: 12px; line-height: 1.3; }
.nav {
    gap:20px;
    font-size:12px
}
.nav .student-link {
    padding-left:14px
}
.hero {
    display:flex;
    flex-direction:column;
    align-items:stretch;
    padding:35px 0 29px;
    gap:16px
}
.hero h1 {
    font-size:39px;
    letter-spacing:-1px
}
.eyebrow {
    font-size:10px;
    letter-spacing:.11em
}
.lead {
    font-size:17px
}
.hero .lotus {
    width:160px;
    height:160px;
    order:-1;
    margin:0 auto
}
.actions {
    gap:18px
}
.renew-entry {
    padding:24px;
    display:block
}
.renew-entry h2 {
    font-size:25px
}
.renew-entry .button {
    margin-top:20px;
    width:100%
}
.footer {
    display:block;
    line-height:2
}
.footer a {
    margin:0 20px 0 0
}
.about-grid {
    display:block;
    margin-top:24px
}
.student-note {
    margin:24px 0
}
.page-title {
    padding-top:28px
}
.page-title h1,.access-layout h1 {
    font-size:38px
}
.access-layout {
    display:block;
    padding-top:34px
}
.details-list {
    margin-top:22px;
    padding-top:18px
}
.form-card {
    margin-top:27px;
    padding:23px
}
.form-grid {
    display:block
}
.result {
    padding:28px;
    margin:35px 0
}
.result h1 {
    font-size:35px
}
.result p {
    font-size:16px
}
.back {
    margin-bottom:20px
}

}


@media(max-width:720px) {
    .footer>span {
    display:block
}
.footer>span+span {
    margin-top:8px
}

}
.shell { position: relative; }
button:disabled { opacity: .6; cursor: wait; }
.field-trap { position: absolute; left: -10000px; }
#early-access-error { scroll-margin-top: 24px; }
