:root{--ink:#17252d;--lead:#475861;--mist:#eef5f7;--ice:#bce8f3;--ice-strong:#65c7db;--frost:#f8fcfd;--line:#cbd9de;--danger:#9e3f3f;--danger-bg:#fff0ed;--safe:#1e6c65;--safe-bg:#e7f5f1;--shadow:0 24px 70px rgba(19,42,52,.13);font-family:"Avenir Next","Hiragino Sans","Yu Gothic",sans-serif;color:var(--ink);background:#edf3f5;font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:linear-gradient(110deg,#e5eef1,#f9fbfb 54%,#dfe9ec);line-height:1.65}button,input{font:inherit}button,a{touch-action:manipulation}a{color:#17677a}.hero{min-height:610px;position:relative;display:grid;align-items:center;overflow:hidden;background:#31434d;color:white}.hero__image,.hero__veil{position:absolute;inset:0}.hero__image{background:url('/assets/condensation-window.jpg') center/cover no-repeat;transform:scale(1.015)}.hero__veil{background:linear-gradient(90deg,rgba(11,26,33,.9) 0%,rgba(21,40,50,.67) 44%,rgba(21,40,50,.1) 76%),linear-gradient(0deg,rgba(15,29,36,.4),transparent 40%)}.hero__content{position:relative;z-index:1;width:min(1160px,calc(100% - 48px));margin:auto;padding:74px 0}.eyebrow,.step{text-transform:uppercase;letter-spacing:.16em;font-size:.72rem;font-weight:800}.eyebrow{color:#c9f2f8}.hero h1{font-family:"Hiragino Mincho ProN","Yu Mincho",serif;font-size:clamp(3rem,7vw,6.25rem);letter-spacing:.05em;line-height:1.06;margin:.18em 0}.hero__lead{font-size:clamp(1rem,2vw,1.3rem);max-width:610px;color:#edf9fb}.hero__example{margin:26px 0}.hero__example span{display:inline-block;border:1px solid rgba(255,255,255,.5);border-radius:99px;padding:2px 12px;margin-right:8px;font-size:.78rem}.hero__cta{display:inline-flex;align-items:center;gap:22px;color:#10242d;background:#d9f4f8;text-decoration:none;font-weight:800;border-radius:2px;padding:14px 20px;min-height:50px}.hero__cta:hover{background:white}main{width:min(1160px,calc(100% - 40px));margin:-42px auto 0;position:relative;z-index:2}.simulator,.saved,.method{background:rgba(250,253,253,.96);border:1px solid rgba(255,255,255,.8);box-shadow:var(--shadow)}.simulator{padding:clamp(28px,5vw,64px);border-radius:4px}.section-heading{max-width:720px;margin-bottom:34px}.section-heading h2,.method h2{font-family:"Hiragino Mincho ProN","Yu Mincho",serif;font-size:clamp(1.7rem,4vw,2.8rem);line-height:1.3;margin:.15em 0}.section-heading p{margin:6px 0;color:var(--lead)}.step{color:#27778a;margin:0!important}.workbench{display:grid;grid-template-columns:minmax(300px,.88fr) minmax(400px,1.12fr);gap:28px;align-items:stretch}.controls{display:grid;gap:14px}.control{background:#f0f6f7;border:1px solid #d7e4e7;padding:18px 20px}.control:focus-within{border-color:#318da1;box-shadow:0 0 0 3px rgba(49,141,161,.13)}.control__heading{display:flex;align-items:center;justify-content:space-between;gap:14px}.control label{font-weight:800}.number-wrap{display:flex;align-items:center;border-bottom:1px solid #66818a}.number-wrap input{width:84px;border:0;background:transparent;text-align:right;font-size:1.35rem;font-weight:800;color:var(--ink);outline:none;padding:4px}.number-wrap span{font-weight:700}.range{width:100%;height:32px;accent-color:#238ca5;margin:8px 0 0;cursor:pointer}.scale{display:flex;justify-content:space-between;font-size:.68rem;color:#6b7d83}.hint,.field-error{font-size:.76rem;margin:4px 0 0}.hint{color:#5d7178}.field-error{min-height:1.25em;color:var(--danger);font-weight:700}.control--error{border-color:#c85b56;background:#fff8f7}.form-error{padding:11px 14px;background:var(--danger-bg);border-left:4px solid var(--danger);color:#7d302d;font-weight:700}.result{background:#182a32;color:white;padding:clamp(24px,4vw,42px);position:relative;overflow:hidden}.result:after{content:"";position:absolute;width:300px;height:300px;right:-150px;top:-150px;border-radius:50%;border:50px solid rgba(188,232,243,.05)}.result__top{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;position:relative;z-index:1}.result .step{color:#8ed6e4}.result h2{margin:2px 0;font-size:1rem;font-weight:500}.result h2 strong{font-family:Georgia,serif;font-size:clamp(3.6rem,8vw,6rem);line-height:1}.result h2 span{font-size:1.2rem}.status-badge{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:99px;font-size:.82rem;font-weight:800;white-space:nowrap}.status-badge--safe{background:rgba(133,223,202,.12);color:#aeeadf}.status-badge--risk{background:rgba(255,145,131,.13);color:#ffb1a6}.status-dot{width:9px;height:9px;border-radius:50%;background:currentColor}.status-message{font-size:1rem;max-width:650px;color:#d6e5e8;margin:8px 0 28px}.temperature-viz{position:relative;z-index:1}.temperature-viz__ticks{display:flex;justify-content:space-between;color:#a9c0c7;font-size:.7rem}.temperature-band{height:108px;margin-top:7px;background:linear-gradient(90deg,#7bcddd 0%,#b8e8f1 38%,#dbe7e8 65%,#8b989d 100%);position:relative;border:1px solid rgba(255,255,255,.3);box-shadow:inset 0 0 30px rgba(255,255,255,.15)}.temperature-band:before{content:"";position:absolute;inset:0;background-image:linear-gradient(90deg,rgba(255,255,255,.35) 1px,transparent 1px);background-size:10% 100%}.temperature-band__cold{position:absolute;height:100%;left:0;top:0;width:40%;background:repeating-linear-gradient(135deg,rgba(49,119,139,.18),rgba(49,119,139,.18) 5px,transparent 5px,transparent 10px);border-right:2px dashed #166478}.marker{position:absolute;top:0;height:100%;transform:translateX(-50%);width:2px;background:white;transition:left .25s ease}.marker span,.marker strong{position:absolute;left:50%;transform:translateX(-50%);white-space:nowrap;background:#f7fbfc;color:#182a32;padding:1px 5px;font-size:.68rem}.marker span{top:6px;text-transform:uppercase;letter-spacing:.08em}.marker strong{bottom:6px;font-size:.75rem}.marker--dew{background:#123f4c;width:3px}.marker--dew span,.marker--dew strong{background:#123f4c;color:white}.marker--surface{background:#d87362;width:3px}.marker--surface span,.marker--surface strong{background:#8f4035;color:white}.temperature-viz__note{font-size:.76rem;color:#b7cbd1;margin:8px 0}.result__actions{display:flex;gap:10px;margin-top:22px}.button{min-height:46px;border:1px solid transparent;padding:10px 18px;font-weight:800;cursor:pointer}.button--primary{background:#bce8f3;color:#142a32}.button--ghost{background:transparent;color:white;border-color:#66818a}.button:hover{filter:brightness(1.08)}.button:focus-visible,.text-button:focus-visible,.hero__cta:focus-visible{outline:3px solid #68d4e8;outline-offset:3px}.button:disabled{opacity:.45;cursor:not-allowed}.action-message{min-height:1.5em;color:#cce6eb;font-size:.8rem;margin:8px 0 -8px}.saved{margin-top:24px;padding:clamp(28px,5vw,56px);border-radius:4px}.section-heading--row{max-width:none;display:flex;justify-content:space-between;align-items:flex-end}.text-button{border:0;background:transparent;color:#2d7180;text-decoration:underline;min-height:44px;cursor:pointer}.empty-state{padding:22px;border:1px dashed #adc2c8;color:#596f76;text-align:center}.saved-list{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.saved-card{border-top:5px solid #66bed1;background:#edf5f6;padding:16px}.saved-card--risk{border-color:#c86353;background:#fff5f2}.saved-card__top{display:flex;justify-content:space-between;gap:8px}.saved-card time{font-size:.72rem;color:#677a80}.saved-card button{border:0;background:transparent;text-decoration:underline;color:#526970;cursor:pointer;min-width:44px;min-height:44px}.saved-card h3{font-family:Georgia,serif;font-size:2rem;margin:4px 0}.saved-card h3 span{font-family:inherit;font-size:.9rem}.saved-card dl{display:grid;grid-template-columns:1fr 1fr;margin:8px 0 0;font-size:.77rem}.saved-card dt{color:#667a81}.saved-card dd{margin:0;font-weight:800}.method{margin:24px 0 48px;padding:clamp(28px,5vw,56px);background:#dbe8eb}.method__intro{max-width:650px}.method__intro>p:last-child{color:#4a6169}.method__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#adc1c6;border:1px solid #adc1c6;margin:34px 0}.method article{background:#eef5f6;padding:24px}.method article>span{color:#2d7989;font-size:.7rem;font-weight:800;letter-spacing:.14em}.method h3{margin:5px 0}.method article p{font-size:.86rem;color:#485f67}.method code{font-size:.72rem;overflow-wrap:anywhere}.method details{border-top:1px solid #a4b7bc;border-bottom:1px solid #a4b7bc}.method summary{cursor:pointer;padding:14px 2px;font-weight:800;min-height:50px}.details-body{padding:0 4px 14px;font-size:.84rem}footer{display:flex;justify-content:space-between;gap:20px;width:min(1160px,calc(100% - 40px));margin:0 auto;padding:16px 0 34px;color:#50636a;font-size:.8rem}footer p{margin:0}footer a{font-weight:800}@media(max-width:800px){.hero{min-height:550px}.hero__veil{background:linear-gradient(0deg,rgba(10,25,32,.88),rgba(22,42,52,.28) 70%),linear-gradient(90deg,rgba(11,26,33,.5),transparent)}.hero__content{padding-top:150px}.desktop-only{display:none}main{width:min(100% - 24px,650px);margin-top:-20px}.simulator,.saved,.method{padding:24px 16px}.workbench{grid-template-columns:1fr}.result{padding:24px 18px}.saved-list,.method__grid{grid-template-columns:1fr}.method__grid{gap:1px}.section-heading--row{align-items:flex-start}.temperature-band{height:124px}.result__actions{display:grid;grid-template-columns:1fr 1fr}.button{padding:10px}.marker span,.marker strong{font-size:.62rem}footer{width:calc(100% - 28px);flex-direction:column}.hero__example{font-size:.85rem}}@media(max-width:360px){.hero__content{width:calc(100% - 28px)}.hero h1{font-size:2.65rem}.result__top{display:block}.status-badge{width:max-content;margin:8px 0}.control__heading{align-items:flex-start}.saved{padding-inline:12px}.section-heading--row{display:block}.result__actions{grid-template-columns:1fr}.marker span{top:4px}.marker strong{bottom:4px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.marker{transition:none}}@media print{.hero{min-height:auto;background:#fff;color:#111}.hero__image,.hero__veil,.hero__cta,.controls,.result__actions,.text-button,footer{display:none}.hero__content{padding:24px 0;width:100%}.hero__lead,.eyebrow{color:#222}main{width:100%;margin:0}.simulator,.saved,.method{box-shadow:none;border:1px solid #aaa;margin:12px 0;break-inside:avoid}.workbench{display:block}.result{color:#111;background:white}.result .step,.status-message,.temperature-viz__note,.action-message{color:#222}.temperature-band{print-color-adjust:exact;-webkit-print-color-adjust:exact}.saved-list{grid-template-columns:repeat(3,1fr)}}
