:root{--navy:#0b3d82;--ink:#1a354e;--muted:#52697a;--cream:#f8f6ef;--paper:#fff;--mint:#e8f2ed;--line:#dce5e9;--gold:#b58a42;--radius:18px;font:17px/1.65 Arial,Helvetica,sans-serif;color:var(--ink);background:var(--cream)}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default}a{color:var(--navy);text-underline-offset:4px}h1,h2,h3,h4,p{margin-top:0}h1,h2,h3,h4{line-height:1.18;letter-spacing:-.035em}h1{font-size:clamp(2.7rem,6.6vw,5.1rem);margin-bottom:25px}h2{font-size:clamp(1.9rem,3.4vw,2.7rem);margin-bottom:20px}h3{font-size:1.3rem;margin-bottom:15px}h4{font-size:1.12rem;margin-bottom:15px}.shell{width:min(1200px,calc(100% - 64px));margin:auto}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #bd8733;outline-offset:4px}[hidden]{display:none!important}.skip-link{position:absolute;left:16px;top:-100px;z-index:20;background:white;padding:12px}.skip-link:focus{top:12px}.calendar-header{background:white;border-bottom:1px solid var(--line)}.header-inner{min-height:100px;display:flex;align-items:center;gap:34px;flex-wrap:wrap;padding-block:18px}.calendar-brand{display:flex;align-items:center;gap:11px;text-decoration:none;margin-right:auto}.calendar-brand>span{display:grid;place-items:center;width:48px;height:48px;background:var(--navy);color:white;border-radius:16px 16px 16px 4px;font-size:1.7rem;font-weight:800}.calendar-brand strong{font-size:1.8rem;letter-spacing:-.05em}.calendar-header nav{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.calendar-header nav a{font-size:.82rem;font-weight:700;text-decoration:none}.text-size{border:1px solid #d6e1e8;border-radius:8px;padding:9px 13px;background:white;color:var(--ink);font-size:.75rem}.calendar-hero{background:var(--navy);color:white;overflow:hidden;position:relative}.calendar-hero:after{content:'';width:500px;height:500px;border-radius:50%;border:1px solid #ffffff17;position:absolute;right:-140px;top:-220px;pointer-events:none}.hero-layout{display:grid;grid-template-columns:1.4fr 1fr;gap:75px;align-items:center;padding-block:65px 70px}.eyebrow{font-size:.67rem;line-height:1.5;font-weight:700;text-transform:uppercase;letter-spacing:.16em;color:#587b79;margin-bottom:13px}.calendar-hero .eyebrow{color:#bddacc}.hero-intro{max-width:600px;font-size:1.03rem;line-height:1.8;color:#e5edf4}.hero-link{display:inline-flex;gap:30px;align-items:center;color:white;font-weight:700;font-size:.86rem;text-decoration:none;padding-block:8px;margin-top:10px;border-bottom:1px solid #a0bad5}.hero-note{position:relative;border-radius:28px 28px 80px 28px;background:#ffffff0a;border:1px solid #ffffff26;padding:40px;max-width:360px;justify-self:end;transform:rotate(3deg)}.note-star{display:block;color:#ebce90;font-size:3.4rem;line-height:1;margin-bottom:28px}.hero-note p{font:600 2.05rem/1.25 Georgia,serif;letter-spacing:-.025em;margin-bottom:20px}.hero-note>span:last-child{font-size:.72rem;color:#d1e5e1}.calendar-workspace{padding-block:40px 65px;scroll-margin-top:12px}.calendar-tabs{display:flex;gap:8px;padding:6px;background:#e9eee9;border-radius:13px;width:fit-content;max-width:100%}.calendar-tabs button{border:0;border-radius:9px;background:transparent;color:#3b535f;min-height:52px;padding:11px 27px;font-size:.9rem;font-weight:700}.calendar-tabs button span{opacity:.65;margin-left:10px;font-size:.8rem}.calendar-tabs [aria-selected=true]{background:#fff;color:var(--navy);box-shadow:0 3px 9px #17354d0c}.calendar-status{font-size:.74rem;color:var(--muted);margin:15px 0 35px}.section-top{display:flex;align-items:center;justify-content:space-between;gap:45px;margin-bottom:32px}.section-top>div:first-child{max-width:780px}.section-top p:not(.eyebrow){color:var(--muted);max-width:710px;margin-bottom:0}.small-badge{flex:0 0 150px;display:grid;justify-items:center;gap:5px;border-left:1px solid #d9dfd8;padding-left:35px;text-align:center;color:#516660}.small-badge>span:first-child{font-size:2.3rem;color:#ba924e;line-height:1.4}.small-badge strong{font-size:.95rem}.small-badge>span:last-child{font-size:.68rem}.advent-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:15px}.advent-door{position:relative;overflow:hidden;min-height:150px;border:1px solid #d9e1d9;background:#f0f3ed;border-radius:15px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;color:#536657;transition:transform .2s,box-shadow .2s,background .2s}.advent-door:nth-child(4n+2){background:#eaf0f5;color:#456079;border-color:#dbe3eb}.advent-door:nth-child(4n+3){background:#f4eee1;color:#826d43;border-color:#e7decc}.advent-door:nth-child(4n){background:#eef0ed;color:#5e6e68}.advent-door:before{content:'✦';position:absolute;font-size:4.7rem;opacity:.075;right:-5px;top:-19px;transform:rotate(13deg)}.advent-door strong{font:600 2.6rem/1.1 Georgia,serif;letter-spacing:-.05em}.advent-door .door-status{font-size:.66rem}.advent-door .door-symbol{font-size:.8rem;color:#738875}.advent-door.available{background:#fff;border-color:#acc6b7;color:#214e42;box-shadow:0 3px 11px #29493509}.advent-door.available:hover{transform:translateY(-3px);box-shadow:0 9px 20px #29493514}.advent-door.complete:after{content:'✓';position:absolute;right:12px;bottom:9px;font-weight:700;color:#48715b}.advent-door.today{border:2px solid var(--navy)}.advent-door:last-child{background:#123e6a;color:#fff;border-color:#123e6a}.advent-door:last-child .door-status,.advent-door:last-child .door-symbol{color:#c7d8e4}.quiet-note{font-size:.74rem;color:var(--muted);margin-top:21px}.notice{padding:20px;background:#fff5da;border:1px solid #e4d2a3;border-radius:12px;margin-bottom:24px}.notice button{border:1px solid #b49c61;background:white;padding:8px 15px;border-radius:7px}.year-layout{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(260px,1fr);gap:30px;align-items:start}.goal-card,.month-card,.direction-card,.reflection-card,.privacy-card{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:30px;margin-bottom:25px;min-width:0}.card-heading{display:flex;gap:20px;justify-content:space-between;align-items:start}.card-heading h3{font-size:1.5rem}.step-number{display:inline-grid;place-items:center;flex:0 0 36px;width:36px;height:36px;border-radius:50%;background:#eef4f1;color:#53756b;font-size:.75rem;font-weight:700}.goal-card>p,.reflection-card>p,.privacy-card p{font-size:.86rem;color:var(--muted)}label{display:block;font-size:.84rem;font-weight:700;line-height:1.5;margin:19px 0 8px}label span{font-weight:400;font-size:.74rem;color:var(--muted)}input:not([type=file]),select,textarea{width:100%;max-width:100%;background:#fcfdfd;border:1px solid #b8c9d2;border-radius:8px;padding:12px 13px;min-height:47px;color:var(--ink);font-size:.87rem}textarea{resize:vertical;line-height:1.65}input::placeholder,textarea::placeholder{color:#6b7e87;font-size:.82rem}.context-details{margin:24px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding-block:16px}.context-details summary,.theory-details summary{font-size:.86rem;font-weight:700;cursor:pointer}.context-details>p{font-size:.82rem;color:var(--muted);margin-top:16px}.goal-next{position:relative;margin-top:30px;border-top:1px solid var(--line);padding-top:25px}.goal-next>.step-number{float:right}.goal-next h4{padding-top:6px}.field-help{font-size:.71rem;color:var(--muted);margin-top:8px}.inline-tip{padding:13px 15px;border-left:3px solid #7d9f8c;background:#edf5ef;font-size:.8rem;line-height:1.6;margin-top:15px}.primary-button,.secondary-button{display:inline-flex;justify-content:center;align-items:center;gap:10px;border:0;border-radius:9px;min-height:48px;padding:12px 19px;font-size:.85rem;font-weight:700;background:var(--navy);color:#fff}.primary-button{margin-top:25px}.secondary-button{background:#eaf0f5;color:var(--navy);border:1px solid #cddce7}.saved-feedback,#weekly-feedback,#data-feedback{font-size:.76rem;margin:10px 0 0;color:#426e59}.direction-card{background:#eaf2ed;border-color:#d1e1d8}.direction-card h3{font-size:1.25rem}.direction-card #my-direction>strong{display:block;font-size:1.1rem;line-height:1.45;margin-bottom:15px}.direction-card p{font-size:.82rem}.direction-card .direction-label{display:block;margin-top:12px;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:#557567}.text-link{font-size:.77rem;font-weight:700}.reflection-card .secondary-button{margin-top:16px;width:100%}.participation-summary{font-size:.74rem;border-top:1px solid var(--line);padding-top:15px;margin-top:20px}.privacy-card{background:#f0f3f4}.privacy-card h3{font-size:1rem}.privacy-card p{font-size:.74rem}.text-button{border:0;padding:9px 0;background:transparent;color:var(--navy);text-decoration:underline;font-size:.77rem;font-weight:700}.import-label{font-size:.75rem;margin:14px 0 8px}input[type=file]{max-width:100%;font-size:.68rem}.month-controls{display:flex;align-items:center;gap:20px;justify-content:space-between;margin-bottom:20px}.month-controls h3{font-size:1.3rem;margin:0}.month-controls .eyebrow{margin-bottom:6px}.month-controls button{display:grid;place-items:center;border:1px solid var(--line);background:white;border-radius:50%;width:43px;height:43px;color:var(--navy)}.month-controls button:disabled{opacity:.35}.month-theme{background:#f3f6f4;padding:20px;border-radius:10px;margin-bottom:23px;font-size:.82rem}.month-theme h4{font-size:1rem;margin-bottom:8px}.month-theme p{margin-bottom:0;color:var(--muted)}.weekdays,.year-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.weekdays{margin-bottom:8px;font-size:.67rem;text-align:center;color:#5c7483}.year-day{min-height:54px;position:relative;background:#f3f5f7;border:1px solid #e0e6eb;border-radius:8px;color:#75828b;font-size:.87rem}.year-day.available{background:white;color:var(--navy);border-color:#b7cbdc}.year-day.today{border:2px solid var(--navy);font-weight:800}.year-day.recorded:after{content:'•';position:absolute;bottom:0;left:0;right:0;color:#4b8161;font-size:1rem;line-height:1}.how-section{background:#eaf0ed;padding-block:55px}.how-section h2{font-size:2.1rem}.how-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:45px;margin-top:35px}.how-grid article>span{display:grid;place-items:center;width:31px;height:31px;border:1px solid #b2c7bb;border-radius:50%;font-size:.75rem;margin-bottom:18px}.how-grid h3{font-size:1.05rem}.how-grid p{font-size:.84rem;color:#4b655e}.theory-details{border-top:1px solid #ccd9d1;padding-top:22px;margin-top:26px}.theory-copy{max-width:850px;font-size:.79rem;line-height:1.8;margin-top:20px}.theory-copy li{margin:8px 0}.calendar-footer{background:#17354f;color:#e1ebf3;padding-block:35px}.calendar-footer .shell{display:flex;gap:25px;align-items:center;justify-content:space-between;flex-wrap:wrap}.calendar-footer a{color:white;font-size:.8rem;font-weight:700}.calendar-footer p{font-size:.73rem;margin:0;max-width:440px}dialog{width:min(680px,calc(100% - 28px));max-height:calc(100dvh - 40px);overflow-y:auto;border:0;border-radius:20px;padding:28px 34px 34px;color:var(--ink);box-shadow:0 20px 90px #06294955}dialog::backdrop{background:#0c233eaa}.dialog-top{display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:.74rem;color:var(--muted);margin-bottom:20px}.dialog-top form{margin:0}.close-button{display:grid;place-items:center;width:43px;height:43px;background:#eef3f5;border:0;border-radius:50%;font-size:1.6rem;color:var(--navy)}#day-title{font-size:1.8rem;margin:10px 0 20px}#day-content p{line-height:1.8;font-size:.93rem}#day-content .quote{font:500 1.4rem/1.65 Georgia,serif;letter-spacing:-.015em;color:#234e52;padding-left:20px;border-left:3px solid #b9a577}#day-content ol{padding-left:22px;font-size:.89rem}#day-content li{padding-left:6px;margin:10px 0}.easier-note{background:#f0f5f1;padding:15px 18px;border-radius:10px;font-size:.81rem!important}.listen-button{background:transparent;border:0;color:var(--navy);padding:8px 0;font-size:.78rem;font-weight:700}.day-theme{font-size:.75rem!important;padding:12px 15px;background:#edf3f6;border-radius:8px}.game-box{background:#f5f7f5;border:1px solid #dfe8e1;border-radius:12px;padding:20px;margin:22px 0}.game-box h3{font-size:1rem}.memory-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.memory-card{height:66px;border:1px solid #b9cbd7;border-radius:9px;background:var(--navy);color:#e2eef5;font-size:1.7rem}.memory-card.revealed{background:#fff;color:var(--ink)}.memory-card.matched{background:#e7f1e8;border-color:#b2ccb9}.game-feedback{font-size:.81rem;margin:15px 0 0}.shape-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.shape-grid button{height:49px;border:1px solid #c2d4dc;border-radius:7px;background:white;color:#365f76;font-size:1.5rem}.shape-grid .selected{background:#dbece0;border-color:#8aaa93}.pattern-sequence{font-size:2rem;letter-spacing:.15em;text-align:center;padding:12px 0}.game-choices{display:flex;gap:10px;flex-wrap:wrap}.game-choices button{min-height:47px;min-width:55px;border:1px solid #b6c8d1;border-radius:8px;background:#fff;padding:10px 15px;color:var(--ink)}.game-choices button[aria-pressed=true]{background:#dfede3;border-color:#7c9b86}.game-own-words{margin-top:15px}.record-box{border-top:1px solid var(--line);padding-top:22px;margin-top:25px}.record-box h3{font-size:1rem}.record-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:15px}.record-actions button{padding:10px 14px;min-height:44px;border:1px solid #bdced7;background:#fff;color:var(--navy);border-radius:8px;font-size:.78rem;font-weight:700}.record-actions button[aria-pressed=true]{background:#e0ece4;border-color:#70947d}.dialog-feedback{font-size:.8rem;color:#426c56;margin:18px 0 0}.large-text{font-size:1.12rem}.large-text p,.large-text label,.large-text input,.large-text select,.large-text textarea{font-size:1rem}.noscript-message{padding:20px;background:#fff5d7;font-size:1rem}@media(max-width:1050px){.header-inner{gap:20px}.calendar-header nav{gap:17px}.hero-layout{gap:35px}.hero-note{padding:30px}.hero-note p{font-size:1.8rem}.advent-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.year-layout{grid-template-columns:minmax(0,1.6fr) minmax(250px,1fr);gap:20px}.goal-card,.month-card,.direction-card,.reflection-card,.privacy-card{padding:24px}.how-grid{gap:25px}}
@media(max-width:760px){.shell{width:calc(100% - 36px)}.header-inner{min-height:85px;padding-block:15px;gap:14px}.calendar-brand strong{font-size:1.5rem}.calendar-brand>span{width:40px;height:40px;font-size:1.4rem;border-radius:13px 13px 13px 3px}.calendar-header nav{order:3;width:100%;justify-content:space-between;gap:12px}.calendar-header nav a{font-size:.74rem}.text-size{font-size:.68rem}.hero-layout{grid-template-columns:1fr;padding-block:40px;gap:25px}h1{font-size:2.9rem}.hero-note{display:none}.hero-intro{font-size:.95rem}.calendar-workspace{padding-block:25px 40px}.calendar-tabs{width:100%}.calendar-tabs button{flex:1;padding:10px 12px;font-size:.8rem}.calendar-tabs button span{display:block;margin:0;font-size:.72rem}.calendar-status{font-size:.69rem;margin-bottom:28px}.section-top{gap:20px}.section-top h2{font-size:1.9rem}.section-top p{font-size:.9rem}.small-badge{display:none}.advent-grid{gap:10px}.advent-door{min-height:110px;border-radius:12px}.advent-door strong{font-size:2.2rem}.advent-door .door-status{font-size:.59rem}.year-layout{grid-template-columns:1fr}.year-sidebar{display:grid;grid-template-columns:1fr}.how-section{padding-block:35px}.how-grid{grid-template-columns:1fr;gap:15px}.how-grid article{padding-left:48px;position:relative}.how-grid article>span{position:absolute;left:0;top:0}.how-grid h3{margin-bottom:10px}.calendar-footer .shell{gap:15px}.year-grid{gap:6px}.year-day{min-height:48px}dialog{padding:20px 22px 25px}#day-title{font-size:1.55rem}}
@media(max-width:420px){.advent-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.advent-door{min-height:112px}.advent-door .door-status{font-size:.65rem}.goal-card,.month-card,.direction-card,.reflection-card,.privacy-card{padding:20px}.month-controls{gap:10px}.month-controls h3{font-size:1.13rem}.month-controls button{width:36px;height:36px}.year-grid,.weekdays{gap:4px}.year-day{min-height:42px}.memory-card{height:56px}.game-box{padding:15px}.shape-grid button{height:43px}.record-actions button{flex:1}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}@media print{.calendar-header,.calendar-hero,.calendar-tabs,#panel-joulu,.month-card,.how-section,.calendar-footer,.privacy-card,dialog{display:none!important}#panel-arki[hidden]{display:block!important}.year-layout{display:block}.shell{width:100%}.goal-card,.direction-card,.reflection-card{break-inside:avoid}}

@media(max-width:760px){input:not([type=file]),select,textarea{font-size:1rem}.year-day{min-height:44px}}

.own-step{padding:17px 20px;margin:18px 0;background:#eaf3ec;border:1px solid #caddd0;border-radius:10px}.own-step strong{font-size:.82rem;color:#355f4b}.own-step p{margin:8px 0!important;font-weight:700}.own-step small{font-size:.72rem;color:#536f5c}.review-history-item{padding:13px 0;border-bottom:1px solid #dde6e2}.review-history-item strong{font-size:.73rem}.review-history-item p{font-size:.8rem;white-space:pre-wrap;margin:8px 0}
