:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif;color:#223b35;background:#f6f7f3;font-synthesis:none}*{box-sizing:border-box}body{margin:0}aside{width:245px;position:fixed;inset:0 auto 0 0;padding:40px 25px;background:#fff;border-right:1px solid #e3e8df;display:flex;flex-direction:column;transition:transform .2s ease}.brand{font-size:30px;font-weight:800;letter-spacing:-2px}.brand span{font-size:13px;letter-spacing:3px;font-weight:600;margin-left:8px}.eyebrow{font-size:11px;font-weight:700;letter-spacing:2px;color:#6c8275;margin:30px 0 18px}nav a{display:flex;justify-content:space-between;padding:15px;border-radius:9px;margin:7px 0;color:#64716b;text-decoration:none;font-size:14px}nav a.active{background:#e9f0e5;color:#2d5739;font-weight:650}nav a span{color:#88978a}.profile{display:flex;align-items:center;gap:12px;margin-top:auto;padding-top:40px}.avatar{background:#edf1e7;border-radius:50%;padding:11px 16px}.profile small{display:block;color:#8c958e;margin-top:4px;font-size:11px}main{margin-left:245px;padding:30px 5%;max-width:1650px;transition:margin-left .2s ease}#side-menu-toggle{position:fixed;z-index:10;left:225px;top:50%;width:40px;height:56px;padding:0;border:1px solid #d9dfdf;border-radius:20px;background:#fafbf9;color:#294d65;font-size:26px;line-height:1;box-shadow:0 3px 14px #233e3518;transform:translateY(-50%);transition:left .2s ease}body.side-menu-collapsed aside{transform:translateX(-100%)}body.side-menu-collapsed main{margin-left:0}body.side-menu-collapsed #side-menu-toggle{left:12px}header{display:flex;justify-content:space-between;align-items:center;font-size:10px;letter-spacing:1.5px;color:#7c8a7f;padding-bottom:28px;border-bottom:1px solid #e0e6dc}.pill{background:#e9f0e4;padding:8px 12px;border-radius:20px;color:#537353;font-size:10px;letter-spacing:0}.hero{position:relative;padding:5px 0 30px;overflow:hidden}h1{font-size:clamp(32px,4vw,54px);line-height:1.13;letter-spacing:-2px;font-weight:550;margin:20px 0}h2{font-size:19px;letter-spacing:-.4px;font-weight:600}p{line-height:1.65;font-size:14px}.hero p:not(.eyebrow),.muted{color:#79877b}.orb{position:absolute;right:6%;top:28px;font-size:185px;line-height:1.1;color:#b7c6a7;transform:rotate(12deg);opacity:.65}.cards,.columns{display:grid;grid-template-columns:1fr 1fr;gap:25px;margin:22px 0 36px}.card{background:white;border:1px solid #e2e7de;border-radius:16px;padding:26px}.link{text-decoration:none;color:inherit;transition:transform .15s}.link:hover{transform:translateY(-3px)}.link p{color:#7e897d}.link>span:last-child{font-size:12px;color:#5f7b53}.icon{font-size:27px;background:#f0f3e9;border-radius:10px;padding:6px 12px;display:inline-block}.card .eyebrow{margin-top:0}label{display:block;font-size:12px;font-weight:600;margin:18px 0;color:#54695b}input,textarea,select{display:block;font:inherit;font-size:14px;font-weight:400;width:100%;padding:12px;margin-top:8px;border:1px solid #dce3d7;border-radius:8px;background:#fcfdfb;color:#273e30}textarea{min-height:125px;resize:vertical}button{background:#385c42;color:white;border:0;border-radius:8px;padding:12px 20px;font-weight:600;cursor:pointer}button:hover{filter:brightness(1.13)}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #89a878;outline-offset:3px}.secondary{background:#f1f3ee;color:#53674f;margin-top:20px;width:100%}.text-button{padding:5px 0;background:none;color:#8a6c5d;font-size:11px}.entry{border-bottom:1px solid #dde4d7;padding:15px 0}.entry small,.result>small{color:#8d978c;font-size:11px}.pre{white-space:pre-wrap;overflow-wrap:anywhere}.empty{border:1px dashed #d9e0d2;border-radius:12px;padding:40px 25px;color:#586e55;text-align:center;font-size:15px;margin-top:24px}.empty span{font-size:12px;color:#919c8d;line-height:2}.count{font-size:11px;background:#e7ecdf;border-radius:15px;padding:3px 8px;margin-left:8px}.notice{padding:12px 18px;background:#e7edda;border-radius:8px;color:#4d6540}.two,.stats{display:grid;grid-template-columns:1fr 1fr;gap:18px}.stats strong{font-size:22px}.stats small{display:block;color:#87927f;margin-top:7px}.result{margin-bottom:20px}.route{display:inline-block;color:#496f49;margin:12px 10px 12px 0;font-size:13px}details{margin:14px 0;font-size:12px}.small{font-size:12px}.settings{max-width:760px}iframe{width:100%;height:900px;border:0;border-radius:16px;margin-top:25px}footer{border-top:1px solid #e1e6db;padding:25px 0;font-size:10px;letter-spacing:1px;color:#8b9687;display:flex;justify-content:space-between}.login{min-height:100vh;display:grid;place-items:center;background:radial-gradient(ellipse at top right,#dce5cf,transparent 60%),#f4f6ef}.login-card{margin:25px;padding:45px;max-width:470px;background:#ffffffdc;border:1px solid white;border-radius:22px;box-shadow:0 20px 80px #233e3510}.login h1{font-size:40px}.login button{width:100%;margin-top:12px}@media(max-width:900px){aside{width:195px;padding:25px 15px}main{margin-left:195px;padding:25px 4%}#side-menu-toggle{left:175px}.orb{display:none}.columns{grid-template-columns:1fr}}@media(max-width:600px){aside,body.side-menu-collapsed aside{position:relative;width:100%;padding:20px;transform:none}.profile,aside>.eyebrow{display:none}nav{display:flex;flex-wrap:wrap;margin-top:12px}nav a{padding:10px;font-size:12px}nav a span{display:none}aside form{position:absolute;right:20px;top:4px}.secondary{width:auto}#side-menu-toggle{display:none}main,body.side-menu-collapsed main{margin:0;padding:25px 20px}.cards{grid-template-columns:1fr;gap:12px}.card{padding:22px}.two{grid-template-columns:1fr;gap:0}h1{font-size:38px}.login-card{padding:30px}header{font-size:9px}}@media(prefers-reduced-motion:reduce){aside,main,#side-menu-toggle{transition:none}}
/* Scandinavian / metro: architectural tiles, slate blue and warm white. */
:root{color:#243746;background:#f3f4f2}aside{background:#fafbf9;border-color:#d9dfdf}.brand{color:#233d50}.eyebrow{color:#697b85}nav a{border-radius:2px}nav a.active{background:#e1e8ec;color:#23485e;border-left:3px solid #315b72}.pill{background:#e5ebed;color:#496573;border-radius:2px}.hero{padding:24px 0 32px}.hero h1{font-weight:450;letter-spacing:-1.8px}.hero p:not(.eyebrow),.muted{color:#73808a}.orb{color:#bccbd1;font-size:150px;right:5%;top:50px;transform:none}.card,.empty,.notice,input,textarea,select,button,.icon,iframe,.login-card{border-radius:2px}.card{border-color:#dce2e3}.cards .card:first-child{background:#e7edf0;border-top:3px solid #395c72}.cards .card:last-child{background:#e9ebe6;border-top:3px solid #7d8875}.link>span:last-child,.route{color:#35596e}.icon{background:#ffffff80;color:#36556a}.link:hover{transform:translateY(-2px)}button{background:#294d65}.notice{background:#e2eaf0;color:#355469}.avatar{background:#e2e9ed}.entry{border-color:#dce2e3}.login{background:linear-gradient(125deg,#e6ebed,#f6f6f1)}.login-card{border-top:4px solid #294d65;box-shadow:0 20px 80px #233e3510}.count{background:#dfe7ec}footer{border-color:#dce2e3}.secondary{background:#e9edef;color:#3a5668}

/* Homepage wordmark */
.brand{font-size:23px;letter-spacing:-.7px;white-space:nowrap}
.section-heading{display:flex;justify-content:space-between;align-items:center;gap:20px}.compact{width:auto;margin:0}.screen-frame{background:#1b2d38;padding:18px;max-width:280px;margin:22px auto}.screen-frame img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain;background:#101923}.tv-columns{align-items:start}#preview{display:block;width:100%;height:auto;background:#e8ecec;touch-action:none;margin:20px 0;cursor:move}#status{min-height:24px}.ok{color:#3c6b4b}.error,#action-error{color:#993d36}.photo-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(185px,1fr));gap:18px}.photo-tile{border:1px solid #dce2e3;padding:10px;min-width:0}.photo-tile img{width:100%;aspect-ratio:1;object-fit:cover}.photo-actions{display:flex;gap:4px;margin-top:8px;flex-wrap:wrap}.photo-actions button{font-size:10px;padding:8px;flex:1}.server-stats strong{font-size:34px;font-weight:450}.toolbar{display:flex;gap:20px;align-items:end}.toolbar label:first-child{flex:1}.service-list{display:grid;gap:10px}.service-row{background:white;border:1px solid #dce2e3;padding:18px;display:grid;grid-template-columns:minmax(180px,1fr) auto auto;gap:18px;align-items:center}.service-row h3{font-size:14px;margin:0;overflow-wrap:anywhere}.service-row p{margin:5px 0 0}.service-actions{display:flex;gap:6px}.service-actions button{font-size:11px;padding:9px}.service-row .pill{letter-spacing:0}dialog{max-width:480px;width:calc(100% - 32px);padding:28px;border:1px solid #bcc9cf;color:#243746}dialog::backdrop{background:#142c3dcc;backdrop-filter:blur(3px)}dialog .eyebrow{margin-top:0}dialog .actions{display:flex;justify-content:flex-end;gap:10px}button:disabled{opacity:.45;cursor:not-allowed}[hidden]{display:none!important}body{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}@media(max-width:1150px){.service-row{grid-template-columns:1fr auto}.service-actions{grid-column:1/-1}}@media(max-width:600px){.section-heading{align-items:start;flex-direction:column}.toolbar{display:block}.service-row{grid-template-columns:1fr}.service-actions{grid-column:auto}aside #install-app{margin-top:8px;font-size:11px;width:auto}.section-heading .pill{margin-bottom:16px}}
.calendar-week{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:25px 0}.calendar-day{border:1px solid #dce2e3;background:#fff;padding:22px;min-width:0}.calendar-day.today{border-top:3px solid #294d65;background:#eaf0f2}.calendar-day .eyebrow{margin:0 0 12px}.calendar-day h2{font-size:28px;font-weight:450;margin:5px 0 24px}.calendar-event{border-top:1px solid #dce2e3;padding:14px 0;overflow-wrap:anywhere}.calendar-event time{font-size:11px;color:#607685}.calendar-event h3{font-size:14px;font-weight:600;margin:6px 0;line-height:1.5}.calendar-event p{margin:4px 0}.calendar-connection{margin:25px 0}.calendar-connection details{margin-top:25px}.calendar-connection summary{cursor:pointer;padding:12px 0;font-size:14px}.calendar-summary-event{display:grid;grid-template-columns:150px 1fr auto;gap:18px;border-top:1px solid #dce2e3;padding:15px 0;align-items:center}.calendar-summary-event strong{font-size:14px;font-weight:550}.calendar-actions{display:flex;gap:16px;align-items:center}@media(max-width:1100px){.calendar-week{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.calendar-week{grid-template-columns:1fr}.calendar-summary-event{grid-template-columns:1fr;gap:6px}.calendar-actions{flex-wrap:wrap}}
.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:20px 0}.metric{padding:20px;min-width:0}.metric>p:first-child{margin:0 0 10px;color:#607685}.metric>strong{font-size:32px;font-weight:450;white-space:nowrap}.metric small{font-size:11px;color:#73808a;display:block;line-height:1.6}.metric progress{margin:28px 0 24px;width:100%}.sparkline{width:100%;height:48px;margin:12px 0}.sparkline path{fill:none;stroke:#315b72;stroke-width:2;vector-effect:non-scaling-stroke}.performance-actions{display:flex;align-items:center;gap:12px}.core-row{display:grid;grid-template-columns:60px 1fr 55px;gap:10px;align-items:center;font-size:12px;margin:12px 0}progress{height:8px;accent-color:#315b72;max-width:100%;width:100%}.network-row{display:grid;grid-template-columns:1fr auto auto;gap:15px;font-size:12px;border-bottom:1px solid #e4e8e9;padding:12px 0}.network-row strong{font-weight:550;overflow-wrap:anywhere}.table-scroll{overflow-x:auto}.process-table{border-collapse:collapse;width:100%;font-size:12px;font-variant-numeric:tabular-nums}.process-table th{text-align:left;color:#6c7b84;font-size:10px;text-transform:uppercase;letter-spacing:.8px}.process-table td,.process-table th{padding:11px 10px;border-bottom:1px solid #e3e8e8;white-space:nowrap}.process-table tr:hover{background:#edf2f3}.health-notes p{margin:10px 0}#service-heading{margin-top:45px}@media(max-width:1150px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.metric-grid{gap:10px}.metric{padding:15px}.metric>strong{font-size:26px}.network-row{grid-template-columns:1fr 1fr}.network-row strong{grid-column:1/-1}.performance-actions{flex-wrap:wrap}}
.server-stats{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:600px){.server-stats{grid-template-columns:1fr 1fr}.server-stats .card:last-child{grid-column:1/-1}}
.login-audit{margin:32px 0}.login-table{width:100%;border-collapse:collapse;min-width:720px}.login-table th,.login-table td{text-align:left;padding:12px 10px;border-bottom:1px solid #e0e6e7;font-size:12px}.login-table th{color:#6d7f87;font-size:10px;letter-spacing:.6px}.login-table td:last-child{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.login-status{display:inline-block;padding:5px 8px;font-size:10px;font-weight:650;background:#e9edef}.login-status.success{background:#e4eee7;color:#3e684b}.login-status.failed{background:#f2dfdc;color:#884238}.login-status.blocked{background:#f2eadc;color:#81612d}.login-audit>#load-logins{margin-top:14px}

/* Repeated data stays compact; each region remains independently scrollable. */
.scroll-list,.service-list,.reminder-list,.market-results,.stock-records,.stock-coverage,.investment-upload-list,.strategy-action-history,.timeline-grid,#investment-runs:has(>.run-row),main section:has(>.entry),main section:has(>.market-search),.booli-columns>section:has(>.result),.family-columns>section:has(>.family-period),#family-journal>div,.family-chart{max-height:min(52vh,480px);overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding-right:6px}
.table-scroll{max-height:min(52vh,480px);overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.service-list:focus-within,.scroll-list:focus-within{outline:2px solid #9bb0bb;outline-offset:2px}
.notification-test-settings{margin:24px 0}.notification-test-settings h2{margin-bottom:8px}.notification-test-settings .route{display:inline-block;margin-top:8px}
@media(max-width:600px){.scroll-list,.service-list,.reminder-list,.market-results,.stock-records,.stock-coverage,.investment-upload-list,.strategy-action-history,.timeline-grid,#investment-runs:has(>.run-row),main section:has(>.entry),main section:has(>.market-search),.booli-columns>section:has(>.result),.family-columns>section:has(>.family-period),#family-journal>div,.family-chart,.table-scroll{max-height:46vh}}

.app-menu-controls{display:flex;justify-content:flex-end;margin:14px 0 0}.app-menu-controls button{width:auto;margin:0;padding:8px 11px;font-size:11px}.app-menu-controls i{font-style:normal;margin-left:5px}.app-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 20px}.app-tabs[hidden]{display:none}.app-tabs a{padding:10px 16px;border:1px solid #dce2e3;font-size:13px;margin:0}.app-tabs a.active{border-left:1px solid #315b72;border-bottom:3px solid #315b72}.process-table caption{text-align:left;font-size:12px;padding:12px 0;color:#607685}

/* Family */
.family-heading h1{margin-top:10px}.family-links{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0}.family-links a{border:1px solid #dce2e3;padding:9px 13px;margin:0;font-size:12px}.family-settings{margin:24px 0}.family-settings summary,.family-rules summary{cursor:pointer;font-size:17px;font-weight:600}.family-parent{border:1px solid #dce2e3;padding:18px;min-width:0}.family-parent legend{font-size:16px;padding:0 8px}.family-weekdays{display:flex;flex-wrap:wrap;gap:12px;border:0;padding:0;margin:18px 0}.family-weekdays legend{font-size:12px;margin-bottom:8px}.family-weekdays label{display:flex;align-items:center;gap:6px;margin:4px 0}.family-weekdays input{width:auto;margin:0;accent-color:#294d65}.family-period{margin:0 0 15px;border-left:3px solid #315b72}.family-period.pernilla{border-left-color:#879477}.family-period h2{font-size:16px}.family-period .eyebrow{margin-bottom:10px}.family-columns{align-items:start}.family-balance{margin:10px 0 20px}.family-notices li{margin:10px 0;line-height:1.6;font-size:13px}.family-milestones{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:20px}.family-milestones time{color:#315b72;font-size:18px}.family-milestones p{font-size:12px}.family-months{margin-top:24px}.family-home-link{display:flex;justify-content:space-between;gap:15px;flex-wrap:wrap;border:1px solid #dce2e3;background:#e9ede5;color:#385043;padding:18px 24px;text-decoration:none;margin-bottom:24px;font-size:13px}.family-error{max-width:650px;width:calc(100% - 32px);margin:30px auto}.family-error h1{font-size:28px}.family-error input{max-width:100%}#family-plan,#family-compare,#family-journal,#family-profile{scroll-margin-top:20px}@media(max-width:600px){.family-metrics{grid-template-columns:1fr 1fr}.family-metrics .metric>strong{font-size:30px}.family-links a{font-size:11px;padding:8px}.family-period{padding:16px}.family-milestones{grid-template-columns:1fr 1fr}}

.family-chart{margin:20px 0}.family-chart-row{display:grid;grid-template-columns:65px minmax(0,1fr) 40px;gap:12px;align-items:center;font-size:11px;margin:12px 0}.family-chart-track{height:15px;display:flex;background:#edf0ee}.family-chart-track span{display:block;height:100%}.casper-key{background:#315b72}.pernilla-key{background:#879477}.family-key{display:inline-block;padding:3px 7px;color:white;margin-left:5px;font-size:11px}
.family-balance{min-width:0}.family-balance .stats{grid-template-columns:repeat(2,minmax(0,1fr))}.family-settings .two,.family-columns .two{grid-template-columns:repeat(2,minmax(0,1fr))}.family-settings input,.family-columns input,.family-columns select{min-width:0}.family-period .two>label{min-width:0}.family-period .stats small{overflow-wrap:anywhere}@media(max-width:1100px){#family-plan>.two,.family-settings .two,.family-columns .two{grid-template-columns:1fr}}

.booli-columns{grid-template-columns:repeat(2,minmax(0,1fr))}.booli-columns>section,.booli-columns .card,.booli-columns .two>label{min-width:0}.booli-columns .two{grid-template-columns:repeat(2,minmax(0,1fr))}.booli-columns input,.booli-columns select{min-width:0;max-width:100%}@media(max-width:1100px){.booli-columns{grid-template-columns:1fr}}@media(max-width:600px){.booli-columns .two{grid-template-columns:1fr}}

.analysis-loader{margin-top:18px;padding:22px;border:1px solid #cbd8de;background:#eef3f5;text-align:center;color:#294d65}.analysis-loader strong,.analysis-loader span,.analysis-loader small{display:block}.analysis-loader strong{margin:12px 0 5px}.analysis-loader small{margin-top:8px;color:#70818a}.analysis-loader-visual{display:flex;align-items:center;justify-content:center;gap:12px;height:42px}.analysis-house{font-size:30px;animation:analysis-float 1.2s ease-in-out infinite}.analysis-road{display:flex!important;gap:6px}.analysis-road i{width:7px;height:7px;border-radius:50%;background:#52758a;animation:analysis-dot 1.2s ease-in-out infinite}.analysis-road i:nth-child(2){animation-delay:.18s}.analysis-road i:nth-child(3){animation-delay:.36s}@keyframes analysis-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}@keyframes analysis-dot{0%,60%,100%{opacity:.25;transform:scale(.75)}30%{opacity:1;transform:scale(1.15)}}@media(prefers-reduced-motion:reduce){.analysis-house,.analysis-road i{animation:none}.analysis-loader{scroll-behavior:auto}}

/* Compact dashboard presentation for saved housing analyses. */
.result>.stats{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));background:#f2f5f6;padding:18px;border-left:3px solid #315b72}.result>.stats>div{min-width:0}.result>.stats strong{font-size:clamp(19px,2vw,27px);font-weight:500}.commute-dashboard,.scenario-dashboard,.purchase-dashboard{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin:14px 0 20px}.dashboard-panel,.scenario-card,.purchase-item{border:1px solid #dce3e5;background:#f8faf9;padding:16px;min-width:0}.dashboard-panel h4{margin:0 0 14px;font-size:13px}.dashboard-pairs{display:grid;grid-template-columns:1fr 1fr;gap:12px}.dashboard-pairs>div{border-left:2px solid #78909d;padding-left:10px}.dashboard-pairs span,.dashboard-pairs small,.dashboard-pairs em,.scenario-card span,.scenario-card small,.purchase-item span,.purchase-item small,.purchase-item em{display:block}.dashboard-pairs span,.scenario-card span,.purchase-item span{font-size:10px;text-transform:uppercase;letter-spacing:.7px;color:#667b86}.dashboard-pairs strong,.scenario-card strong,.purchase-item strong{display:block;font-size:20px;font-weight:500;margin:5px 0}.dashboard-pairs small,.scenario-card small,.purchase-item small{color:#7b898f}.dashboard-pairs em,.purchase-item em{font-size:11px;font-style:normal;color:#4f6875;margin-top:8px}.dashboard-caption{font-size:12px;color:#607685;margin-bottom:8px}.scenario-card{border-top:3px solid #658674}.scenario-card.negative{border-top-color:#ad655f}.scenario-card>div{font-size:11px;color:#6d7b81;margin-top:8px}.purchase-item.within{border-left:3px solid #658674}.purchase-item.over{border-left:3px solid #ad655f}.purchase-item.over em{color:#993d36}.attachments{border-top:1px solid #dce3e5;padding-top:16px;margin-top:26px}.attachments summary{cursor:pointer;font-weight:600;color:#36596e}.attachment-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px;margin-top:12px}.attachment-list a{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid #dce3e5;background:#f7f9f9;color:#294d65;text-decoration:none}.attachment-list a>span{font-size:18px}.attachment-list strong,.attachment-list small{display:block}.attachment-list strong{font-size:12px}.attachment-list small{font-size:10px;color:#718089;margin-top:3px}@media(max-width:600px){.dashboard-pairs{grid-template-columns:1fr}.commute-dashboard,.scenario-dashboard,.purchase-dashboard{grid-template-columns:1fr}}

.listing-cover{height:220px;margin:-26px -26px 22px;overflow:hidden;background:#dfe6e8}.listing-cover img{display:block;width:100%;height:100%;object-fit:cover}.listing-cover.placeholder{display:grid;place-items:center;background:linear-gradient(145deg,#e7ece9,#dbe4e8);color:#78909d}.listing-cover.placeholder span{font-size:52px;font-weight:300}@media(max-width:600px){.listing-cover{height:190px;margin:-22px -22px 18px}}

.commute-retry{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;margin:14px 0;background:#f3f6f7;border-left:2px solid #78909d;font-size:12px;color:#546c78}.commute-retry form{margin:0}.commute-retry button{white-space:nowrap}@media(max-width:600px){.commute-retry{align-items:flex-start;flex-direction:column}}
.market-search{margin:12px 0}.market-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.market-actions form{margin:0}.market-results{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.market-result{display:block;color:inherit;text-decoration:none}.market-result span{display:block;color:#607685;font-size:12px;margin-top:10px}

.pregnancy-widget{margin:0 0 22px;padding:28px;background:linear-gradient(135deg,#f4eee9 0%,#edf2ef 100%);border:1px solid #d9dfdc;border-top:4px solid #879477}.pregnancy-main{display:flex;align-items:center;justify-content:space-between;gap:24px}.pregnancy-main h2{font-size:clamp(32px,5vw,54px);font-weight:450;line-height:1;margin:8px 0 12px}.pregnancy-notation{display:flex;align-items:baseline;gap:12px;margin:0}.pregnancy-notation strong{font-size:21px;color:#315b72}.pregnancy-notation span{font-size:12px;color:#667981}.pregnancy-day{display:grid;place-items:center;width:96px;height:96px;flex:0 0 96px;border-radius:50%;background:#fff;border:1px solid #d6dedd;box-shadow:0 7px 24px rgba(49,91,114,.08)}.pregnancy-day span,.pregnancy-day small{font-size:9px;letter-spacing:1.2px;color:#718188}.pregnancy-day strong{font-size:34px;line-height:1;color:#315b72}.pregnancy-progress{margin:24px 0 18px}.pregnancy-track{height:7px;border-radius:8px;overflow:hidden;background:rgba(255,255,255,.85)}.pregnancy-track i{display:block;height:100%;border-radius:8px;background:linear-gradient(90deg,#879477,#315b72)}.pregnancy-progress>span{display:block;margin-top:7px;text-align:right;font-size:9px;color:#718188}.pregnancy-meta{display:grid;grid-template-columns:1.4fr 1fr .7fr;border-top:1px solid rgba(91,113,117,.18)}.pregnancy-meta>div{padding:17px 18px 0 0}.pregnancy-meta span,.pregnancy-meta small{display:block;font-size:9px;letter-spacing:.8px;color:#718188}.pregnancy-meta strong{display:block;margin-top:5px;font-size:15px}.pregnancy-meta small{margin-top:4px;letter-spacing:0}@media(max-width:600px){.pregnancy-widget{padding:20px}.pregnancy-main{align-items:flex-start}.pregnancy-main h2{font-size:36px}.pregnancy-day{width:78px;height:78px;flex-basis:78px}.pregnancy-day strong{font-size:28px}.pregnancy-notation{display:block}.pregnancy-notation span{display:block;margin-top:3px}.pregnancy-meta{grid-template-columns:1fr 1fr}.pregnancy-meta>div:last-child{grid-column:1/-1}}

.schedule-days{border:0;padding:0;margin:18px 0}.schedule-days legend{font-size:12px;font-weight:600;color:#54695b;margin-bottom:10px}.schedule-days label{display:inline-flex;align-items:center;gap:5px;margin:4px 12px 4px 0}.schedule-days input{width:auto;margin:0;accent-color:#294d65}.tv-schedule-card{margin-bottom:24px}.tv-schedule-card form{max-width:780px}

/* Keep the desktop menu control inside the sidebar so it cannot be clipped. */
#side-menu-toggle{left:190px;top:38px;width:34px;height:34px;border-color:#294d65;border-radius:4px;background:#294d65;color:#fff;transform:none}
body.side-menu-collapsed #side-menu-toggle{left:12px}
@media(max-width:900px) and (min-width:601px){#side-menu-toggle{left:145px;top:78px}}
@media(max-width:600px){#side-menu-toggle{display:block;left:auto;right:20px;top:36px;transform:none}body.side-menu-collapsed aside{display:none}body.side-menu-collapsed #side-menu-toggle{left:12px;right:auto;top:50%;transform:translateY(-50%)}}

/* Resume */
.resume-layout.resume-tab-mode{display:block}.resume-layout.resume-tab-mode .resume-side{display:block}.resume-layout.resume-tab-mode .resume-section{max-width:1100px;margin:24px auto 36px}.resume-jumps[role="tablist"]{border-bottom:1px solid #cfdadd;gap:0;margin-bottom:24px}.resume-jumps[role="tablist"] a{border:0;border-right:1px solid #d8e0e3;border-top:1px solid #d8e0e3;border-radius:0;background:#f7f9f9;padding:12px 18px}.resume-jumps[role="tablist"] a:first-child{border-left:1px solid #d8e0e3}.resume-jumps[role="tablist"] a.active{background:#294d65;color:#fff;border-color:#294d65}.resume-project-tabs{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 14px}.resume-project-tabs button{padding:9px 13px;background:#eef2f3;color:#49616d;border:1px solid #d2dcdf;border-radius:2px;font-size:12px}.resume-project-tabs button.active{background:#315b72;color:#fff;border-color:#315b72}.resume-project-grid.resume-project-pages{display:block}.resume-project-grid.resume-project-pages .resume-project{min-height:220px;padding:30px}.resume-project-grid.resume-project-pages .resume-project h2{font-size:24px}.resume-project-grid.resume-project-pages .resume-project p{max-width:760px;font-size:14px}@media(max-width:600px){.resume-jumps[role="tablist"]{display:grid;grid-template-columns:repeat(2,1fr)}.resume-jumps[role="tablist"] a{justify-content:center;border:1px solid #d8e0e3;padding:10px}.resume-project-tabs{display:grid;grid-template-columns:1fr 1fr}.resume-project-tabs button{white-space:normal}.resume-project-grid.resume-project-pages .resume-project{min-height:0;padding:22px}}

/* C-Magnevill platform and integrated subsystems */
.c-magnevill-project{border-top-color:#315b72}.cm-system-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;margin:22px 0 18px}.cm-subproject{padding:17px;background:#eef3f5;border:1px solid #d5e0e4;border-top:3px solid #4c7489}.cm-subproject>span{display:block;color:#637a85;font-size:9px;letter-spacing:1px}.cm-subproject h3{margin:7px 0 8px;color:#18374a;font-size:16px}.resume-project-grid.resume-project-pages .cm-subproject p,.cm-subproject p{margin:0 0 12px;color:#5b707a;font-size:12px;line-height:1.55}.cm-subproject small{font-size:10px;color:#496878}.cm-platform-stack{padding-top:13px;border-top:1px solid #d8e1e4}@media(max-width:760px){.cm-system-grid{grid-template-columns:1fr}.cm-subproject{padding:15px}}
.electric-ciao-media{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(240px,1fr);gap:12px;margin-top:22px}.electric-ciao-media video{display:block;width:100%;height:100%;min-height:280px;background:#15222a;object-fit:contain}.electric-ciao-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.electric-ciao-gallery a{display:block;margin:0;overflow:hidden;background:#dfe6e7;border:1px solid #d6dfe1}.electric-ciao-gallery img{display:block;width:100%;height:145px;object-fit:cover;transition:transform .18s ease}.electric-ciao-gallery a:hover img,.electric-ciao-gallery a:focus img{transform:scale(1.025)}@media(max-width:760px){.electric-ciao-media{grid-template-columns:1fr}.electric-ciao-media video{min-height:0;aspect-ratio:16/9}.electric-ciao-gallery img{height:135px}}@media(max-width:420px){.electric-ciao-gallery{grid-template-columns:1fr}.electric-ciao-gallery img{height:190px}}
.thesis-project-details{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:20px 0}.resume-project-grid.resume-project-pages .thesis-project-details p{margin:0;padding:14px;background:#eef3f4;border-left:3px solid #315b72;font-size:12px}.thesis-project-details strong,.thesis-project-details span{display:block}.thesis-project-details strong{margin-bottom:5px;color:#294d65}.thesis-project-details span{line-height:1.5}.thesis-link{margin:16px 0}.thesis-media-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.45fr);gap:12px;margin-top:20px}.thesis-media-card{margin:0;background:#eef2f3;border:1px solid #d5dfe1}.thesis-media-card--wide{grid-column:1/-1}.thesis-media-card a{display:block;margin:0}.thesis-media-card img,.thesis-media-card video{display:block;width:100%;background:#15222a;object-fit:cover}.thesis-media-card img{aspect-ratio:4/3}.thesis-media-card video{aspect-ratio:16/9}.thesis-media-card--portrait video{aspect-ratio:4/3;object-fit:contain}.thesis-media-card figcaption{padding:9px 11px;color:#536a75;font-size:11px;line-height:1.45}@media(max-width:760px){.thesis-project-details{grid-template-columns:1fr}.thesis-media-grid{grid-template-columns:1fr}.thesis-media-card--wide{grid-column:auto}.thesis-media-card--portrait video{aspect-ratio:16/9}}
.resume-section[id^="resume-education"] .resume-entry+.resume-entry{margin-top:13px}.resume-entry.education-thesis{border-left-color:#879477;background:#f8faf9}.resume-entry.education-thesis h2,.resume-project.thesis-project>h2{color:#18374a;font-weight:700}
.resume-patent-grid{display:grid;gap:13px}.resume-patent{padding:22px;background:#fff;border:1px solid #dce2e3;border-left:4px solid #7d8875}.resume-patent>div{display:flex;justify-content:space-between;gap:20px;align-items:start}.resume-patent h2{font-size:17px;margin:0}.resume-patent>div>span{order:2;white-space:nowrap;font-size:9px;letter-spacing:.7px;text-transform:uppercase;color:#6c7d84}.resume-patent p{font-size:13px;color:#64757d}.resume-patent>a{display:inline-block;color:#315b72;font-size:11px;text-decoration:none;border-bottom:1px solid #9eb0b8;padding-bottom:2px}@media(max-width:600px){.resume-patent>div{display:block}.resume-patent>div>span{display:block;margin-bottom:7px}}
.resume-toolbar{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin:14px 0 4px}.resume-toolbar>span{font-size:10px;letter-spacing:.7px;color:#6c7d84}.resume-language-toggle{display:inline-flex;border:1px solid #cbd6da}.resume-language-toggle button{padding:8px 11px;border-radius:0;background:#fff;color:#4d6571;font-size:11px}.resume-language-toggle button[aria-pressed="true"]{background:#294d65;color:#fff}.resume-contact{display:flex;flex-direction:column;align-items:flex-end;gap:7px;min-width:280px;padding-top:12px}.resume-contact a{color:#315b72;text-decoration:none;font-size:12px}.resume-contact small{max-width:280px;text-align:right;color:#8a6b58;line-height:1.4}.resume-timeline{display:grid;gap:13px}.resume-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.resume-links a{padding:8px 10px;border:1px solid #ccd9dd;background:#eef3f5;color:#315b72;text-decoration:none;font-size:11px}.resume-skill-groups{display:grid;gap:15px}.resume-skill-groups strong,.resume-skill-groups span,.resume-language-list strong,.resume-language-list span{display:block}.resume-skill-groups strong{font-size:12px;color:#294d65}.resume-skill-groups span{font-size:11px;line-height:1.55;color:#657780;margin-top:4px}.resume-language-list p{margin:0;padding:9px 0;border-top:1px solid #d6dfe1}.resume-language-list p:first-child{border-top:0}.resume-language-list strong{font-size:12px}.resume-language-list span{font-size:11px;color:#6a7c84;margin-top:5px}.resume-language-list em{display:inline-block;margin-right:6px;padding:3px 5px;background:#fff;border:1px solid #c9d5d9;color:#294d65;font-size:9px;font-style:normal;font-weight:700;letter-spacing:.35px}.resume-shell [hidden]{display:none!important}
.resume-hero{display:flex;justify-content:space-between;align-items:flex-start;gap:28px;padding:28px 0 24px;border-bottom:1px solid #dce2e3}.resume-hero>div{max-width:780px}.resume-hero .eyebrow{margin:0 0 8px}.resume-hero h1{margin:6px 0 8px;color:#132c3d;font-weight:700}.resume-lead{font-size:19px;color:#315b72;margin:0 0 10px}.resume-print{width:auto;white-space:nowrap}.resume-jumps{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 30px}.resume-jumps a{margin:0;padding:8px 12px;border:1px solid #d8e0e3;background:#fff;font-size:12px}.resume-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,.8fr);gap:34px;align-items:start}.resume-section{scroll-margin-top:24px;margin-bottom:34px}.resume-section>.eyebrow{margin:0 0 14px}.resume-entry{padding:25px;background:#fff;border:1px solid #dce2e3;border-left:4px solid #315b72}.resume-entry-head{display:flex;justify-content:space-between;gap:20px}.resume-entry-head h2,.resume-project h2,.resume-placeholder h2{margin:0 0 4px}.resume-entry-head p{margin:0;color:#718089}.resume-entry-head>span{font-size:10px;letter-spacing:.8px;color:#526c79;text-transform:uppercase;white-space:nowrap}.resume-entry ul{padding-left:20px;margin-bottom:0}.resume-entry li{font-size:13px;line-height:1.6;margin:5px 0}.resume-project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.resume-project{padding:21px;background:#fff;border:1px solid #dce2e3;border-top:3px solid #879477}.resume-project:nth-child(3n+1){border-top-color:#315b72}.resume-project>span{font-size:9px;letter-spacing:1.2px;color:#6a7d86}.resume-project h2{font-size:17px;margin-top:8px}.resume-project p{font-size:13px;color:#64757d}.resume-project small{display:block;color:#496878;line-height:1.5}.resume-side .resume-section{padding:21px;background:#eef2f2;border:1px solid #dce2e3}.resume-tags{display:flex;flex-wrap:wrap;gap:7px}.resume-tags span{padding:6px 8px;background:#fff;border:1px solid #d7dfe1;font-size:11px;color:#405d6d}.resume-interest-list{list-style:none;padding:0;margin:0}.resume-interest-list li{padding:12px 0;border-top:1px solid #d9e1e2}.resume-interest-list li:first-child{border-top:0;padding-top:0}.resume-interest-list strong,.resume-interest-list span{display:block}.resume-interest-list strong{font-size:13px}.resume-interest-list span{font-size:12px;color:#6c7d84;margin-top:4px;line-height:1.5}.resume-placeholder{border-left:3px solid #b78b50!important}.resume-placeholder p,.resume-note p{font-size:12px;color:#6c7d84}.resume-note{background:#f4f2ec!important}@media(max-width:900px){.resume-layout{grid-template-columns:1fr}.resume-side{display:grid;grid-template-columns:1fr 1fr;gap:14px}.resume-side .resume-section{margin:0}}@media(max-width:600px){.resume-hero{display:block}.resume-print{margin-top:8px}.resume-project-grid,.resume-side{grid-template-columns:1fr}.resume-entry-head{display:block}.resume-entry-head>span{display:block;margin-top:10px}.resume-jumps{gap:5px}.resume-jumps a{padding:7px 9px}}
.resume-goal{margin:13px 0 18px;padding:10px 14px;border-left:3px solid #879477;background:#eef2ef;color:#223f35;font-size:15px;font-weight:600;font-style:italic;line-height:1.5}
.resume-icon-sprite{position:absolute;width:0;height:0;overflow:hidden}.resume-interest-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.resume-interest-list li,.resume-interest-list li:first-child{display:flex;align-items:center;gap:8px;min-width:0;padding:9px;border:1px solid #d7e0e1;background:#f9fbfa}.resume-interest-list .interest-symbol{display:block;flex:0 0 29px;width:29px;height:29px;margin:0;padding:4px;border:1px solid #78909a;color:#294d65;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.resume-interest-list strong{min-width:0;font-size:11px;line-height:1.3}@media(max-width:380px){.resume-interest-list{grid-template-columns:1fr}}
@media(max-width:900px){.resume-hero{display:block}.resume-contact{align-items:flex-start;padding-top:10px}.resume-contact small{text-align:left}}@media(max-width:600px){.resume-toolbar{justify-content:flex-start;align-items:flex-start;flex-wrap:wrap}.resume-toolbar>span{width:100%}.resume-toolbar .resume-print{margin:0}.resume-contact{min-width:0}.resume-contact a{overflow-wrap:anywhere}}
@media print{body{background:#fff}#side-menu,#side-menu-toggle,.app-tabs,.app-menu-controls,.resume-jumps,.resume-toolbar,main>header,main>footer{display:none!important}main,body.side-menu-collapsed main{margin:0;padding:0;max-width:none}.resume-hero{padding-top:0}.resume-layout{grid-template-columns:1.7fr .8fr;gap:20px}.resume-project,.resume-entry,.resume-side .resume-section{break-inside:avoid}.resume-section{margin-bottom:20px}}

/* Reminders */
.reminder-columns{align-items:start}.reminder-notification-actions,.reminder-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.heartbeat-state{display:flex;gap:12px;align-items:flex-start;margin-top:26px;padding:18px;background:#eef3f5;border-left:3px solid #315b72}.heartbeat-state strong,.heartbeat-state small{display:block}.heartbeat-state small{color:#6d7d86;margin-top:5px;line-height:1.5}.heartbeat-dot{width:10px;height:10px;border-radius:50%;background:#5c8269;box-shadow:0 0 0 5px #dce9df;margin-top:4px;flex:0 0 auto}.reminder-list{display:grid;gap:12px;margin:18px 0 30px}.reminder-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:22px;align-items:center;padding:20px 22px;background:#fff;border:1px solid #dce2e3;border-left:3px solid #315b72}.reminder-item.paused{opacity:.62;border-left-color:#8b969b}.reminder-item .eyebrow{margin:0 0 7px}.reminder-item h3{margin:0;font-size:17px}.reminder-item p{margin:7px 0;color:#64747c}.reminder-item small{color:#75858c}.reminder-actions form{margin:0}.reminder-edit{grid-column:1/-1;border-top:1px solid #dce2e3;padding-top:8px}.reminder-edit textarea{min-height:85px}@media(max-width:700px){.reminder-item{grid-template-columns:1fr;align-items:start}.reminder-edit{grid-column:auto;width:100%}.reminder-columns{grid-template-columns:1fr}}
.reminder-weekdays{border:0;padding:0;margin:18px 0}.reminder-weekdays legend{font-size:12px;font-weight:600;color:#54695b;margin-bottom:8px}.reminder-weekdays label{display:inline-flex;align-items:center;gap:5px;margin:4px 12px 4px 0}.reminder-weekdays input{width:auto;margin:0;accent-color:#294d65}.reminder-toggle{display:inline-flex;align-items:center;gap:8px;padding:5px 7px;background:transparent;color:#6d7d84;border:1px solid transparent;border-radius:20px}.reminder-toggle:hover{filter:none;background:#f1f4f3;border-color:#d8e0df}.reminder-toggle em{font-size:10px;font-style:normal;font-weight:650;letter-spacing:.25px;min-width:45px;text-align:left}.reminder-toggle-track{width:34px;height:19px;border-radius:12px;background:#cbd3d5;position:relative;box-shadow:inset 0 0 0 1px #bdc7ca;transition:background .18s}.reminder-toggle-track i{position:absolute;top:3px;left:3px;width:13px;height:13px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #24374635;transition:transform .18s}.reminder-toggle.on{background:transparent;color:#486555}.reminder-toggle.on .reminder-toggle-track{background:#78947f;box-shadow:inset 0 0 0 1px #6d8874}.reminder-toggle.on .reminder-toggle-track i{transform:translateX(15px)}

/* Sauna résumé project */
.sauna-project{border-top-color:#8b6447}.sauna-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:22px}.sauna-media{margin:0;min-width:0;background:#eef2f1;border:1px solid #d5dede}.sauna-media--wide{grid-column:span 2}.sauna-media a{display:block;margin:0;background:#dfe5e3;overflow:hidden}.sauna-media img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;transition:transform .18s ease}.sauna-media--wide img{aspect-ratio:16/9}.sauna-media--plan img{object-fit:contain;background:#fff}.sauna-media a:hover img,.sauna-media a:focus img{transform:scale(1.02)}.sauna-media figcaption{padding:9px 10px;color:#536a68;font-size:10px;line-height:1.45}@media(max-width:760px){.sauna-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.sauna-media--wide{grid-column:1/-1}}@media(max-width:440px){.sauna-gallery{grid-template-columns:1fr}.sauna-media--wide{grid-column:auto}.sauna-media img,.sauna-media--wide img{aspect-ratio:4/3}}

/* QuickDock résumé project */
.quickdock-project{border-top-color:#315b72}.quickdock-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:22px}.quickdock-media{margin:0;min-width:0;background:#edf2f4;border:1px solid #d2dde1}.quickdock-media--wide{grid-column:span 2}.quickdock-media a{display:block;margin:0;background:#dce5e8;overflow:hidden}.quickdock-media img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;transition:transform .18s ease}.quickdock-media--wide img{aspect-ratio:16/9}.quickdock-media a:hover img,.quickdock-media a:focus img{transform:scale(1.02)}.quickdock-media figcaption{padding:9px 10px;color:#506875;font-size:10px;line-height:1.45}@media(max-width:900px){.quickdock-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:440px){.quickdock-gallery{grid-template-columns:1fr}.quickdock-media--wide{grid-column:auto}.quickdock-media img,.quickdock-media--wide img{aspect-ratio:4/3}}

/* Palla Panta résumé project */
.pallapanta-project{border-top-color:#4f7f57}.pallapanta-flow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:22px 0}.resume-project-grid.resume-project-pages .pallapanta-flow p{margin:0;padding:15px;background:#eef4ed;border-top:3px solid #5d8a63;font-size:12px}.pallapanta-flow strong,.pallapanta-flow span{display:block}.pallapanta-flow strong{color:#315d3c;font-size:11px;letter-spacing:.3px}.pallapanta-flow span{margin-top:7px;color:#5f7065;line-height:1.5}@media(max-width:650px){.pallapanta-flow{grid-template-columns:1fr}}

/* Ockelbo résumé project */
.ockelbo-project{border-top-color:#a72b28}.ockelbo-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:22px}.ockelbo-media{margin:0;min-width:0;background:#f4efec;border:1px solid #e1d5cf}.ockelbo-media--wide{grid-column:span 2}.ockelbo-media a{display:block;margin:0;background:#e9dfda;overflow:hidden}.ockelbo-media img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;transition:transform .18s ease}.ockelbo-media--wide img{aspect-ratio:16/9}.ockelbo-media a:hover img,.ockelbo-media a:focus img{transform:scale(1.02)}.ockelbo-media figcaption{padding:9px 10px;color:#6d5650;font-size:10px;line-height:1.45}@media(max-width:760px){.ockelbo-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.ockelbo-media--wide{grid-column:1/-1}}@media(max-width:440px){.ockelbo-gallery{grid-template-columns:1fr}.ockelbo-media--wide{grid-column:auto}.ockelbo-media img,.ockelbo-media--wide img{aspect-ratio:4/3}}

/* Drink machine and iron gate résumé projects */
.drink-machine-project{border-top-color:#8a3f86}.iron-gate-project{border-top-color:#4d5559}.project-build-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:22px}.project-build-media{margin:0;min-width:0;background:#eef1f2;border:1px solid #d5dde0}.project-build-media--wide{grid-column:span 2}.project-build-media a{display:block;margin:0;background:#dfe5e7;overflow:hidden}.project-build-media img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;transition:transform .18s ease}.project-build-media--wide img{aspect-ratio:16/9}.project-build-media a:hover img,.project-build-media a:focus img{transform:scale(1.02)}.project-build-media figcaption{padding:9px 10px;color:#52666f;font-size:10px;line-height:1.45}.drink-machine-project .project-build-media{background:#f3eef4;border-color:#dfd3e1}.drink-machine-project .project-build-media a{background:#211a26}.drink-machine-project .project-build-media--wide img{object-fit:contain}.iron-gate-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.iron-gate-gallery .project-build-media img{aspect-ratio:16/9}.iron-gate-gallery .project-build-media:nth-child(2) img{object-fit:contain;background:#dfe3e4}@media(max-width:760px){.project-build-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.project-build-media--wide{grid-column:1/-1}}@media(max-width:440px){.project-build-gallery,.iron-gate-gallery{grid-template-columns:1fr}.project-build-media--wide{grid-column:auto}.project-build-media img,.project-build-media--wide img,.iron-gate-gallery .project-build-media img{aspect-ratio:4/3}}
